160 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			160 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| 
 | |
| namespace app\common\model\after_sale;
 | |
| 
 | |
| use app\common\basics\Models;
 | |
| use app\common\enum\PayEnum;
 | |
| use app\common\model\Client_;
 | |
| use app\common\model\Pay;
 | |
| use app\common\model\shop\Shop;
 | |
| use app\common\model\user\User;
 | |
| use app\common\model\order\Order;
 | |
| use app\common\model\order\OrderGoods;
 | |
| use app\common\server\ConfigServer;
 | |
| use think\facade\Db;
 | |
| 
 | |
| class AfterSale extends Models
 | |
| {
 | |
|     //售后状态
 | |
|     const STATUS_APPLY_REFUND           = 0;//申请退款
 | |
|     const STATUS_REFUSE_REFUND          = 1;//商家拒绝
 | |
|     const STATUS_WAIT_RETURN_GOODS      = 2;//商品待退货
 | |
|     const STATUS_WAIT_RECEIVE_GOODS     = 3;//商家待收货
 | |
|     const STATUS_REFUSE_RECEIVE_GOODS   = 4;//商家拒收货
 | |
|     const STATUS_WAIT_REFUND            = 5;//等待退款
 | |
|     const STATUS_SUCCESS_REFUND         = 6;//退款成功
 | |
| 
 | |
|     //退款类型
 | |
|     const TYPE_ONLY_REFUND      = 0;//仅退款
 | |
|     const TYPE_REFUND_RETURN    = 1;//退款退货
 | |
| 
 | |
|     /**
 | |
|      * @notes 售后状态描述
 | |
|      * @param $state
 | |
|      * @return string|string[]
 | |
|      * @author suny
 | |
|      * @date 2021/7/13 6:37 下午
 | |
|      */
 | |
|     public static function getStatusDesc($state)
 | |
|     {
 | |
|         $data = [
 | |
|             self::STATUS_APPLY_REFUND           => '申请退款',
 | |
|             self::STATUS_REFUSE_REFUND          => '商家拒绝',
 | |
|             self::STATUS_WAIT_RETURN_GOODS      => '商品待退货',
 | |
|             self::STATUS_WAIT_RECEIVE_GOODS     => '商家待收货',
 | |
|             self::STATUS_REFUSE_RECEIVE_GOODS   => '商家拒收货',
 | |
|             self::STATUS_WAIT_REFUND            => '等待退款',
 | |
|             self::STATUS_SUCCESS_REFUND         => '退款成功',
 | |
|         ];
 | |
|         if ($state === true) {
 | |
|             return $data;
 | |
|         }
 | |
|         return $data[$state] ?? '';
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 售后类型描述
 | |
|      * @param $type
 | |
|      * @return string|string[]
 | |
|      * @author suny
 | |
|      * @date 2021/7/13 6:37 下午
 | |
|      */
 | |
|     public static function getRefundTypeDesc($type)
 | |
|     {
 | |
|         $data = [
 | |
|             self::TYPE_ONLY_REFUND      => '仅退款',
 | |
|             self::TYPE_REFUND_RETURN    => '退款退货',
 | |
|         ];
 | |
|         if ($type === true) {
 | |
|             return $data;
 | |
|         }
 | |
|         return $data[$type] ?? '';
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 售后原因
 | |
|      * @return string[]
 | |
|      * @author suny
 | |
|      * @date 2021/7/13 6:37 下午
 | |
|      */
 | |
|     public static function getReasonLists()
 | |
|     {
 | |
|         $data = [
 | |
|             '7天无理由退换货',
 | |
|             '大小尺寸与商品描述不符',
 | |
|             '颜色/图案/款式不符',
 | |
|             '做工粗糙/有瑕疵',
 | |
|             '质量问题',
 | |
|             '卖家发错货',
 | |
|             '少件(含缺少配件)',
 | |
|             '不喜欢/不想要',
 | |
|             '快递/物流一直未送到',
 | |
|             '空包裹',
 | |
|             '快递/物流无跟踪记录',
 | |
|             '货物破损已拒签',
 | |
|             '其他',
 | |
|         ];
 | |
|         return $data;
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 预载入OrderGoods
 | |
|      * @return \think\model\relation\HasMany
 | |
|      * @author suny
 | |
|      * @date 2021/7/13 6:38 下午
 | |
|      */
 | |
|     public function orderGoods()
 | |
|     {
 | |
|         return $this->hasMany(OrderGoods::class, 'id', 'order_goods_id');
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @notes 预载入user
 | |
|      * @return \think\model\relation\HasOne
 | |
|      * @author suny
 | |
|      * @date 2021/7/13 6:38 下午
 | |
|      */
 | |
|     public function user()
 | |
|     {
 | |
|         return $this->hasOne(User::class, 'id', 'user_id')
 | |
|             ->field('id,sn,nickname,avatar,mobile,sex,create_time');
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @notes 预载入order
 | |
|      * @return AfterSale|\think\model\relation\HasOne
 | |
|      * @author suny
 | |
|      * @date 2021/7/13 6:38 下午
 | |
|      */
 | |
|     public function order()
 | |
|     {
 | |
|         return $this->hasOne(Order::class, 'id', 'order_id')
 | |
|             ->field('id,shop_id,order_sn,total_amount,order_amount,pay_way,order_status');
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @notes 预载入shop
 | |
|      * @return \think\model\relation\HasOne
 | |
|      * @author suny
 | |
|      * @date 2021/7/13 6:38 下午
 | |
|      */
 | |
|     public function shop()
 | |
|     {
 | |
|         return $this->hasOne(Shop::class, 'id', 'shop_id')
 | |
|             ->field('id,type as type_desc,name,logo');
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @notes 预载入after_sale_log
 | |
|      * @return \think\model\relation\HasMany
 | |
|      * @author suny
 | |
|      * @date 2021/7/13 6:39 下午
 | |
|      */
 | |
|     public function logs()
 | |
|     {
 | |
|         return $this->hasMany('after_sale_log', 'after_sale_id', 'id')->order('id desc');
 | |
|     }
 | |
| } |