Order.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. namespace app\admin\model\shopro\commission;
  3. use think\Model;
  4. class Order extends Model
  5. {
  6. // 表名
  7. protected $name = 'shopro_commission_order';
  8. // 自动写入时间戳字段
  9. protected $autoWriteTimestamp = 'int';
  10. // 定义时间戳字段名
  11. protected $createTime = 'createtime';
  12. protected $updateTime = 'updatetime';
  13. // 追加属性
  14. protected $append = [
  15. 'commission_reward_status_text',
  16. 'commission_order_status_text',
  17. 'commission_event_text'
  18. ];
  19. // 分销订单业绩状态 table: commission_order, field: commission_order_status
  20. const COMMISSION_ORDER_STATUS_NO = 0; // 不计入
  21. const COMMISSION_ORDER_STATUS_YES = 1; // 已计入
  22. const COMMISSION_ORDER_STATUS_BACK = -1; // 已退回
  23. const COMMISSION_ORDER_STATUS_CANCEL = -2; // 已取消
  24. // 分销订单佣金处理状态 table: commission_order, field: commission_reward_status
  25. const COMMISSION_REWARD_STATUS_WAITING = 0; // 未结算、待入账
  26. const COMMISSION_REWARD_STATUS_ACCOUNTED = 1; // 已结算、已入账
  27. const COMMISSION_REWARD_STATUS_BACK = -1; // 已退回
  28. const COMMISSION_REWARD_STATUS_CANCEL = -2; // 已取消
  29. // 商品结算方式
  30. const COMMISSION_TYPE_PAY_PRICE = 'pay_price'; // 实际支付价
  31. const COMMISSION_TYPE_GOODS_PRICE = 'goods_price'; // 商品价
  32. // 佣金结算方式
  33. const COMMISSION_EVENT_PAYED = 'payed'; // 支付后结算
  34. const COMMISSION_EVENT_CONFIRM = 'confirm'; // 确认收货后结算
  35. const COMMISSION_EVENT_FINISH = 'finish'; // 订单完成结算
  36. const COMMISSION_EVENT_ADMIN = 'admin'; // 手动打款
  37. public function getCommissionOrderStatusTextAttr($value, $data)
  38. {
  39. $status_name = '-';
  40. switch ($data['commission_order_status']) {
  41. case self::COMMISSION_ORDER_STATUS_NO:
  42. $status_name = '不计入';
  43. break;
  44. case self::COMMISSION_ORDER_STATUS_YES:
  45. $status_name = '已计入';
  46. break;
  47. case self::COMMISSION_ORDER_STATUS_BACK:
  48. $status_name = '已扣除';
  49. break;
  50. case self::COMMISSION_ORDER_STATUS_CANCEL:
  51. $status_name = '已取消';
  52. break;
  53. }
  54. return $status_name;
  55. }
  56. public function getCommissionRewardStatusTextAttr($value, $data)
  57. {
  58. $status_name = '-';
  59. switch ($data['commission_reward_status']) {
  60. case self::COMMISSION_REWARD_STATUS_WAITING:
  61. $status_name = '未结算';
  62. break;
  63. case self::COMMISSION_REWARD_STATUS_ACCOUNTED:
  64. $status_name = '已结算';
  65. break;
  66. case self::COMMISSION_REWARD_STATUS_BACK:
  67. $status_name = '已退回';
  68. break;
  69. case self::COMMISSION_ORDER_STATUS_CANCEL:
  70. $status_name = '已取消';
  71. break;
  72. }
  73. return $status_name;
  74. }
  75. public function getCommissionEventTextAttr($value, $data)
  76. {
  77. $event_name = '-';
  78. switch ($data['commission_event']) {
  79. case self::COMMISSION_EVENT_PAYED:
  80. $event_name = '支付后结算';
  81. break;
  82. case self::COMMISSION_EVENT_CONFIRM:
  83. $event_name = '确认收货结算';
  84. break;
  85. case self::COMMISSION_EVENT_FINISH:
  86. $event_name = '订单完成结算';
  87. break;
  88. case self::COMMISSION_EVENT_ADMIN:
  89. $event_name = '手动打款';
  90. break;
  91. }
  92. return $event_name;
  93. }
  94. public function agent()
  95. {
  96. return $this->belongsTo(\app\admin\model\User::class, 'agent_id')->field('id,nickname,avatar,mobile,prevtime,logintime,jointime');
  97. }
  98. public function order()
  99. {
  100. return $this->belongsTo(\app\admin\model\shopro\order\Order::class, 'order_id');
  101. }
  102. public function item()
  103. {
  104. return $this->belongsTo(\app\admin\model\shopro\order\OrderItem::class, 'order_item_id');
  105. }
  106. public function reward()
  107. {
  108. return $this->hasMany(\app\admin\model\shopro\commission\Reward::class, 'commission_order_id');
  109. }
  110. public function buyer()
  111. {
  112. return $this->belongsTo(\app\admin\model\User::class, 'buyer_id');
  113. }
  114. }