From 730fdad6f4814646fdff44b7a96a1af00cbe1ffd Mon Sep 17 00:00:00 2001 From: From-wh Date: Tue, 27 Oct 2026 10:16:50 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=AE=9E=E7=89=A9=E8=AE=A2=E5=8D=95):=20?= =?UTF-8?q?=E5=8F=91=E8=B4=A7=E5=90=8C=E6=AD=A5=E9=A1=B6=E5=B1=82=E9=85=8D?= =?UTF-8?q?=E9=80=81=E6=96=B9=E5=BC=8F=E5=B9=B6=E4=BF=AE=E6=AD=A3=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E5=8F=96=E5=80=BC=E4=BC=98=E5=85=88=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 发货时同步更新 extra_info.delivery_type,与嵌套 delivery.delivery_type 保持一致 - 详情扩展监听器取值改为发货信息优先,避免下单时写入的顶层旧值(express)覆盖实际发货方式 - 修复无需配送发货后订单详情仍显示快递配送的问题 --- .../normal/listener/OrderCenterDetailExtendListener.php | 5 ++++- backend/modules/product/normal/service/OrderServices.php | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/modules/product/normal/listener/OrderCenterDetailExtendListener.php b/backend/modules/product/normal/listener/OrderCenterDetailExtendListener.php index 65285946a..ccc1b2e31 100644 --- a/backend/modules/product/normal/listener/OrderCenterDetailExtendListener.php +++ b/backend/modules/product/normal/listener/OrderCenterDetailExtendListener.php @@ -90,7 +90,10 @@ class OrderCenterDetailExtendListener implements ListenerInterface } } - $deliveryType = (string)($extraInfo['delivery_type'] ?? ($extraInfo['delivery']['delivery_type'] ?? '')); + // 发货配送方式以 extra_info.delivery.delivery_type(发货时写入)为准; + // 顶层 extra_info.delivery_type 是下单收货方式(express/pickup/door), + // 存量订单发货后两者可能不一致,不能让顶层旧值覆盖实际发货方式 + $deliveryType = (string)(($extraInfo['delivery']['delivery_type'] ?? '') ?: ($extraInfo['delivery_type'] ?? '')); if ($deliveryType === '') { $shippingType = (int)($detail['shipping_type'] ?? 0); $deliveryType = $shippingType === 2 ? 'pickup' : ($shippingType === 3 ? 'door' : 'express'); diff --git a/backend/modules/product/normal/service/OrderServices.php b/backend/modules/product/normal/service/OrderServices.php index 80ccf3d27..2d5ef9fa6 100644 --- a/backend/modules/product/normal/service/OrderServices.php +++ b/backend/modules/product/normal/service/OrderServices.php @@ -174,6 +174,8 @@ class OrderServices extends BaseService 'delivery_id' => $deliveryId, 'delivery_uid' => $deliveryUid, ]; + // 顶层 delivery_type 为下单收货方式,发货后以实际发货配送方式为准,两处必须同步 + $extraInfo['delivery_type'] = $deliveryType; $this->centerServices->updateRecord($orderNo, [ 'extra_info' => json_encode($extraInfo, JSON_UNESCAPED_UNICODE), 'delivery_time' => time(),