fix: 优化订单及售后退款控制器异常捕获,避免第三方支付错误触发500
这个提交包含在:
@@ -297,32 +297,36 @@ class Aftersale extends Backend
|
||||
$this->error('订单商品已退款,不能重复退款');
|
||||
}
|
||||
|
||||
Db::transaction(function () use ($aftersale, $order, $orderItem, $refund_money, $refund_surplus_money) {
|
||||
$data = ['aftersale' => $aftersale, 'order' => $order, 'item' => $orderItem];
|
||||
\think\Hook::listen('aftersale_finish_before', $data);
|
||||
try {
|
||||
Db::transaction(function () use ($aftersale, $order, $orderItem, $refund_money, $refund_surplus_money) {
|
||||
$data = ['aftersale' => $aftersale, 'order' => $order, 'item' => $orderItem];
|
||||
\think\Hook::listen('aftersale_finish_before', $data);
|
||||
|
||||
$aftersale->aftersale_status = \app\admin\model\shopro\order\Aftersale::AFTERSALE_STATUS_OK; // 售后同意
|
||||
$aftersale->refund_status = \app\admin\model\shopro\order\Aftersale::REFUND_STATUS_FINISH; // 售后同意退款
|
||||
$aftersale->refund_fee = bcadd($refund_money, $aftersale->refund_fee, 2); // 已退款金额
|
||||
$aftersale->save();
|
||||
$aftersale->aftersale_status = \app\admin\model\shopro\order\Aftersale::AFTERSALE_STATUS_OK; // 售后同意
|
||||
$aftersale->refund_status = \app\admin\model\shopro\order\Aftersale::REFUND_STATUS_FINISH; // 售后同意退款
|
||||
$aftersale->refund_fee = bcadd($refund_money, $aftersale->refund_fee, 2); // 已退款金额
|
||||
$aftersale->save();
|
||||
|
||||
// 增加售后单变动记录
|
||||
OrderAftersaleLog::operAdd($order, $aftersale, $this->auth->getUserInfo(), 'admin', [
|
||||
'reason' => '卖家同意退款',
|
||||
'content' => '售后订单已退款',
|
||||
'images' => []
|
||||
]);
|
||||
// 增加售后单变动记录
|
||||
OrderAftersaleLog::operAdd($order, $aftersale, $this->auth->getUserInfo(), 'admin', [
|
||||
'reason' => '卖家同意退款',
|
||||
'content' => '售后订单已退款',
|
||||
'images' => []
|
||||
]);
|
||||
|
||||
$orderItem->aftersale_status = OrderItem::AFTERSALE_STATUS_OK;
|
||||
$orderItem->save();
|
||||
\addons\shopro\model\OrderAction::operAdd($order, $orderItem, $this->auth->getUserInfo(), 'admin', '管理员同意售后退款');
|
||||
$orderItem->aftersale_status = OrderItem::AFTERSALE_STATUS_OK;
|
||||
$orderItem->save();
|
||||
\addons\shopro\model\OrderAction::operAdd($order, $orderItem, $this->auth->getUserInfo(), 'admin', '管理员同意售后退款');
|
||||
|
||||
// 退款
|
||||
\app\admin\model\shopro\order\Order::startRefund($order, $orderItem, $refund_money, $this->auth->getUserInfo(), '管理员同意售后退款');
|
||||
// 退款
|
||||
\app\admin\model\shopro\order\Order::startRefund($order, $orderItem, $refund_money, $this->auth->getUserInfo(), '管理员同意售后退款');
|
||||
|
||||
$data = ['aftersale' => $aftersale, 'order' => $order, 'item' => $orderItem];
|
||||
\think\Hook::listen('aftersale_finish_after', $data);
|
||||
});
|
||||
$data = ['aftersale' => $aftersale, 'order' => $order, 'item' => $orderItem];
|
||||
\think\Hook::listen('aftersale_finish_after', $data);
|
||||
});
|
||||
} catch (\Throwable $e) {
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
|
||||
return $this->success('操作成功');
|
||||
}
|
||||
|
||||
在新工单中引用
屏蔽一个用户