From cee8d7e029fb9e688a4c5b81e097628ddc128404 Mon Sep 17 00:00:00 2001 From: zhuotianyuan Date: Tue, 27 Jan 2026 16:59:34 +0800 Subject: [PATCH] =?UTF-8?q?fix(logistics):=20=E4=BF=AE=E5=A4=8D=E7=89=A9?= =?UTF-8?q?=E6=B5=81=E6=9C=8D=E5=8A=A1=E4=B8=AD=E7=9A=84=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=A4=84=E7=90=86=E5=92=8C=E5=BF=AB=E9=80=92=E5=85=AC=E5=8F=B8?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复freightwaves服务中的错误响应处理,增加错误码检查 添加courierCompany字段到物流DTO以支持不同快递公司 移除订单服务中注释掉的saveOrderSale调用 更新物流服务中使用courierCompany代替硬编码的shipCompany --- src/dto/logistics.dto.ts | 6 ++++++ src/service/freightwaves.service.ts | 14 +++++++++++++- src/service/logistics.service.ts | 7 +++++-- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/dto/logistics.dto.ts b/src/dto/logistics.dto.ts index b49b72c..48841db 100644 --- a/src/dto/logistics.dto.ts +++ b/src/dto/logistics.dto.ts @@ -23,6 +23,10 @@ export class ShipmentBookDTO { @ApiProperty() @Rule(RuleType.string()) shipmentPlatform: string; + + @ApiProperty() + @Rule(RuleType.string()) + courierCompany: string; } export class ShipmentFeeBookDTO { @@ -30,6 +34,8 @@ export class ShipmentFeeBookDTO { @ApiProperty() shipmentPlatform: string; @ApiProperty() + courierCompany: string; + @ApiProperty() stockPointId: number; @ApiProperty() sender: string; diff --git a/src/service/freightwaves.service.ts b/src/service/freightwaves.service.ts index f2bbe0a..3c51bec 100644 --- a/src/service/freightwaves.service.ts +++ b/src/service/freightwaves.service.ts @@ -247,6 +247,9 @@ export class FreightwavesService { }; const response = await this.sendRequest('/shipService/order/rateTry', requestData); + if (response.code !== '00000200') { + throw new Error(response.msg); + } return response.data; } @@ -262,7 +265,10 @@ export class FreightwavesService { }; const response = await this.sendRequest('/shipService/order/createOrder', requestData); - return response; + if (response.code !== '00000200') { + throw new Error(response.msg); + } + return response.data; } /** @@ -295,6 +301,9 @@ export class FreightwavesService { }; const response = await this.sendRequest('/shipService/order/modifyOrder', requestData); + if (response.code !== '00000200') { + throw new Error(response.msg); + } return response.data; } @@ -309,6 +318,9 @@ export class FreightwavesService { partner: this.config.partner, }; const response = await this.sendRequest('/shipService/order/refundOrder', requestData); + if (response.code !== '00000200') { + throw new Error(response.msg); + } return response.data; } diff --git a/src/service/logistics.service.ts b/src/service/logistics.service.ts index 4e472be..cb6738c 100644 --- a/src/service/logistics.service.ts +++ b/src/service/logistics.service.ts @@ -733,7 +733,8 @@ export class LogisticsService { if (data.shipmentPlatform === 'freightwaves') { // 根据TMS系统对接说明文档格式化参数 const reqBody: any = { - shipCompany: 'UPSYYZ7000NEW', + // shipCompany: 'UPSYYZ7000NEW', + shipCompany: data.courierCompany || "", partnerOrderNumber: order.siteId + '-' + order.externalOrderId, warehouseId: '25072621030107400060', shipper: { @@ -798,6 +799,7 @@ export class LogisticsService { }; resShipmentOrder = await this.freightwavesService.createOrder(reqBody); // 创建订单 + //tms只返回了物流订单号,需要查询一次来获取完整的物流信息 const queryRes = await this.freightwavesService.queryOrder({ shipOrderId: resShipmentOrder.shipOrderId }); // 查询订单 resShipmentOrder.push(queryRes); @@ -826,7 +828,8 @@ export class LogisticsService { const address = shipments?.address; // 转换为RateTryRequest格式 const r = { - shipCompany: 'UPSYYZ7000NEW', // 必填,但ShipmentFeeBookDTO中缺少 + //shipCompany: 'UPSYYZ7000NEW', // 必填,但ShipmentFeeBookDTO中缺少 + shipCompany: data.courierCompany || "", partnerOrderNumber: `order-${Date.now()}`, // 必填,使用时间戳生成 warehouseId: '25072621030107400060', // 可选,使用stockPointId转换 shipper: {