fix(订单核销): 收货链路入口模型归一化并透出业务校验异常原因

This commit is contained in:
吴昊天 2026-09-29 11:32:39 +08:00
parent 8466477894
commit 5bf347b19e
2 changed files with 8 additions and 0 deletions

View File

@ -150,6 +150,10 @@ class OrderTakeServices extends BaseService
*/
public function storeProductOrderUserTakeDelivery($order, bool $isTran = true, ?string $takeStatus = null)
{
// DAO get() 返回 Model(如核销链路直接传入),事务内 array_replace 要求 array
if (is_object($order)) {
$order = $order->toArray();
}
/** @var UserServices $userServices */
$userServices = app()->make(UserServices::class);
$userInfo = $userServices->get((int)$order['uid']);

View File

@ -26,6 +26,7 @@ use modules\product\normal\service\OrderServices;
use think\facade\Log;
use app\services\pay\PayServices;
use crmeb\trade\order\type\OrderTypeAdapterInterface;
use crmeb\exceptions\ApiException;
/**
* 实物商品后台订单控制器
@ -782,6 +783,9 @@ class OrderController extends AuthController
$orderServices->confirmReceipt($orderNo);
return app('json')->success('确认收货成功');
} catch (ApiException $e) {
// 业务校验类异常返回具体原因(如"该订单已被核销"),不吞成通用文案
return app('json')->fail($e->getMessage());
} catch (\Throwable $e) {
Log::error('[NormalOrder] confirmReceipt failed: ' . $e->getMessage());
return app('json')->fail('确认收货失败');