diff --git a/backend/modules/product/normal/controller/admin/OrderController.php b/backend/modules/product/normal/controller/admin/OrderController.php index 0cc588444..391f41646 100644 --- a/backend/modules/product/normal/controller/admin/OrderController.php +++ b/backend/modules/product/normal/controller/admin/OrderController.php @@ -470,15 +470,13 @@ class OrderController extends AuthController // 配送/送货 $deliveryName = $this->request->param('sh_delivery_name', ''); $deliveryId = $this->request->param('sh_delivery_id', ''); - $shDeliveryUid = $this->request->param('sh_delivery_uid', 0); + $shDeliveryUid = (int)$this->request->param('sh_delivery_uid', 0); if (empty($deliveryName)) { return app('json')->fail('请选择送货人'); } if (empty($deliveryId)) { return app('json')->fail('请输入送货人电话'); } - // 配送员信息存入扩展表 - $orderServices->syncCenter($orderNo, ['delivery_uid' => $shDeliveryUid]); break; case 'fictitious': // 虚拟发货(无需配送) @@ -517,7 +515,7 @@ class OrderController extends AuthController $deliveryId = (string)($dumpResult['kuaidinum'] ?? $deliveryId); } else { // 通过 OrderServices 统一更新扩展表配送信息 + 状态 + 中台表同步 - $orderServices->updateDeliveryInfo($orderNo, $deliveryName, $deliveryId, $deliveryType); + $orderServices->updateDeliveryInfo($orderNo, $deliveryName, $deliveryId, $deliveryType, $shDeliveryUid ?? 0); } // 写入订单记录 diff --git a/backend/modules/product/normal/listener/OrderCenterDetailExtendListener.php b/backend/modules/product/normal/listener/OrderCenterDetailExtendListener.php index 88e42479a..e93a1ddec 100644 --- a/backend/modules/product/normal/listener/OrderCenterDetailExtendListener.php +++ b/backend/modules/product/normal/listener/OrderCenterDetailExtendListener.php @@ -80,6 +80,9 @@ class OrderCenterDetailExtendListener implements ListenerInterface if (empty($detail['delivery_code'])) { $detail['delivery_code'] = $delivery['delivery_code'] ?? ''; } + if (empty($detail['delivery_uid'])) { + $detail['delivery_uid'] = (int)($delivery['delivery_uid'] ?? 0); + } } $deliveryType = (string)($extraInfo['delivery_type'] ?? ($extraInfo['delivery']['delivery_type'] ?? '')); diff --git a/backend/modules/product/normal/service/OrderServices.php b/backend/modules/product/normal/service/OrderServices.php index ca5291ef2..40ad087b0 100644 --- a/backend/modules/product/normal/service/OrderServices.php +++ b/backend/modules/product/normal/service/OrderServices.php @@ -149,9 +149,10 @@ class OrderServices extends BaseService * @param string $deliveryName 快递公司/配送员 * @param string $deliveryId 快递单号/电话 * @param string $deliveryType 配送方式(express/send/fictitious) + * @param int $deliveryUid 送货人uid(仅送货方式有值,随 extra_info.delivery 存中台表 JSON) * @return void */ - public function updateDeliveryInfo(string $orderNo, string $deliveryName, string $deliveryId, string $deliveryType = 'express'): void + public function updateDeliveryInfo(string $orderNo, string $deliveryName, string $deliveryId, string $deliveryType = 'express', int $deliveryUid = 0): void { // 更新扩展表配送信息 + 状态 $this->dao->update(['order_no' => $orderNo], [ @@ -171,6 +172,7 @@ class OrderServices extends BaseService 'delivery_type' => $deliveryType, 'delivery_name' => $deliveryName, 'delivery_id' => $deliveryId, + 'delivery_uid' => $deliveryUid, ]; $this->centerServices->updateRecord($orderNo, [ 'extra_info' => json_encode($extraInfo, JSON_UNESCAPED_UNICODE),