ReferralLog.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace App\Models;
  3. use App\Utils\Helpers;
  4. use Auth;
  5. use Illuminate\Database\Eloquent\Model;
  6. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  7. /**
  8. * 返利日志.
  9. */
  10. class ReferralLog extends Model
  11. {
  12. protected $table = 'referral_log';
  13. protected $guarded = [];
  14. public function scopeUid($query)
  15. {
  16. return $query->whereInviterId(Auth::id());
  17. }
  18. public function invitee(): BelongsTo
  19. {
  20. return $this->belongsTo(User::class);
  21. }
  22. public function inviter(): BelongsTo
  23. {
  24. return $this->belongsTo(User::class);
  25. }
  26. public function order(): BelongsTo
  27. {
  28. return $this->belongsTo(Order::class);
  29. }
  30. public function getAmountAttribute($value)
  31. {
  32. return $value / 100;
  33. }
  34. public function getCommissionAttribute($value)
  35. {
  36. return $value / 100;
  37. }
  38. public function setAmountAttribute($value): void
  39. {
  40. $this->attributes['amount'] = $value * 100;
  41. }
  42. public function setCommissionAttribute($value): void
  43. {
  44. $this->attributes['commission'] = $value * 100;
  45. }
  46. public function getAmountTagAttribute(): string
  47. {
  48. return Helpers::getPriceTag($this->amount);
  49. }
  50. public function getCommissionTagAttribute(): string
  51. {
  52. return Helpers::getPriceTag($this->commission);
  53. }
  54. public function getStatusLabelAttribute(): string
  55. {
  56. return match ($this->attributes['status']) {
  57. 1 => '<span class="badge badge-sm badge-info">'.trans('common.status.applying').'</span>',
  58. 2 => '<span class="badge badge-sm badge-default">'.trans('common.status.withdrawn').'</span>',
  59. default => '<span class="badge badge-sm badge-success">'.trans('common.status.unwithdrawn').'</span>',
  60. };
  61. }
  62. }