From 5bf347b19e749740bd3847c9165635a064df0538 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=98=8A=E5=A4=A9?= <442384644@qq.com> Date: Tue, 29 Sep 2026 11:32:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E8=AE=A2=E5=8D=95=E6=A0=B8=E9=94=80):=20?= =?UTF-8?q?=E6=94=B6=E8=B4=A7=E9=93=BE=E8=B7=AF=E5=85=A5=E5=8F=A3=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E5=BD=92=E4=B8=80=E5=8C=96=E5=B9=B6=E9=80=8F=E5=87=BA?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E6=A0=A1=E9=AA=8C=E5=BC=82=E5=B8=B8=E5=8E=9F?= =?UTF-8?q?=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/services/order/OrderTakeServices.php | 4 ++++ .../product/normal/controller/admin/OrderController.php | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/backend/app/services/order/OrderTakeServices.php b/backend/app/services/order/OrderTakeServices.php index c3dd9817c..ac816abcb 100644 --- a/backend/app/services/order/OrderTakeServices.php +++ b/backend/app/services/order/OrderTakeServices.php @@ -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']); diff --git a/backend/modules/product/normal/controller/admin/OrderController.php b/backend/modules/product/normal/controller/admin/OrderController.php index a343aa58e..dfa34014d 100644 --- a/backend/modules/product/normal/controller/admin/OrderController.php +++ b/backend/modules/product/normal/controller/admin/OrderController.php @@ -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('确认收货失败');