This commit is contained in:
2026-08-03 15:46:51 +08:00
3 changed files with 18 additions and 5 deletions
@@ -64,7 +64,12 @@ public class OrderMasterDataGuard {
}
}
private PartnerClient.Partner loadPartner(long tenantId,long id) {
var response=partners.active(token,tenantId,id);
ApiResponse<PartnerClient.Partner> 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<WarehouseClient.Detail> 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();
@@ -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() {
@@ -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);