优化
This commit is contained in:
@@ -21,7 +21,7 @@ public interface OverseasStorageFeeClient {
|
||||
ApiResponse<Void> compensate(@RequestHeader("X-Internal-Service-Token") String token,
|
||||
@RequestBody CompensationRequest request);
|
||||
|
||||
record InitializationRequest(long tenantId, long operatorId, String initializationKey) { }
|
||||
record InitializationRequest(long tenantId, long operatorId, String initializationKey, String customerName) { }
|
||||
record InitializationResponse(Long configId, boolean createdByThisInitialization) { }
|
||||
record CompensationRequest(long tenantId, String initializationKey) { }
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ public class MerchantOnboardingService {
|
||||
addressMapper.insert(address);
|
||||
}
|
||||
dimensionRuleInitialization.initialize(tenantId, request.authUserId());
|
||||
overseasStorageFeeInitialization.initialize(tenantId, request.authUserId());
|
||||
overseasStorageFeeInitialization.initialize(tenantId, request.authUserId(), tenant.getTenantName());
|
||||
return new MerchantRegistrationResponse(tenantId, membershipId, tenant.getStatus());
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -22,13 +22,13 @@ public class OverseasStorageFeeInitializationService {
|
||||
@Resource private OverseasStorageFeeClient client;
|
||||
@Value("${baiyue.security.internal-service-token}") private String internalToken;
|
||||
|
||||
public InitializationResult initialize(long tenantId, long operatorId) {
|
||||
public InitializationResult initialize(long tenantId, long operatorId, String customerName) {
|
||||
String key = initializationKey(tenantId);
|
||||
RuntimeException last = null;
|
||||
for (int attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {
|
||||
try {
|
||||
ApiResponse<OverseasStorageFeeClient.InitializationResponse> response = client.initialize(
|
||||
internalToken, new OverseasStorageFeeClient.InitializationRequest(tenantId, operatorId, key));
|
||||
internalToken, new OverseasStorageFeeClient.InitializationRequest(tenantId, operatorId, key, customerName));
|
||||
if (response != null && response.successful() && response.data() != null) {
|
||||
InitializationResult result = new InitializationResult(
|
||||
response.data().createdByThisInitialization(), key);
|
||||
|
||||
@@ -182,7 +182,7 @@ public class TenantService {
|
||||
tenant.setUpdatedBy(operatorId);
|
||||
repository.insertTenant(tenant);
|
||||
dimensionRuleInitialization.initialize(tenant.getId(), operatorId);
|
||||
overseasStorageFeeInitialization.initialize(tenant.getId(), operatorId);
|
||||
overseasStorageFeeInitialization.initialize(tenant.getId(), operatorId, tenant.getTenantName());
|
||||
var administrator = administratorProvisioning.provisionPlatformCreatedTenant(tenant, operatorId);
|
||||
|
||||
return new CreationResponse(response(tenant), administrator.username(), administrator.temporaryPassword());
|
||||
|
||||
@@ -66,7 +66,7 @@ class MerchantOnboardingServiceTest {
|
||||
verify(memberships).insert(membership.capture());
|
||||
verify(membershipRoles).insert(roleGrant.capture());
|
||||
verify(dimensionRuleInitialization).initialize(result.tenantId(), 9001L);
|
||||
verify(overseasStorageFeeInitialization).initialize(result.tenantId(), 9001L);
|
||||
verify(overseasStorageFeeInitialization).initialize(result.tenantId(), 9001L, "测试企业");
|
||||
|
||||
assertEquals("PROFILE_REQUIRED", result.tenantStatus());
|
||||
assertEquals(result.tenantId(), tenant.getValue().getId());
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ class OverseasStorageFeeInitializationServiceTest {
|
||||
@Test void retriesThreeTimesWithDeterministicKey() {
|
||||
when(client.initialize(anyString(), any())).thenThrow(new RuntimeException("timeout"));
|
||||
when(client.compensate(anyString(), any(OverseasStorageFeeClient.CompensationRequest.class))).thenReturn(ApiResponse.success(null));
|
||||
BizException error = assertThrows(BizException.class, () -> service.initialize(208L, 9L));
|
||||
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", new OverseasStorageFeeClient.CompensationRequest(208L, "iam-customer-create-overseas-fee:208"));
|
||||
|
||||
Reference in New Issue
Block a user