Reward.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. namespace app\admin\model\shopro\commission;
  3. use app\admin\model\shopro\Common;
  4. use app\admin\model\shopro\user\User as UserModel;
  5. use app\admin\model\shopro\order\Order as OrderModel;
  6. use app\admin\model\shopro\order\OrderItem as OrderItemModel;
  7. class Reward extends Common
  8. {
  9. const COMMISSION_REWARD_STATUS_PENDING = 0; // 未结算、待入账
  10. const COMMISSION_REWARD_STATUS_ACCOUNTED = 1; // 已结算、已入账
  11. const COMMISSION_REWARD_STATUS_CANCEL = -1; // 已取消
  12. const COMMISSION_REWARD_STATUS_BACK = -2; // 已退回
  13. protected $name = 'shopro_commission_reward';
  14. // 定义时间戳字段名
  15. protected $createTime = 'createtime';
  16. protected $updateTime = 'updatetime';
  17. protected $type = [
  18. 'commission_rules' => 'json',
  19. 'commission_time' => 'timestamp'
  20. ];
  21. protected $append = [
  22. 'status_text',
  23. 'type_text'
  24. ];
  25. public function statusList()
  26. {
  27. return [
  28. -2 => '已退回',
  29. -1 => '已取消',
  30. 0 => '未结算',
  31. 1 => '已结算'
  32. ];
  33. }
  34. public function typeList()
  35. {
  36. return [
  37. 'commission' => '佣金钱包',
  38. 'money' => '余额钱包',
  39. 'score' => '积分钱包',
  40. 'bank' => '企业付款到银行卡',
  41. 'change' => '企业付款到零钱'
  42. ];
  43. }
  44. /**
  45. * 待入账
  46. */
  47. public function scopePending($query)
  48. {
  49. return $query->where('status', self::COMMISSION_REWARD_STATUS_PENDING);
  50. }
  51. /**
  52. * 已退回
  53. */
  54. public function scopeBack($query)
  55. {
  56. return $query->where('status', self::COMMISSION_REWARD_STATUS_BACK);
  57. }
  58. /**
  59. * 已入账
  60. */
  61. public function scopeAccounted($query)
  62. {
  63. return $query->where('status', self::COMMISSION_REWARD_STATUS_ACCOUNTED);
  64. }
  65. /**
  66. * 已取消
  67. */
  68. public function scopeCancel($query)
  69. {
  70. return $query->where('status', self::COMMISSION_REWARD_STATUS_CANCEL);
  71. }
  72. /**
  73. * 待入账和已入账
  74. *
  75. * @return void
  76. */
  77. public function scopeIncome($query)
  78. {
  79. return $query->where('status', 'in', [self::COMMISSION_REWARD_STATUS_ACCOUNTED, self::COMMISSION_REWARD_STATUS_PENDING]);
  80. }
  81. public function buyer()
  82. {
  83. return $this->belongsTo(UserModel::class, 'buyer_id', 'id')->field('id, nickname, avatar, mobile');
  84. }
  85. public function agent()
  86. {
  87. return $this->belongsTo(UserModel::class, 'agent_id', 'id')->field('id, nickname, avatar, mobile');
  88. }
  89. public function order()
  90. {
  91. return $this->belongsTo(OrderModel::class, 'order_id', 'id');
  92. }
  93. public function orderItem()
  94. {
  95. return $this->belongsTo(OrderItemModel::class, 'order_item_id', 'id');
  96. }
  97. }