Files
amb_wechatapp/application/api/model/order/Service.php
T

53 lines
1.5 KiB
PHP

<?php
namespace app\api\model\order;
use think\Model;
use think\Db;
use app\common\model\order\Status as StatusModel;
class Service extends Model
{
// 申请退款
public static function operRefund($params)
{
$user = User::info();
extract($params);
$order = self::canAftersale()->where('user_id', $user->id)->where('id', $id)->find();
// 获取要操作的 订单 item
$order_item = self::getItem($order, $order_item_id);
if (!in_array($order_item->refund_status, [
OrderItem::REFUND_STATUS_REFUSE,
OrderItem::REFUND_STATUS_NOREFUND,
])) {
throw new \app\common\exception\Exception('当前订单已在申请退款状态');
}
$order = Db::transaction(function () use ($order, $order_item, $user) {
$order_item->aftersale_status = OrderItem::AFTERSALE_STATUS_AFTERING; // 申请售后
$order_item->refund_status = OrderItem::REFUND_STATUS_ING; // 申请退款
$order_item->save();
OrderAction::operAdd($order, $order_item, $user, 'user', '用户申请退款');
return $order;
});
return $order;
}
/**
* 获取退款原因
* @return string[]
*/
public function getRefundReason(){
return [
1=>'不想要了',
2=>'商家服务原因',
3=>'商品质量问题',
4=>'其他'
];
}
}