From e3e727edcfb4db2f75c1c185969b05002858c87d Mon Sep 17 00:00:00 2001 From: Omar Shahbaz Date: Tue, 24 Mar 2026 14:24:22 +0500 Subject: [PATCH] [UCOD][PRE-PROD][17]-submitGLAccontAddMoneyTranasction --- .../mfsys/uco/dto/CoreCashOutTransaction.java | 2 ++ .../dto/GLAccontTranasctionRequestModel.java | 1 + .../uco/dto/TransactionPinResponseModel.java | 6 +++++ .../mfsys/uco/service/TransactionService.java | 27 +++++++++++-------- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/mfsys/uco/dto/CoreCashOutTransaction.java b/src/main/java/com/mfsys/uco/dto/CoreCashOutTransaction.java index 965629d..ef0cbab 100644 --- a/src/main/java/com/mfsys/uco/dto/CoreCashOutTransaction.java +++ b/src/main/java/com/mfsys/uco/dto/CoreCashOutTransaction.java @@ -13,6 +13,8 @@ import java.math.BigDecimal; @NoArgsConstructor public class CoreCashOutTransaction { private String porOrgacode; + private String plcLocacode; + private String dmpProdcode; private String crMbmBkmsnumber; private BigDecimal sgtGntramtfc; private String crPcrCurrcode; diff --git a/src/main/java/com/mfsys/uco/dto/GLAccontTranasctionRequestModel.java b/src/main/java/com/mfsys/uco/dto/GLAccontTranasctionRequestModel.java index f33e4c0..e024adf 100644 --- a/src/main/java/com/mfsys/uco/dto/GLAccontTranasctionRequestModel.java +++ b/src/main/java/com/mfsys/uco/dto/GLAccontTranasctionRequestModel.java @@ -13,6 +13,7 @@ public class GLAccontTranasctionRequestModel { private String porOrgacode; private String pctCstycode; private String channelCode; + private String plcLocacode; private String cmpCustcode; private String drPcaGlaccode; private String drPcaGlacdesc; diff --git a/src/main/java/com/mfsys/uco/dto/TransactionPinResponseModel.java b/src/main/java/com/mfsys/uco/dto/TransactionPinResponseModel.java index ec4eef4..929295d 100644 --- a/src/main/java/com/mfsys/uco/dto/TransactionPinResponseModel.java +++ b/src/main/java/com/mfsys/uco/dto/TransactionPinResponseModel.java @@ -5,10 +5,16 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.time.LocalDateTime; + @Data @Builder @AllArgsConstructor @NoArgsConstructor public class TransactionPinResponseModel { private Long notificationId; + private String obpPincode; + private LocalDateTime pinCreation; + private LocalDateTime pinExpiry; + } diff --git a/src/main/java/com/mfsys/uco/service/TransactionService.java b/src/main/java/com/mfsys/uco/service/TransactionService.java index 59abba1..2074606 100644 --- a/src/main/java/com/mfsys/uco/service/TransactionService.java +++ b/src/main/java/com/mfsys/uco/service/TransactionService.java @@ -6,15 +6,11 @@ import com.mfsys.comm.util.MapValueExtractorUtil; import com.mfsys.uco.UCOURI; import com.mfsys.uco.dto.*; import com.mfsys.uco.dto.Transaction.TransactionOtpRequestModel; -import com.mfsys.uco.exception.InvalidTransactionAmountException; -import com.mfsys.uco.exception.ReferenceNumberNotValidException; -import com.mfsys.uco.exception.SameCrDrAccountExistsException; -import com.mfsys.uco.model.CustomerProfile; -import com.mfsys.uco.model.CustomerProfileId; -import com.mfsys.uco.model.GLAccountMasterTransaction; -import com.mfsys.uco.model.TransactionTrail; +import com.mfsys.uco.exception.*; +import com.mfsys.uco.model.*; import com.mfsys.uco.repository.CustomerProfileRepository; import com.mfsys.uco.repository.GLAccountMasterTransactionTrailRepository; +import com.mfsys.uco.repository.PinRepository; import com.mfsys.uco.repository.TransactionTrailRepository; import lombok.Data; import lombok.RequiredArgsConstructor; @@ -36,15 +32,22 @@ public class TransactionService { private final NotificationService notificationService; private final TransactionPinService transactionPinService; private final TransactionTrailRepository transactionTrailRepository; + private final PinRepository pinRepository; private final UcoAccountService ucoAccountService; private final WebClientDepositService webClientDepositService; private final GLAccountMasterTransactionTrailRepository glAccountMasterTransactionTrailRepository; public TransactionPinResponseModel sendOtpAndValidateTranPin(TransactionOtpRequestModel transactionOtpRequestModel, boolean isResendOtp) { - CustomerProfile customerProfile = verifyOldPinAndGetCmpProfile(transactionOtpRequestModel.getPorOrgacode(), - transactionOtpRequestModel.getTransPincode(), transactionOtpRequestModel.getCmpCustcode(), isResendOtp); - return TransactionPinResponseModel.builder().notificationId(transactionPinService.sendOtp(customerProfile, transactionOtpRequestModel.getChannelCode(), - transactionOtpRequestModel.getPinType(), "Transaction Verification OTP", transactionOtpRequestModel.isOtpRequired())).build(); + CustomerProfile customerProfile = verifyOldPinAndGetCmpProfile(transactionOtpRequestModel.getPorOrgacode(), transactionOtpRequestModel.getTransPincode(), transactionOtpRequestModel.getCmpCustcode(), isResendOtp); + Long notificationId = transactionPinService.sendOtp(customerProfile, transactionOtpRequestModel.getChannelCode(), transactionOtpRequestModel.getPinType(), "Transaction Verification OTP", transactionOtpRequestModel.isOtpRequired()); + Pin pin = pinRepository.findLatestActiveOtpByUserName(transactionOtpRequestModel.getEmail(), transactionOtpRequestModel.getPinType()) + .orElseThrow(()->new TranVerificationPinException()); + return TransactionPinResponseModel.builder() + .notificationId(notificationId) + .obpPincode(pin.getPincode()) + .pinCreation(pin.getPinCreatedate()) + .pinExpiry(pin.getPinExpirydate()) + .build(); } public Map cashInTransaction(CashInTransactionRequest transactionRequest) { @@ -374,6 +377,8 @@ public class TransactionService { .accSgtGntramtfc(BigDecimal.valueOf(glAccontTranasctionRequestModel.getSgtGntramtfc())) .sgtGntramtfc(BigDecimal.valueOf(convertToPKR(glAccontTranasctionRequestModel.getCrPcrCurrcode(),glAccontTranasctionRequestModel.getSgtGntramtfc(),glAccontTranasctionRequestModel.getPorOrgacode()))) .crPcrCurrcode(glAccontTranasctionRequestModel.getCrPcrCurrcode()) + .plcLocacode(glAccontTranasctionRequestModel.getPlcLocacode()) + .dmpProdcode(glAccontTranasctionRequestModel.getDmpProdCode()) .build(); response = (Map) webClientDepositService.postTransaction(cashOutTransaction, UCOURI.BANKING_CASH_OUT, glAccontTranasctionRequestModel.getPorOrgacode()); -- 2.32.0