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');
|
||
|
}
|
||
|
}
|