ReferralLog.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace App\Models;
  3. use Auth;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  6. /**
  7. * 返利日志.
  8. *
  9. * @property int $id
  10. * @property int|null $invitee_id 用户ID
  11. * @property int $inviter_id 推广人ID
  12. * @property int|null $order_id 关联订单ID
  13. * @property int $amount 消费金额,单位分
  14. * @property int $commission 返利金额
  15. * @property int $status 状态:0-未提现、1-审核中、2-已提现
  16. * @property \Illuminate\Support\Carbon $created_at 创建时间
  17. * @property \Illuminate\Support\Carbon $updated_at 最后更新时间
  18. * @property-read string $status_label
  19. * @property-read \App\Models\User|null $invitee
  20. * @property-read \App\Models\User $inviter
  21. * @property-read \App\Models\Order|null $order
  22. * @method static \Illuminate\Database\Eloquent\Builder|ReferralLog newModelQuery()
  23. * @method static \Illuminate\Database\Eloquent\Builder|ReferralLog newQuery()
  24. * @method static \Illuminate\Database\Eloquent\Builder|ReferralLog query()
  25. * @method static \Illuminate\Database\Eloquent\Builder|ReferralLog uid()
  26. * @method static \Illuminate\Database\Eloquent\Builder|ReferralLog whereAmount($value)
  27. * @method static \Illuminate\Database\Eloquent\Builder|ReferralLog whereCommission($value)
  28. * @method static \Illuminate\Database\Eloquent\Builder|ReferralLog whereCreatedAt($value)
  29. * @method static \Illuminate\Database\Eloquent\Builder|ReferralLog whereId($value)
  30. * @method static \Illuminate\Database\Eloquent\Builder|ReferralLog whereInviteeId($value)
  31. * @method static \Illuminate\Database\Eloquent\Builder|ReferralLog whereInviterId($value)
  32. * @method static \Illuminate\Database\Eloquent\Builder|ReferralLog whereOrderId($value)
  33. * @method static \Illuminate\Database\Eloquent\Builder|ReferralLog whereStatus($value)
  34. * @method static \Illuminate\Database\Eloquent\Builder|ReferralLog whereUpdatedAt($value)
  35. * @mixin \Eloquent
  36. */
  37. class ReferralLog extends Model
  38. {
  39. protected $table = 'referral_log';
  40. public function scopeUid($query)
  41. {
  42. return $query->whereInviterId(Auth::id());
  43. }
  44. public function invitee(): BelongsTo
  45. {
  46. return $this->belongsTo(User::class);
  47. }
  48. public function inviter(): BelongsTo
  49. {
  50. return $this->belongsTo(User::class);
  51. }
  52. public function order(): BelongsTo
  53. {
  54. return $this->belongsTo(Order::class);
  55. }
  56. public function getAmountAttribute($value)
  57. {
  58. return $value / 100;
  59. }
  60. public function getCommissionAttribute($value)
  61. {
  62. return $value / 100;
  63. }
  64. public function setAmountAttribute($value): void
  65. {
  66. $this->attributes['amount'] = $value * 100;
  67. }
  68. public function setCommissionAttribute($value): void
  69. {
  70. $this->attributes['commission'] = $value * 100;
  71. }
  72. public function getStatusLabelAttribute(): string
  73. {
  74. switch ($this->attributes['status']) {
  75. case 1:
  76. $status_label = '<span class="badge badge-sm badge-info">'.trans('user.status.applying').'</span>';
  77. break;
  78. case 2:
  79. $status_label = '<span class="badge badge-sm badge-default">'.trans('user.status.withdrawn').'</span>';
  80. break;
  81. default:
  82. $status_label = '<span class="badge badge-sm badge-success">'.trans('user.status.not_withdrawn').'</span>';
  83. }
  84. return $status_label;
  85. }
  86. }