ReferralApply.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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 $user_id 申请者ID
  11. * @property int $before 操作前可提现金额,单位分
  12. * @property int $after 操作后可提现金额,单位分
  13. * @property int $amount 本次提现金额,单位分
  14. * @property array $link_logs 关联返利日志ID,例如:1,3,4
  15. * @property int $status 状态:-1-驳回、0-待审核、1-审核通过待打款、2-已打款
  16. * @property \Illuminate\Support\Carbon $created_at 创建时间
  17. * @property \Illuminate\Support\Carbon $updated_at 最后更新时间
  18. * @property string|null $zfb_name 支付宝姓名
  19. * @property string|null $zfb_card 支付宝账号
  20. * @property-read string $status_label
  21. * @property-read \App\Models\User $user
  22. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply newModelQuery()
  23. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply newQuery()
  24. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply query()
  25. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply uid()
  26. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply whereAfter($value)
  27. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply whereAmount($value)
  28. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply whereBefore($value)
  29. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply whereCreatedAt($value)
  30. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply whereId($value)
  31. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply whereLinkLogs($value)
  32. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply whereStatus($value)
  33. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply whereUpdatedAt($value)
  34. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply whereUserId($value)
  35. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply whereZfbCard($value)
  36. * @method static \Illuminate\Database\Eloquent\Builder|ReferralApply whereZfbName($value)
  37. * @mixin \Eloquent
  38. */
  39. class ReferralApply extends Model
  40. {
  41. protected $table = 'referral_apply';
  42. protected $casts = ['link_logs' => 'array'];
  43. public function scopeUid($query)
  44. {
  45. return $query->whereUserId(Auth::id());
  46. }
  47. public function user(): BelongsTo
  48. {
  49. return $this->belongsTo(User::class);
  50. }
  51. public function referral_logs()
  52. {
  53. return ReferralLog::whereIn('id', $this->link_logs);
  54. }
  55. public function getBeforeAttribute($value)
  56. {
  57. return $value / 100;
  58. }
  59. public function setBeforeAttribute($value): void
  60. {
  61. $this->attributes['before'] = $value * 100;
  62. }
  63. public function getAfterAttribute($value)
  64. {
  65. return $value / 100;
  66. }
  67. public function setAfterAttribute($value): void
  68. {
  69. $this->attributes['after'] = $value * 100;
  70. }
  71. public function getAmountAttribute($value)
  72. {
  73. return $value / 100;
  74. }
  75. public function setAmountAttribute($value): void
  76. {
  77. $this->attributes['amount'] = $value * 100;
  78. }
  79. public function getStatusLabelAttribute(): string
  80. {
  81. switch ($this->attributes['status']) {
  82. case -1:
  83. $status_label = '驳回,请联系客服!';
  84. break;
  85. case 1:
  86. $status_label = '<span class="badge badge-sm badge-info">'.trans('user.status.pending').'</span>';
  87. break;
  88. case 2:
  89. $status_label = trans('user.status.withdrawn');
  90. break;
  91. case 0:
  92. default:
  93. $status_label = '<span class="badge badge-sm badge-warning">'.trans('user.status.applying').'</span>';
  94. }
  95. return $status_label;
  96. }
  97. }