fix(实物订单): 送货发货补录送货人uid并随详情返回

delivery_uid 无实体列,原 syncCenter 直写中台表报 fields not exists;
改经 updateDeliveryInfo 随 extra_info.delivery JSON 落库,详情监听器提升顶层返回
This commit is contained in:
吴昊天 2026-10-10 11:23:19 +08:00
parent 8ac1b54608
commit 048f5cf96c
3 changed files with 8 additions and 5 deletions

View File

@ -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);
}
// 写入订单记录

View File

@ -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'] ?? ''));

View File

@ -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),