From f690abbaebc59de2630e888ad0eee3923d4912b2 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Sat, 8 Aug 2026 13:51:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/baiyue/iam/client/OverseasStorageFeeClient.java | 5 ++--- .../iam/service/OverseasStorageFeeInitializationService.java | 3 ++- .../service/OverseasStorageFeeInitializationServiceTest.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/iam/src/main/java/com/baiyue/iam/client/OverseasStorageFeeClient.java b/iam/src/main/java/com/baiyue/iam/client/OverseasStorageFeeClient.java index 1a1849d69..6c5b4f9f7 100644 --- a/iam/src/main/java/com/baiyue/iam/client/OverseasStorageFeeClient.java +++ b/iam/src/main/java/com/baiyue/iam/client/OverseasStorageFeeClient.java @@ -6,7 +6,6 @@ import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; -import org.springframework.web.bind.annotation.RequestParam; /** Internal Warehouse contract for a customer's default overseas storage fees. */ @FeignClient(name = "warehouse-service", contextId = "overseasStorageFeeClient", @@ -20,9 +19,9 @@ public interface OverseasStorageFeeClient { @DeleteMapping("/defaults") ApiResponse compensate(@RequestHeader("X-Internal-Service-Token") String token, - @RequestParam long tenantId, - @RequestParam String initializationKey); + @RequestBody CompensationRequest request); record InitializationRequest(long tenantId, long operatorId, String initializationKey) { } record InitializationResponse(Long configId, boolean createdByThisInitialization) { } + record CompensationRequest(long tenantId, String initializationKey) { } } diff --git a/iam/src/main/java/com/baiyue/iam/service/OverseasStorageFeeInitializationService.java b/iam/src/main/java/com/baiyue/iam/service/OverseasStorageFeeInitializationService.java index 1fe7a2428..f39b8b6df 100644 --- a/iam/src/main/java/com/baiyue/iam/service/OverseasStorageFeeInitializationService.java +++ b/iam/src/main/java/com/baiyue/iam/service/OverseasStorageFeeInitializationService.java @@ -72,7 +72,8 @@ public class OverseasStorageFeeInitializationService { RuntimeException last = null; for (int attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) { try { - ApiResponse response = client.compensate(internalToken, tenantId, key); + ApiResponse response = client.compensate(internalToken, + new OverseasStorageFeeClient.CompensationRequest(tenantId, key)); if (response != null && response.successful()) return; last = unavailable(response); } catch (RuntimeException ex) { last = ex; } diff --git a/iam/src/test/java/com/baiyue/iam/service/OverseasStorageFeeInitializationServiceTest.java b/iam/src/test/java/com/baiyue/iam/service/OverseasStorageFeeInitializationServiceTest.java index ba212535f..acf15019e 100644 --- a/iam/src/test/java/com/baiyue/iam/service/OverseasStorageFeeInitializationServiceTest.java +++ b/iam/src/test/java/com/baiyue/iam/service/OverseasStorageFeeInitializationServiceTest.java @@ -33,10 +33,10 @@ class OverseasStorageFeeInitializationServiceTest { @Test void retriesThreeTimesWithDeterministicKey() { when(client.initialize(anyString(), any())).thenThrow(new RuntimeException("timeout")); - when(client.compensate(anyString(), anyLong(), anyString())).thenReturn(ApiResponse.success(null)); + when(client.compensate(anyString(), any(OverseasStorageFeeClient.CompensationRequest.class))).thenReturn(ApiResponse.success(null)); BizException error = assertThrows(BizException.class, () -> service.initialize(208L, 9L)); assertEquals(ResultCode.SERVICE_UNAVAILABLE, error.getResultCode()); verify(client, times(3)).initialize(anyString(), any(OverseasStorageFeeClient.InitializationRequest.class)); - verify(client).compensate("internal-token", 208L, "iam-customer-create-overseas-fee:208"); + verify(client).compensate("internal-token", new OverseasStorageFeeClient.CompensationRequest(208L, "iam-customer-create-overseas-fee:208")); } }