UserShare.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace App\Models;
  3. use Dcat\Admin\Traits\HasDateTimeFormatter;
  4. use Illuminate\Database\Eloquent\Model;
  5. /**
  6. * App\Models\UserShare
  7. *
  8. * @property int $id
  9. * @property int $user_id 用户
  10. * @property int $child_id 二级ID
  11. * @property int $order_type 1-充值VIP 2-充值金币
  12. * @property string $order_id 订单号
  13. * @property string $income 收入
  14. * @property \Illuminate\Support\Carbon|null $created_at
  15. * @property \Illuminate\Support\Carbon|null $updated_at
  16. * @method static \Illuminate\Database\Eloquent\Builder|UserShare newModelQuery()
  17. * @method static \Illuminate\Database\Eloquent\Builder|UserShare newQuery()
  18. * @method static \Illuminate\Database\Eloquent\Builder|UserShare query()
  19. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereChildId($value)
  20. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereCreatedAt($value)
  21. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereId($value)
  22. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereIncome($value)
  23. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereOrderId($value)
  24. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereOrderType($value)
  25. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereUpdatedAt($value)
  26. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereUserId($value)
  27. * @mixin \Eloquent
  28. * @property-read \App\Models\UserRechargeRecord|null $rechargeOrder
  29. * @property-read \App\Models\UserVipRecord|null $vipOrder
  30. * @property-write mixed $order
  31. * @property-write mixed $type_name
  32. */
  33. class UserShare extends Model
  34. {
  35. use HasDateTimeFormatter;
  36. protected $table = 'user_share';
  37. protected $hidden = [
  38. 'updated_at'
  39. ];
  40. public function vipOrder()
  41. {
  42. return $this->belongsTo(UserVipRecord::class,'order_id','pay_id');
  43. }
  44. public function rechargeOrder()
  45. {
  46. return $this->belongsTo(UserRechargeRecord::class,'order_id','pay_id');
  47. }
  48. public function setTypeNameAttribute($type)
  49. {
  50. $config = config('global.income_type');
  51. $this->attributes['type_name'] = $config[$type]??'未知';
  52. }
  53. public function setOrderAttribute(UserShare $share)
  54. {
  55. $order = $share->order_type == 1 ? $share->vipOrder : $share->rechargeOrder;
  56. $this->attributes['order'] = $order;
  57. }
  58. }