diff --git a/src/main/java/com/mfsys/uco/UCOURI.java b/src/main/java/com/mfsys/uco/UCOURI.java index 9d265aa..e5c3334 100644 --- a/src/main/java/com/mfsys/uco/UCOURI.java +++ b/src/main/java/com/mfsys/uco/UCOURI.java @@ -14,12 +14,17 @@ public interface UCOURI { String FETCH_LOGIIN_DATA = "/fetchlogindata"; String FETCH_EXCHANGE_RATE = "/fetchExchangeRate"; String GET_DR_TRANSACTION_PIN = "/sendDrTranOtpAndVerifyTranPin"; + String RESEND_GET_DR_TRANSACTION_PIN = "/resendDrTranOtp"; String SUBMIT_DR_TRANSACTION = "/submitDrTransaction"; String SUBMIT_CR_TRANSACTION = "/submitCrTransaction"; String PENDING_CR_TRANSACTION = "/fetchPendingCredittransaction"; String ACCOUNT_STATEMENT = "/fetchDepositAccountStatement"; String BANKING_CASH_IN = "/deposit/transactions/uco/cash-in"; String BANKING_CASH_OUT = "/deposit/transactions/uco/cash-out"; - String ACCOUNT_ACTIVITY = "/account/activity/organization/{porOrgacode}/customer/{cmpCustcode}/fromdate/{fdate}/todate/{tdate}"; + + // product related uri + String FETCH_UCO_DEPOSIT_PRODUCTS = "/deposit/fetchUcoDepositProducts"; + String FETCH_UCO_GLS = "/deposit/fetchUcoGls"; + } diff --git a/src/main/java/com/mfsys/uco/config/WebClientconfiguration.java b/src/main/java/com/mfsys/uco/config/WebClientconfiguration.java index 2a5c67d..4afb11f 100644 --- a/src/main/java/com/mfsys/uco/config/WebClientconfiguration.java +++ b/src/main/java/com/mfsys/uco/config/WebClientconfiguration.java @@ -20,14 +20,14 @@ public class WebClientconfiguration { @Bean public WebClient webClientDeposit() { -// return WebClient.create("http://localhost:9095"); - return WebClient.create(ciihive); + return WebClient.create("http://localhost:9095"); +// return WebClient.create(ciihive); } @Bean public WebClient webClientCrm() { - return WebClient.create(ciihive); -// return WebClient.create("http://localhost:9096"); +// return WebClient.create(ciihive); + return WebClient.create("http://localhost:9096"); } } diff --git a/src/main/java/com/mfsys/uco/controller/TransactionController.java b/src/main/java/com/mfsys/uco/controller/TransactionController.java index a2d4410..cbcdfc8 100644 --- a/src/main/java/com/mfsys/uco/controller/TransactionController.java +++ b/src/main/java/com/mfsys/uco/controller/TransactionController.java @@ -20,8 +20,13 @@ public class TransactionController { private final TransactionService transactionService; @PostMapping(UCOURI.GET_DR_TRANSACTION_PIN) - public TransactionPinResponseModel submitTransaction(@RequestBody TransactionOtpRequestModel transactionOtpRequestModel) { - return transactionService.sendOtpAndValidateTranPin(transactionOtpRequestModel); + public TransactionPinResponseModel getDrTransactionOtp(@RequestBody TransactionOtpRequestModel transactionOtpRequestModel) { + return transactionService.sendOtpAndValidateTranPin(transactionOtpRequestModel,false); + } + + @PostMapping(UCOURI.RESEND_GET_DR_TRANSACTION_PIN) + public TransactionPinResponseModel resendDrTransactionOtp(@RequestBody TransactionOtpRequestModel transactionOtpRequestModel) { + return transactionService.sendOtpAndValidateTranPin(transactionOtpRequestModel,true); } @PostMapping(UCOURI.SUBMIT_DR_TRANSACTION) diff --git a/src/main/java/com/mfsys/uco/dto/SignupStep3RequestModel.java b/src/main/java/com/mfsys/uco/dto/SignupStep3RequestModel.java index cc81e51..6252901 100644 --- a/src/main/java/com/mfsys/uco/dto/SignupStep3RequestModel.java +++ b/src/main/java/com/mfsys/uco/dto/SignupStep3RequestModel.java @@ -18,6 +18,7 @@ public class SignupStep3RequestModel { private String identificationType; private String identificationNumber; private boolean isKycAdded; + private String dmpProdcode; private String kycType; private String kycDocumentId1; // base64 encoded private String kycDocumentId2; // base64 encoded diff --git a/src/main/java/com/mfsys/uco/model/TransactionTrail.java b/src/main/java/com/mfsys/uco/model/TransactionTrail.java index 930a7b6..4992ab4 100644 --- a/src/main/java/com/mfsys/uco/model/TransactionTrail.java +++ b/src/main/java/com/mfsys/uco/model/TransactionTrail.java @@ -26,6 +26,10 @@ public class TransactionTrail { protected String crMbmBkmsnumber; @Column(name = "DMP_PRODCODE", nullable = false, updatable = false, columnDefinition = FieldNameLength.DMP_PRODCODE) protected String dmpProdcode; + @Column(name = "CR_MBM_BKMSBALANCE", nullable = true, columnDefinition = FieldNameLength.AMOUNT_REAL) + protected BigDecimal crMbmBkmsbalance = BigDecimal.ZERO; + @Column(name = "DR_MBM_BKMSBALANCE", nullable = true, columnDefinition = FieldNameLength.AMOUNT_REAL) + protected BigDecimal drMbmBkmsbalance = BigDecimal.ZERO; @Column(name = "DR_MBM_BKMSTITLE", nullable = false, updatable = true, columnDefinition = FieldNameLength.ACCOUNT_TITLE) protected String drmbmBkmstitle; @Column(name = "CMP_CUSTCODE", nullable = false, updatable = false, columnDefinition = FieldNameLength.CUSTOMER_CODE) diff --git a/src/main/java/com/mfsys/uco/model/UcoAccount.java b/src/main/java/com/mfsys/uco/model/UcoAccount.java index c016c7b..11c3972 100644 --- a/src/main/java/com/mfsys/uco/model/UcoAccount.java +++ b/src/main/java/com/mfsys/uco/model/UcoAccount.java @@ -10,6 +10,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.math.BigDecimal; import java.time.LocalDate; @Entity(name = "BN_MS_UC_UCOACCOUNT") diff --git a/src/main/java/com/mfsys/uco/repository/TransactionTrailRepository.java b/src/main/java/com/mfsys/uco/repository/TransactionTrailRepository.java index 689c9b5..aadb1d5 100644 --- a/src/main/java/com/mfsys/uco/repository/TransactionTrailRepository.java +++ b/src/main/java/com/mfsys/uco/repository/TransactionTrailRepository.java @@ -15,7 +15,6 @@ public interface TransactionTrailRepository extends JpaRepository> findByPorOrgacodeAndCrMbmBkmsnumberAndBatAcnttranReceivedFalse(String porOrgacode, String crMbmBkmsnumber); - // @Query("SELECT t FROM BN_MS_UA_UCOACCOUNTTRAIL t WHERE t.porOrgacode =:porOrgacode and t.drMbmBkmsnumber = :mbmBkmsnumber or(t.crMbmBkmsnumber = :mbmBkmsnumber and t.batAcnttranReceived = false)") @Query(value = "SELECT * " + "FROM bn_ms_ua_ucoaccounttrail " + "WHERE (dr_mbm_bkmsnumber = :mbmBkmsnumber AND (bat_acnttransent = TRUE OR bat_acnttranreceived = TRUE)) " + diff --git a/src/main/java/com/mfsys/uco/service/TransactionService.java b/src/main/java/com/mfsys/uco/service/TransactionService.java index f55d993..b1ff4e4 100644 --- a/src/main/java/com/mfsys/uco/service/TransactionService.java +++ b/src/main/java/com/mfsys/uco/service/TransactionService.java @@ -1,5 +1,6 @@ package com.mfsys.uco.service; +import com.mfsys.comm.util.MapValueExtractorUtil; import com.mfsys.uco.UCOURI; import com.mfsys.uco.dto.*; import com.mfsys.uco.dto.Transaction.TransactionOtpRequestModel; @@ -28,9 +29,9 @@ public class TransactionService { private final TransactionTrailRepository transactionTrailRepository; private final WebClientDepositService webClientDepositService; - public TransactionPinResponseModel sendOtpAndValidateTranPin(TransactionOtpRequestModel transactionOtpRequestModel) { + public TransactionPinResponseModel sendOtpAndValidateTranPin(TransactionOtpRequestModel transactionOtpRequestModel, boolean isResendOtp) { CustomerProfile customerProfile = verifyOldPinAndGetCmpProfile(transactionOtpRequestModel.getPorOrgacode(), - transactionOtpRequestModel.getTransPincode(), transactionOtpRequestModel.getCmpCustcode()); + transactionOtpRequestModel.getTransPincode(), transactionOtpRequestModel.getCmpCustcode(),isResendOtp); return TransactionPinResponseModel.builder().notificationId(transactionPinService.sendOtp(customerProfile, transactionOtpRequestModel.getChannelCode(), transactionOtpRequestModel.getPinType(), "Transaction Verification OTP", transactionOtpRequestModel.isOtpRequired())).build(); } @@ -68,6 +69,7 @@ public class TransactionService { Map transactionId = (Map) response.get("FuncReturnDetail"); transactionTrail.setSgtSentGntrnumber(extractTranNumber(List.of(transactionId.get("arguments")))); transactionTrail.setBatAcnttranSend(true); + transactionTrail.setDrMbmBkmsbalance(MapValueExtractorUtil.getValueAsBigDecimal(response, "mbmBkmsbalance")); transactionTrailRepository.save(transactionTrail); return response; } @@ -91,7 +93,7 @@ public class TransactionService { public Map cashOutTransaction(CashOutTransactionRequest cashOutTransactionRequest) { verifyOldPinAndGetCmpProfile(cashOutTransactionRequest.getPorOrgacode(), - cashOutTransactionRequest.getCmpTranpin(), cashOutTransactionRequest.getCmpCustcode()); + cashOutTransactionRequest.getCmpTranpin(), cashOutTransactionRequest.getCmpCustcode(),true); Map response = new HashMap<>(); Optional transactionTrail = transactionTrailRepository.findById(Math.toIntExact(cashOutTransactionRequest.getId())); if (transactionTrail.isPresent()) { @@ -107,15 +109,18 @@ public class TransactionService { Map transactionId = (Map) response.get("FuncReturnDetail"); transactionTrail.get().setSgtReceiveGntrnumber(extractTranNumber(List.of(transactionId.get("arguments")))); transactionTrail.get().setBatAcnttranReceived(true); + transactionTrail.get().setCrMbmBkmsbalance(MapValueExtractorUtil.getValueAsBigDecimal(response, "mbmBkmsbalance")); transactionTrailRepository.save(transactionTrail.get()); } return response; } - private CustomerProfile verifyOldPinAndGetCmpProfile(String porOrgacode, String transPincode, String cmpCustcode) { + private CustomerProfile verifyOldPinAndGetCmpProfile(String porOrgacode, String transPincode, String cmpCustcode, boolean isResendOtp) { CustomerProfile customerProfile = transactionPinService.fetchCustomer(porOrgacode, cmpCustcode); - transactionPinService.validateOldPin(customerProfile, transPincode); + if(isResendOtp) { + transactionPinService.validateOldPin(customerProfile, transPincode); + } return customerProfile; } diff --git a/src/main/java/com/mfsys/uco/service/UcoAccountService.java b/src/main/java/com/mfsys/uco/service/UcoAccountService.java index 2e46e4c..cafe96c 100644 --- a/src/main/java/com/mfsys/uco/service/UcoAccountService.java +++ b/src/main/java/com/mfsys/uco/service/UcoAccountService.java @@ -75,8 +75,10 @@ public class UcoAccountService { Map cmpCustcodeReturn = (Map) webClientCrmService.onboardCustomer(Map.of("CMP_FULLNAME", signupStep3RequestModel.getName() , "PIT_IDENCODE", signupStep3RequestModel.getIdentificationType(), "CIT_IDENVALUE", signupStep3RequestModel.getIdentificationNumber() , "PAD_ADRSMOBPHONE", signupStep3RequestModel.getPhone(), "POR_ORGACODE", signupStep3RequestModel.getPorOrgacode(), "SUS_USERCODE", "01", - "PLC_LOCACODE", "2003"), UCOURI.CUSTOMER_ONBOARDING, signupStep3RequestModel.getPorOrgacode()); + "PLC_LOCACODE", "2003","DMP_PRODCODE",signupStep3RequestModel.getDmpProdcode()), UCOURI.CUSTOMER_ONBOARDING, signupStep3RequestModel.getPorOrgacode()); String cmpCustcode = String.valueOf(cmpCustcodeReturn.get("cmpCustcode")); + System.out.println(cmpCustcode); + AccountDetail accountDetail = fetchdepositAccountFromCiihive(porOrgacode, cmpCustcode); CustomerProfile customerProfile = CustomerProfile.builder().cmpCustcode(accountDetail.getCmpCustcode()).cmpEmail(signupStep3RequestModel.getEmail()) .cmpName(signupStep3RequestModel.getName()).cmpIsKycVerified(signupStep3RequestModel.isKycAdded())