diff --git a/server/app/common/service/gancao/GancaoLogisticsRouteService.php b/server/app/common/service/gancao/GancaoLogisticsRouteService.php index 941aa08f..c0e945e7 100644 --- a/server/app/common/service/gancao/GancaoLogisticsRouteService.php +++ b/server/app/common/service/gancao/GancaoLogisticsRouteService.php @@ -74,7 +74,14 @@ final class GancaoLogisticsRouteService } $result = $resp['result']; - $trackingNumber = trim((string) ($result['sp_order_no'] ?? ($order->tracking_number ?? ''))); + $apiTracking = trim((string) ($result['sp_order_no'] ?? '')); + $localTracking = trim((string) ($order->tracking_number ?? '')); + // 业务订单已录快递单号时:不改用甘草返回的 sp_order_no,轨迹仍写入本地单号对应的运单记录 + if ($localTracking !== '') { + $trackingNumber = mb_substr($localTracking, 0, 80); + } else { + $trackingNumber = mb_substr($apiTracking, 0, 80); + } $spName = trim((string) ($result['sp_name'] ?? ($order->gancao_shipping_name ?? ''))); $routeList = is_array($result['route_list'] ?? null) ? $result['route_list'] : []; @@ -87,7 +94,7 @@ final class GancaoLogisticsRouteService // 回写订单的快递单号 / 物流公司(如果之前空着)+ 签收时升级 fulfillment_status $orderDirty = false; - if (trim((string) $order->tracking_number) === '') { + if ($localTracking === '') { $order->tracking_number = mb_substr($trackingNumber, 0, 80); $orderDirty = true; }