Aftersale.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. namespace app\admin\model\shopro\order;
  3. use think\Model;
  4. use traits\model\SoftDelete;
  5. use addons\shopro\library\traits\model\order\OrderAftersaleScope;
  6. use app\admin\model\shopro\activity\Activity;
  7. class Aftersale extends Model
  8. {
  9. use SoftDelete, OrderAftersaleScope;
  10. // 表名
  11. protected $name = 'shopro_order_aftersale';
  12. // 自动写入时间戳字段
  13. protected $autoWriteTimestamp = 'int';
  14. // 定义时间戳字段名
  15. protected $createTime = 'createtime';
  16. protected $updateTime = 'updatetime';
  17. protected $deleteTime = 'deletetime';
  18. // 追加属性
  19. protected $append = [
  20. 'type_text',
  21. 'dispatch_status_text',
  22. 'aftersale_status_text',
  23. 'aftersale_status_desc',
  24. 'refund_status_text',
  25. 'activity_type_arr',
  26. 'activity_type_text_arr',
  27. ];
  28. // 发货状态
  29. const DISPATCH_STATUS_NOSEND = 0; // 未发货
  30. const DISPATCH_STATUS_SENDED = 1; // 已发货
  31. const DISPATCH_STATUS_GETED = 2; // 已收货
  32. // 售后状态
  33. const AFTERSALE_STATUS_CANCEL = -2; // 售后取消
  34. const AFTERSALE_STATUS_REFUSE = -1; // 拒绝
  35. const AFTERSALE_STATUS_NOOPER = 0; // 未处理
  36. const AFTERSALE_STATUS_AFTERING = 1; // 处理中
  37. const AFTERSALE_STATUS_OK = 2; // 售后完成
  38. // 退款状态
  39. const REFUND_STATUS_REFUSE = -1; // 拒绝退款(不用了)
  40. const REFUND_STATUS_NOREFUND = 0; // 未退款
  41. const REFUND_STATUS_FINISH = 1; // 同意
  42. public function getTypeList()
  43. {
  44. return ['refund' => __('Type refund'), 'return' => __('Type return'), 'other' => __('Type other')];
  45. }
  46. public function getDispatchStatusList()
  47. {
  48. return ['0' => __('Dispatch_status 0'), '1' => __('Dispatch_status 1'), '2' => __('Dispatch_status 2')];
  49. }
  50. public function getAftersaleStatusList()
  51. {
  52. return ['-2' => __('Aftersale_status -2'), '-1' => __('Aftersale_status -1'), '0' => __('Aftersale_status 0'), '1' => __('Aftersale_status 1'), '2' => __('Aftersale_status 2')];
  53. }
  54. public function getAftersaleStatusDescList()
  55. {
  56. return ['-2' => __('Aftersale_status_desc -2'), '-1' => __('Aftersale_status_desc -1'), '0' => __('Aftersale_status_desc 0'), '1' => __('Aftersale_status_desc 1'), '2' => __('Aftersale_status_desc 2')];
  57. }
  58. public function getRefundStatusList()
  59. {
  60. return ['-1' => __('Refund_status -1'), '0' => __('Refund_status 0'), '1' => __('Refund_status 1')];
  61. }
  62. public function getTypeTextAttr($value, $data)
  63. {
  64. $value = $value ? $value : (isset($data['type']) ? $data['type'] : '');
  65. $list = $this->getTypeList();
  66. return isset($list[$value]) ? $list[$value] : '';
  67. }
  68. public function getActivityTypeArrAttr($value, $data) {
  69. $activity_types = $value ? $value : (isset($data['activity_type']) ? $data['activity_type'] : '');
  70. $activityTypes = array_values(array_filter(explode(',', $activity_types)));
  71. return $activityTypes;
  72. }
  73. public function getActivityTypeTextArrAttr($value, $data)
  74. {
  75. $activityTypes = $this->activity_type_arr;
  76. $list = \app\admin\model\shopro\activity\Activity::getTypeList();
  77. $activityTypeTextArr = [];
  78. foreach ($activityTypes as $key => $activity_type) {
  79. if (isset($list[$activity_type])) {
  80. $activityTypeTextArr[$activity_type] = $list[$activity_type];
  81. }
  82. }
  83. return $activityTypeTextArr;
  84. }
  85. public function getDispatchStatusTextAttr($value, $data)
  86. {
  87. $value = $value ? $value : (isset($data['dispatch_status']) ? $data['dispatch_status'] : '');
  88. $list = $this->getDispatchStatusList();
  89. return isset($list[$value]) ? $list[$value] : '';
  90. }
  91. public function getAftersaleStatusTextAttr($value, $data)
  92. {
  93. $value = $value ? $value : (isset($data['aftersale_status']) ? $data['aftersale_status'] : '');
  94. $list = $this->getAftersaleStatusList();
  95. return isset($list[$value]) ? $list[$value] : '';
  96. }
  97. public function getAftersaleStatusDescAttr($value, $data)
  98. {
  99. $value = $value ? $value : (isset($data['aftersale_status']) ? $data['aftersale_status'] : '');
  100. $list = $this->getAftersaleStatusDescList();
  101. return isset($list[$value]) ? $list[$value] : '';
  102. }
  103. public function getRefundStatusTextAttr($value, $data)
  104. {
  105. $value = $value ? $value : (isset($data['refund_status']) ? $data['refund_status'] : '');
  106. $list = $this->getRefundStatusList();
  107. return isset($list[$value]) ? $list[$value] : '';
  108. }
  109. public function user()
  110. {
  111. return $this->belongsTo(\app\admin\model\User::class, 'user_id', 'id');
  112. }
  113. public function order()
  114. {
  115. return $this->belongsTo(\app\admin\model\shopro\order\Order::class, 'order_id', 'id');
  116. }
  117. public function logs()
  118. {
  119. return $this->hasMany(AftersaleLog::class, 'order_aftersale_id', 'id')->order('id', 'desc');
  120. }
  121. }