From 1c11e2f7d0627740c4b570ed9e6b0500538afcd9 Mon Sep 17 00:00:00 2001 From: liuyihe <2513762445@qq.com> Date: Mon, 3 Aug 2026 15:41:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baiyue/order/service/OrderMasterDataGuard.java | 14 ++++++++++++-- .../order/service/OrderMasterDataGuardTest.java | 5 +++-- .../src/main/resources/db/warehouse-partner.sql | 4 +++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/order/src/main/java/com/baiyue/order/service/OrderMasterDataGuard.java b/order/src/main/java/com/baiyue/order/service/OrderMasterDataGuard.java index 03456711f..202801cd8 100644 --- a/order/src/main/java/com/baiyue/order/service/OrderMasterDataGuard.java +++ b/order/src/main/java/com/baiyue/order/service/OrderMasterDataGuard.java @@ -64,7 +64,12 @@ public class OrderMasterDataGuard { } } private PartnerClient.Partner loadPartner(long tenantId,long id) { - var response=partners.active(token,tenantId,id); + ApiResponse response; + try { + response=partners.active(token,tenantId,id); + } catch (FeignException.NotFound exception) { + throw new BizException(ResultCode.NOT_FOUND,"\u672a\u7ed1\u5b9a\u53ef\u7528\u5f80\u6765\u5ba2\u6237"); + } requireSuccessful(response,"往来单位"); if (response.data()==null) throw unavailable("往来单位"); var value=response.data(); @@ -78,7 +83,12 @@ public class OrderMasterDataGuard { return value; } private WarehouseClient.Detail loadWarehouse(long tenantId,long id,String name) { - var response=warehouses.active(token,tenantId,id); + ApiResponse response; + try { + response=warehouses.active(token,tenantId,id); + } catch (FeignException.NotFound exception) { + throw new BizException(ResultCode.NOT_FOUND,"\u6536\u8d27\u4ed3\u5e93\u4e0d\u5b58\u5728\u6216\u5df2\u505c\u7528"); + } requireSuccessful(response,name); if (response.data()==null || response.data().warehouse()==null) throw unavailable(name); var value=response.data(); diff --git a/order/src/test/java/com/baiyue/order/service/OrderMasterDataGuardTest.java b/order/src/test/java/com/baiyue/order/service/OrderMasterDataGuardTest.java index 3e3436895..1d65c5bac 100644 --- a/order/src/test/java/com/baiyue/order/service/OrderMasterDataGuardTest.java +++ b/order/src/test/java/com/baiyue/order/service/OrderMasterDataGuardTest.java @@ -100,14 +100,15 @@ class OrderMasterDataGuardTest { .isEqualTo(ResultCode.SERVICE_UNAVAILABLE); } @Test - void downstreamHttpNotFoundMapsToServiceUnavailable() { + void downstreamHttpNotFoundReturnsUnboundCustomerMessage() { WarehouseClient warehouses=mock(WarehouseClient.class); PartnerClient partners=mock(PartnerClient.class); when(partners.active("token",10001,7)).thenThrow(feign(404)); assertThatThrownBy(() -> new OrderMasterDataGuard(warehouses,partners,"token").validate(10001,request(7L,8L))) .isInstanceOf(BizException.class) + .hasMessage("\u672a\u7ed1\u5b9a\u53ef\u7528\u5f80\u6765\u5ba2\u6237") .extracting(exception -> ((BizException) exception).getResultCode()) - .isEqualTo(ResultCode.SERVICE_UNAVAILABLE); + .isEqualTo(ResultCode.NOT_FOUND); } @Test void wrappedDownstreamHttpConflictMapsToServiceUnavailable() { diff --git a/warehouse/src/main/resources/db/warehouse-partner.sql b/warehouse/src/main/resources/db/warehouse-partner.sql index 97647dd30..bed69ad38 100644 --- a/warehouse/src/main/resources/db/warehouse-partner.sql +++ b/warehouse/src/main/resources/db/warehouse-partner.sql @@ -27,5 +27,7 @@ INSERT INTO wh_partner(id,tenant_id,data_scope_id,partner_code,partner_name,part VALUES(191000000000000001,10001,10001,'CUS-001','深圳示例贸易有限公司','CUSTOMER','张三','13800138000','contact@example.com','CN','广东省','深圳市','宝安区','航城街道示例路1号','518000','ACTIVE') ON DUPLICATE KEY UPDATE partner_name=VALUES(partner_name),status='ACTIVE'; INSERT INTO wh_partner_type(partner_id,tenant_id,data_scope_id,partner_type) -VALUES(191000000000000001,10001,10001,'CUSTOMER') +VALUES +(191000000000000001,10001,10001,'CUSTOMER'), +(191000000000000001,10001,10001,'SHIPPER') ON DUPLICATE KEY UPDATE tenant_id=VALUES(tenant_id),data_scope_id=VALUES(data_scope_id);