fix: fallback customer name for dimension initialization
This commit is contained in:
@@ -41,9 +41,13 @@ public class CustomerDimensionInitializationRelay {
|
|||||||
repository.markCancelled(task, workerId);
|
repository.markCancelled(task, workerId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
String customerName = task.customerName();
|
||||||
|
if (customerName == null || customerName.isBlank()) {
|
||||||
|
customerName = "客户-" + task.tenantId();
|
||||||
|
}
|
||||||
ApiResponse<CustomerDimensionRuleClient.InitializationResponse> response = client.initialize(
|
ApiResponse<CustomerDimensionRuleClient.InitializationResponse> response = client.initialize(
|
||||||
internalToken, new CustomerDimensionRuleClient.InitializationRequest(
|
internalToken, new CustomerDimensionRuleClient.InitializationRequest(
|
||||||
task.tenantId(), task.operatorId(), task.initializationKey(), task.customerName()));
|
task.tenantId(), task.operatorId(), task.initializationKey(), customerName));
|
||||||
requireSuccess(response, true);
|
requireSuccess(response, true);
|
||||||
if (response.data() == null || response.data().configId() == null
|
if (response.data() == null || response.data().configId() == null
|
||||||
|| response.data().chargeRuleId() == null) {
|
|| response.data().chargeRuleId() == null) {
|
||||||
|
|||||||
+17
@@ -70,6 +70,23 @@ class CustomerDimensionInitializationRelayTest {
|
|||||||
anyString(), any(Boolean.class));
|
anyString(), any(Boolean.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void blankCustomerNameUsesDeterministicTenantFallback() {
|
||||||
|
CustomerDimensionInitializationTask task = new CustomerDimensionInitializationTask(
|
||||||
|
10001L, 9001L, " ", "iam-customer-create:10001", "INITIALIZE", "SENDING", 0, 3);
|
||||||
|
when(repository.claim(anyLong(), anyString(), any(LocalDateTime.class))).thenReturn(task);
|
||||||
|
when(client.initialize(anyString(), any())).thenReturn(ApiResponse.success(
|
||||||
|
new CustomerDimensionRuleClient.InitializationResponse(91L, 191L, true)));
|
||||||
|
|
||||||
|
relay.deliver(10001L);
|
||||||
|
|
||||||
|
ArgumentCaptor<CustomerDimensionRuleClient.InitializationRequest> request =
|
||||||
|
ArgumentCaptor.forClass(CustomerDimensionRuleClient.InitializationRequest.class);
|
||||||
|
verify(client).initialize(anyString(), request.capture());
|
||||||
|
assertTrue("客户-10001".equals(request.getValue().customerName()));
|
||||||
|
verify(repository).markReady(task, workerId(), 91L);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void transientFailureStaysPendingWithDiagnosticAndBackoff() {
|
void transientFailureStaysPendingWithDiagnosticAndBackoff() {
|
||||||
CustomerDimensionInitializationTask task = task("INITIALIZE", 0);
|
CustomerDimensionInitializationTask task = task("INITIALIZE", 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user