UserShare.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. *
  17. * @method static \Illuminate\Database\Eloquent\Builder|UserShare newModelQuery()
  18. * @method static \Illuminate\Database\Eloquent\Builder|UserShare newQuery()
  19. * @method static \Illuminate\Database\Eloquent\Builder|UserShare query()
  20. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereChildId($value)
  21. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereCreatedAt($value)
  22. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereId($value)
  23. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereIncome($value)
  24. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereOrderId($value)
  25. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereOrderType($value)
  26. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereUpdatedAt($value)
  27. * @method static \Illuminate\Database\Eloquent\Builder|UserShare whereUserId($value)
  28. *
  29. * @mixin \Eloquent
  30. *
  31. * @property \App\Models\UserRechargeRecord|null $rechargeOrder
  32. * @property \App\Models\UserVipRecord|null $vipOrder
  33. * @property mixed $order
  34. * @property mixed $type_name
  35. */
  36. class UserShare extends Model
  37. {
  38. use HasDateTimeFormatter;
  39. protected $table = 'user_share';
  40. protected $hidden = [
  41. 'updated_at',
  42. ];
  43. public function vipOrder()
  44. {
  45. return $this->belongsTo(UserVipRecord::class, 'order_id', 'pay_id');
  46. }
  47. public function rechargeOrder()
  48. {
  49. return $this->belongsTo(UserRechargeRecord::class, 'order_id', 'pay_id');
  50. }
  51. public function setTypeNameAttribute($type)
  52. {
  53. $config = config('global.income_type');
  54. $this->attributes['type_name'] = $config[$type] ?? '未知';
  55. }
  56. public function setOrderAttribute(UserShare $share)
  57. {
  58. $order = 1 == $share->order_type ? $share->vipOrder : $share->rechargeOrder;
  59. $this->attributes['order'] = $order;
  60. }
  61. }