1. Fetch Exchange Rate

2. List of currencies/products
3. List of GL accounts
4. Signup level product specific account opening.
Nabeel-DG-BS
Raja Nabeel 2 years ago
parent 41e16ec407
commit d8d084b708

@ -14,12 +14,17 @@ public interface UCOURI {
String FETCH_LOGIIN_DATA = "/fetchlogindata"; String FETCH_LOGIIN_DATA = "/fetchlogindata";
String FETCH_EXCHANGE_RATE = "/fetchExchangeRate"; String FETCH_EXCHANGE_RATE = "/fetchExchangeRate";
String GET_DR_TRANSACTION_PIN = "/sendDrTranOtpAndVerifyTranPin"; String GET_DR_TRANSACTION_PIN = "/sendDrTranOtpAndVerifyTranPin";
String RESEND_GET_DR_TRANSACTION_PIN = "/resendDrTranOtp";
String SUBMIT_DR_TRANSACTION = "/submitDrTransaction"; String SUBMIT_DR_TRANSACTION = "/submitDrTransaction";
String SUBMIT_CR_TRANSACTION = "/submitCrTransaction"; String SUBMIT_CR_TRANSACTION = "/submitCrTransaction";
String PENDING_CR_TRANSACTION = "/fetchPendingCredittransaction"; String PENDING_CR_TRANSACTION = "/fetchPendingCredittransaction";
String ACCOUNT_STATEMENT = "/fetchDepositAccountStatement"; String ACCOUNT_STATEMENT = "/fetchDepositAccountStatement";
String BANKING_CASH_IN = "/deposit/transactions/uco/cash-in"; String BANKING_CASH_IN = "/deposit/transactions/uco/cash-in";
String BANKING_CASH_OUT = "/deposit/transactions/uco/cash-out"; String BANKING_CASH_OUT = "/deposit/transactions/uco/cash-out";
String ACCOUNT_ACTIVITY = "/account/activity/organization/{porOrgacode}/customer/{cmpCustcode}/fromdate/{fdate}/todate/{tdate}"; 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";
} }

@ -20,14 +20,14 @@ public class WebClientconfiguration {
@Bean @Bean
public WebClient webClientDeposit() { public WebClient webClientDeposit() {
// return WebClient.create("http://localhost:9095"); return WebClient.create("http://localhost:9095");
return WebClient.create(ciihive); // return WebClient.create(ciihive);
} }
@Bean @Bean
public WebClient webClientCrm() { public WebClient webClientCrm() {
return WebClient.create(ciihive); // return WebClient.create(ciihive);
// return WebClient.create("http://localhost:9096"); return WebClient.create("http://localhost:9096");
} }
} }

