diff --git a/src/main/java/com/mfsys/uco/service/UcoAccountService.java b/src/main/java/com/mfsys/uco/service/UcoAccountService.java index ee17de1..970a80a 100644 --- a/src/main/java/com/mfsys/uco/service/UcoAccountService.java +++ b/src/main/java/com/mfsys/uco/service/UcoAccountService.java @@ -2,6 +2,8 @@ package com.mfsys.uco.service; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.mfsys.comm.constant.EurekaRegisteredMicroServicesURI; +import com.mfsys.comm.constant.SecurityURI; import com.mfsys.uco.constants.UCOConstants; import com.mfsys.uco.constants.UCOURI; import com.mfsys.uco.dto.AccountInquiryResponse; @@ -16,7 +18,10 @@ import com.mfsys.uco.model.CustomerProfile; import com.mfsys.uco.model.UcoAccount; import com.mfsys.uco.repository.CustomerProfileRepository; import com.mfsys.uco.repository.UCOAccountRepository; +import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.stereotype.Service; +import org.springframework.web.reactive.function.client.WebClient; +import reactor.core.publisher.Mono; import java.time.LocalDate; import java.util.*; @@ -27,12 +32,14 @@ public class UcoAccountService { private final CustomerProfileRepository customerProfileRepository; private final UCOAccountRepository ucoAccountRepository; private final CustomerProfileService customerProfileService; - + @LoadBalanced + private final WebClient webClient; private final WebClientDepositService webClientDeposit; private final WebClientCrmService webClientCrmService; - public UcoAccountService(CustomerProfileRepository customerProfileRepository, UCOAccountRepository ucoAccountRepository, CustomerProfileService customerProfileService, WebClientDepositService webClientDeposit, WebClientCrmService webClientCrmService + public UcoAccountService(WebClient.Builder webClientBuilder,CustomerProfileRepository customerProfileRepository, UCOAccountRepository ucoAccountRepository, CustomerProfileService customerProfileService, WebClientDepositService webClientDeposit, WebClientCrmService webClientCrmService ,ObjectMapper objectMapper) { + this.webClient = webClientBuilder.baseUrl(EurekaRegisteredMicroServicesURI.SECURITY_SERVICE_LB).build(); this.customerProfileRepository = customerProfileRepository; this.ucoAccountRepository = ucoAccountRepository; this.customerProfileService = customerProfileService; @@ -111,6 +118,14 @@ public class UcoAccountService { .sgtLasttrandate(LocalDate.now()) .build(); ucoAccountRepository.save(ucoAccount); + + updateCustomerApplication(Map.of("email",customerProfile.getCmpEmail(),"porOrgacode",porOrgacode)); + } + + private void updateCustomerApplication(Map payload) { + webClient.post().uri(SecurityURI.UPDATE_CUSTOMER_APPLICATION).bodyValue(payload).retrieve() + .onStatus(status -> status.is4xxClientError() || status.is5xxServerError(), clientResponse + -> Mono.error(new RuntimeException("Response has error status."))).bodyToMono(String.class); }