123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <?php
- namespace app\admin\model\shopro\order;
- use think\Model;
- use traits\model\SoftDelete;
- use addons\shopro\library\traits\model\order\OrderAftersaleScope;
- use app\admin\model\shopro\activity\Activity;
- class Aftersale extends Model
- {
- use SoftDelete, OrderAftersaleScope;
-
- // 表名
- protected $name = 'shopro_order_aftersale';
-
- // 自动写入时间戳字段
- protected $autoWriteTimestamp = 'int';
- // 定义时间戳字段名
- protected $createTime = 'createtime';
- protected $updateTime = 'updatetime';
- protected $deleteTime = 'deletetime';
- // 追加属性
- protected $append = [
- 'type_text',
- 'dispatch_status_text',
- 'aftersale_status_text',
- 'aftersale_status_desc',
- 'refund_status_text',
- 'activity_type_arr',
- 'activity_type_text_arr',
- ];
-
- // 发货状态
- const DISPATCH_STATUS_NOSEND = 0; // 未发货
- const DISPATCH_STATUS_SENDED = 1; // 已发货
- const DISPATCH_STATUS_GETED = 2; // 已收货
- // 售后状态
- const AFTERSALE_STATUS_CANCEL = -2; // 售后取消
- const AFTERSALE_STATUS_REFUSE = -1; // 拒绝
- const AFTERSALE_STATUS_NOOPER = 0; // 未处理
- const AFTERSALE_STATUS_AFTERING = 1; // 处理中
- const AFTERSALE_STATUS_OK = 2; // 售后完成
- // 退款状态
- const REFUND_STATUS_REFUSE = -1; // 拒绝退款(不用了)
- const REFUND_STATUS_NOREFUND = 0; // 未退款
- const REFUND_STATUS_FINISH = 1; // 同意
- public function getTypeList()
- {
- return ['refund' => __('Type refund'), 'return' => __('Type return'), 'other' => __('Type other')];
- }
- public function getDispatchStatusList()
- {
- return ['0' => __('Dispatch_status 0'), '1' => __('Dispatch_status 1'), '2' => __('Dispatch_status 2')];
- }
- public function getAftersaleStatusList()
- {
- return ['-2' => __('Aftersale_status -2'), '-1' => __('Aftersale_status -1'), '0' => __('Aftersale_status 0'), '1' => __('Aftersale_status 1'), '2' => __('Aftersale_status 2')];
- }
- public function getAftersaleStatusDescList()
- {
- 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')];
- }
- public function getRefundStatusList()
- {
- return ['-1' => __('Refund_status -1'), '0' => __('Refund_status 0'), '1' => __('Refund_status 1')];
- }
- public function getTypeTextAttr($value, $data)
- {
- $value = $value ? $value : (isset($data['type']) ? $data['type'] : '');
- $list = $this->getTypeList();
- return isset($list[$value]) ? $list[$value] : '';
- }
- public function getActivityTypeArrAttr($value, $data) {
- $activity_types = $value ? $value : (isset($data['activity_type']) ? $data['activity_type'] : '');
- $activityTypes = array_values(array_filter(explode(',', $activity_types)));
- return $activityTypes;
- }
- public function getActivityTypeTextArrAttr($value, $data)
- {
- $activityTypes = $this->activity_type_arr;
- $list = \app\admin\model\shopro\activity\Activity::getTypeList();
- $activityTypeTextArr = [];
- foreach ($activityTypes as $key => $activity_type) {
- if (isset($list[$activity_type])) {
- $activityTypeTextArr[$activity_type] = $list[$activity_type];
- }
- }
- return $activityTypeTextArr;
- }
- public function getDispatchStatusTextAttr($value, $data)
- {
- $value = $value ? $value : (isset($data['dispatch_status']) ? $data['dispatch_status'] : '');
- $list = $this->getDispatchStatusList();
- return isset($list[$value]) ? $list[$value] : '';
- }
- public function getAftersaleStatusTextAttr($value, $data)
- {
- $value = $value ? $value : (isset($data['aftersale_status']) ? $data['aftersale_status'] : '');
- $list = $this->getAftersaleStatusList();
- return isset($list[$value]) ? $list[$value] : '';
- }
- public function getAftersaleStatusDescAttr($value, $data)
- {
- $value = $value ? $value : (isset($data['aftersale_status']) ? $data['aftersale_status'] : '');
- $list = $this->getAftersaleStatusDescList();
- return isset($list[$value]) ? $list[$value] : '';
- }
- public function getRefundStatusTextAttr($value, $data)
- {
- $value = $value ? $value : (isset($data['refund_status']) ? $data['refund_status'] : '');
- $list = $this->getRefundStatusList();
- return isset($list[$value]) ? $list[$value] : '';
- }
- public function user()
- {
- return $this->belongsTo(\app\admin\model\User::class, 'user_id', 'id');
- }
- public function order()
- {
- return $this->belongsTo(\app\admin\model\shopro\order\Order::class, 'order_id', 'id');
- }
- public function logs()
- {
- return $this->hasMany(AftersaleLog::class, 'order_aftersale_id', 'id')->order('id', 'desc');
- }
- }
|