@ -20,8 +20,13 @@ public class TransactionController {
private final TransactionService transactionService; private final TransactionService transactionService;
@PostMapping(UCOURI.GET_DR_TRANSACTION_PIN) @PostMapping(UCOURI.GET_DR_TRANSACTION_PIN)
public TransactionPinResponseModel submitTransaction(@RequestBody TransactionOtpRequestModel transactionOtpRequestModel) { public TransactionPinResponseModel getDrTransactionOtp(@RequestBody TransactionOtpRequestModel transactionOtpRequestModel) {
return transactionService.sendOtpAndValidateTranPin(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) @PostMapping(UCOURI.SUBMIT_DR_TRANSACTION)

@ -18,6 +18,7 @@ public class SignupStep3RequestModel {
private String identificationType; private String identificationType;
private String identificationNumber; private String identificationNumber;
private boolean isKycAdded; private boolean isKycAdded;
private String dmpProdcode;
private String kycType; private String kycType;
private String kycDocumentId1; // base64 encoded private String kycDocumentId1; // base64 encoded
private String kycDocumentId2; // base64 encoded private String kycDocumentId2; // base64 encoded

@ -26,6 +26,10 @@ public class TransactionTrail {
protected String crMbmBkmsnumber; protected String crMbmBkmsnumber;
@Column(name = "DMP_PRODCODE", nullable = false, updatable = false, columnDefinition = FieldNameLength.DMP_PRODCODE) @Column(name = "DMP_PRODCODE", nullable = false, updatable = false, columnDefinition = FieldNameLength.DMP_PRODCODE)
protected String dmpProdcode; 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) @Column(name = "DR_MBM_BKMSTITLE", nullable = false, updatable = true, columnDefinition = FieldNameLength.ACCOUNT_TITLE)
protected String drmbmBkmstitle; protected String drmbmBkmstitle;
@Column(name = "CMP_CUSTCODE", nullable = false, updatable = false, columnDefinition = FieldNameLength.CUSTOMER_CODE) @Column(name = "CMP_CUSTCODE", nullable = false, updatable = false, columnDefinition = FieldNameLength.CUSTOMER_CODE)

@ -10,6 +10,7 @@ import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
@Entity(name = "BN_MS_UC_UCOACCOUNT") @Entity(name = "BN_MS_UC_UCOACCOUNT")

@ -15,7 +15,6 @@ public interface TransactionTrailRepository extends JpaRepository<TransactionTra
Optional<List<TransactionTrail>> findByPorOrgacodeAndCrMbmBkmsnumberAndBatAcnttranReceivedFalse(String porOrgacode, String crMbmBkmsnumber); Optional<List<TransactionTrail>> 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 * " + @Query(value = "SELECT * " +
"FROM bn_ms_ua_ucoaccounttrail " + "FROM bn_ms_ua_ucoaccounttrail " +
"WHERE (dr_mbm_bkmsnumber = :mbmBkmsnumber AND (bat_acnttransent = TRUE OR bat_acnttranreceived = TRUE)) " + "WHERE (dr_mbm_bkmsnumber = :mbmBkmsnumber AND (bat_acnttransent = TRUE OR bat_acnttranreceived = TRUE)) " +

@ -1,5 +1,6 @@
package com.mfsys.uco.service; package com.mfsys.uco.service;
import com.mfsys.comm.util.MapValueExtractorUtil;
import com.mfsys.uco.UCOURI; import com.mfsys.uco.UCOURI;
import com.mfsys.uco.dto.*; import com.mfsys.uco.dto.*;
import com.mfsys.uco.dto.Transaction.TransactionOtpRequestModel; import com.mfsys.uco.dto.Transaction.TransactionOtpRequestModel;
@ -28,9 +29,9 @@ public class TransactionService {
private final TransactionTrailRepository transactionTrailRepository; private final TransactionTrailRepository transactionTrailRepository;
private final WebClientDepositService webClientDepositService; private final WebClientDepositService webClientDepositService;
public TransactionPinResponseModel sendOtpAndValidateTranPin(TransactionOtpRequestModel transactionOtpRequestModel) { public TransactionPinResponseModel sendOtpAndValidateTranPin(TransactionOtpRequestModel transactionOtpRequestModel, boolean isResendOtp) {
CustomerProfile customerProfile = verifyOldPinAndGetCmpProfile(transactionOtpRequestModel.getPorOrgacode(), CustomerProfile customerProfile = verifyOldPinAndGetCmpProfile(transactionOtpRequestModel.getPorOrgacode(),
transactionOtpRequestModel.getTransPincode(), transactionOtpRequestModel.getCmpCustcode()); transactionOtpRequestModel.getTransPincode(), transactionOtpRequestModel.getCmpCustcode(),isResendOtp);
return TransactionPinResponseModel.builder().notificationId(transactionPinService.sendOtp(customerProfile, transactionOtpRequestModel.getChannelCode(), return TransactionPinResponseModel.builder().notificationId(transactionPinService.sendOtp(customerProfile, transactionOtpRequestModel.getChannelCode(),
transactionOtpRequestModel.getPinType(), "Transaction Verification OTP", transactionOtpRequestModel.isOtpRequired())).build(); transactionOtpRequestModel.getPinType(), "Transaction Verification OTP", transactionOtpRequestModel.isOtpRequired())).build();
} }
@ -68,6 +69,7 @@ public class TransactionService {
Map<String, Object> transactionId = (Map<String, Object>) response.get("FuncReturnDetail"); Map<String, Object> transactionId = (Map<String, Object>) response.get("FuncReturnDetail");
transactionTrail.setSgtSentGntrnumber(extractTranNumber(List.of(transactionId.get("arguments")))); transactionTrail.setSgtSentGntrnumber(extractTranNumber(List.of(transactionId.get("arguments"))));
transactionTrail.setBatAcnttranSend(true); transactionTrail.setBatAcnttranSend(true);
transactionTrail.setDrMbmBkmsbalance(MapValueExtractorUtil.getValueAsBigDecimal(response, "mbmBkmsbalance"));
transactionTrailRepository.save(transactionTrail); transactionTrailRepository.save(transactionTrail);
return response; return response;
} }
@ -91,7 +93,7 @@ public class TransactionService {
public Map<String, Object> cashOutTransaction(CashOutTransactionRequest cashOutTransactionRequest) { public Map<String, Object> cashOutTransaction(CashOutTransactionRequest cashOutTransactionRequest) {
verifyOldPinAndGetCmpProfile(cashOutTransactionRequest.getPorOrgacode(), verifyOldPinAndGetCmpProfile(cashOutTransactionRequest.getPorOrgacode(),
cashOutTransactionRequest.getCmpTranpin(), cashOutTransactionRequest.getCmpCustcode()); cashOutTransactionRequest.getCmpTranpin(), cashOutTransactionRequest.getCmpCustcode(),true);
Map<String, Object> response = new HashMap<>(); Map<String, Object> response = new HashMap<>();
Optional<TransactionTrail> transactionTrail = transactionTrailRepository.findById(Math.toIntExact(cashOutTransactionRequest.getId())); Optional<TransactionTrail> transactionTrail = transactionTrailRepository.findById(Math.toIntExact(cashOutTransactionRequest.getId()));
if (transactionTrail.isPresent()) { if (transactionTrail.isPresent()) {
@ -107,15 +109,18 @@ public class TransactionService {
Map<String, Object> transactionId = (Map<String, Object>) response.get("FuncReturnDetail"); Map<String, Object> transactionId = (Map<String, Object>) response.get("FuncReturnDetail");
transactionTrail.get().setSgtReceiveGntrnumber(extractTranNumber(List.of(transactionId.get("arguments")))); transactionTrail.get().setSgtReceiveGntrnumber(extractTranNumber(List.of(transactionId.get("arguments"))));
transactionTrail.get().setBatAcnttranReceived(true); transactionTrail.get().setBatAcnttranReceived(true);
transactionTrail.get().setCrMbmBkmsbalance(MapValueExtractorUtil.getValueAsBigDecimal(response, "mbmBkmsbalance"));
transactionTrailRepository.save(transactionTrail.get()); transactionTrailRepository.save(transactionTrail.get());
} }
return response; 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, CustomerProfile customerProfile = transactionPinService.fetchCustomer(porOrgacode,
cmpCustcode); cmpCustcode);
if(isResendOtp) {
transactionPinService.validateOldPin(customerProfile, transPincode); transactionPinService.validateOldPin(customerProfile, transPincode);
}
return customerProfile; return customerProfile;
} }

@ -75,8 +75,10 @@ public class UcoAccountService {
Map cmpCustcodeReturn = (Map) webClientCrmService.onboardCustomer(Map.of("CMP_FULLNAME", signupStep3RequestModel.getName() Map cmpCustcodeReturn = (Map) webClientCrmService.onboardCustomer(Map.of("CMP_FULLNAME", signupStep3RequestModel.getName()
, "PIT_IDENCODE", signupStep3RequestModel.getIdentificationType(), "CIT_IDENVALUE", signupStep3RequestModel.getIdentificationNumber() , "PIT_IDENCODE", signupStep3RequestModel.getIdentificationType(), "CIT_IDENVALUE", signupStep3RequestModel.getIdentificationNumber()
, "PAD_ADRSMOBPHONE", signupStep3RequestModel.getPhone(), "POR_ORGACODE", signupStep3RequestModel.getPorOrgacode(), "SUS_USERCODE", "01", , "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")); String cmpCustcode = String.valueOf(cmpCustcodeReturn.get("cmpCustcode"));
System.out.println(cmpCustcode);
AccountDetail accountDetail = fetchdepositAccountFromCiihive(porOrgacode, cmpCustcode); AccountDetail accountDetail = fetchdepositAccountFromCiihive(porOrgacode, cmpCustcode);
CustomerProfile customerProfile = CustomerProfile.builder().cmpCustcode(accountDetail.getCmpCustcode()).cmpEmail(signupStep3RequestModel.getEmail()) CustomerProfile customerProfile = CustomerProfile.builder().cmpCustcode(accountDetail.getCmpCustcode()).cmpEmail(signupStep3RequestModel.getEmail())
.cmpName(signupStep3RequestModel.getName()).cmpIsKycVerified(signupStep3RequestModel.isKycAdded()) .cmpName(signupStep3RequestModel.getName()).cmpIsKycVerified(signupStep3RequestModel.isKycAdded())

Loading…
Cancel
Save