From c512fedf607e8bb0fa9416e9cdb2471b7c82a608 Mon Sep 17 00:00:00 2001 From: Raja Nabeel Date: Mon, 22 Apr 2024 15:54:46 +0500 Subject: [PATCH] commit demo --- src/main/java/com/mfsys/uco/UCOURI.java | 1 + .../mfsys/uco/controller/TransactionController.java | 7 +++++++ .../java/com/mfsys/uco/model/TransactionTrail.java | 2 +- .../uco/repository/TransactionTrailRepository.java | 9 +++++++++ .../com/mfsys/uco/service/TransactionPinService.java | 2 +- .../com/mfsys/uco/service/TransactionService.java | 11 +++++------ .../java/com/mfsys/uco/service/UcoAccountService.java | 1 + 7 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/mfsys/uco/UCOURI.java b/src/main/java/com/mfsys/uco/UCOURI.java index cc7712d..f2332f3 100644 --- a/src/main/java/com/mfsys/uco/UCOURI.java +++ b/src/main/java/com/mfsys/uco/UCOURI.java @@ -16,6 +16,7 @@ public interface UCOURI { 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"; } diff --git a/src/main/java/com/mfsys/uco/controller/TransactionController.java b/src/main/java/com/mfsys/uco/controller/TransactionController.java index 6ceaa57..7653476 100644 --- a/src/main/java/com/mfsys/uco/controller/TransactionController.java +++ b/src/main/java/com/mfsys/uco/controller/TransactionController.java @@ -43,5 +43,12 @@ public class TransactionController { @RequestParam String mbmBkmsnumber) { return transactionService.fetchPendingCrTransactions(porOrgacode, mbmBkmsnumber); } + + @GetMapping(UCOURI.ACCOUNT_STATEMENT) + public List getAccountStatement( + @RequestParam String porOrgacode, + @RequestParam String mbmBkmsnumber) { + return transactionService.fetchDepositAccountStatement(porOrgacode, mbmBkmsnumber); + } } diff --git a/src/main/java/com/mfsys/uco/model/TransactionTrail.java b/src/main/java/com/mfsys/uco/model/TransactionTrail.java index fdd656b..fee28a6 100644 --- a/src/main/java/com/mfsys/uco/model/TransactionTrail.java +++ b/src/main/java/com/mfsys/uco/model/TransactionTrail.java @@ -73,7 +73,7 @@ public class TransactionTrail { @Column(name = "BAT_ACNTTRANRECEIVED", nullable = true, columnDefinition = FieldNameLength.BOOLEAN_BIT) protected boolean batAcnttranReceived; - @Column(name = "SGT_RECEIVEGNTRNUMBER", nullable = true, updatable = false, columnDefinition = FieldNameLength.CODE_500) + @Column(name = "SGT_RECEIVEGNTRNUMBER", nullable = true, updatable = true, columnDefinition = FieldNameLength.CODE_500) protected String sgtReceiveGntrnumber; } diff --git a/src/main/java/com/mfsys/uco/repository/TransactionTrailRepository.java b/src/main/java/com/mfsys/uco/repository/TransactionTrailRepository.java index f91aa3f..4fc48e4 100644 --- a/src/main/java/com/mfsys/uco/repository/TransactionTrailRepository.java +++ b/src/main/java/com/mfsys/uco/repository/TransactionTrailRepository.java @@ -13,4 +13,13 @@ 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)) " + + " OR (cr_mbm_bkmsnumber = :mbmBkmsnumber AND (bat_acnttransent = TRUE AND bat_acnttranreceived = TRUE))",nativeQuery = true) + Optional> fetchDepositAccountStatement(String mbmBkmsnumber); + } diff --git a/src/main/java/com/mfsys/uco/service/TransactionPinService.java b/src/main/java/com/mfsys/uco/service/TransactionPinService.java index 7e7f027..fcf0fec 100644 --- a/src/main/java/com/mfsys/uco/service/TransactionPinService.java +++ b/src/main/java/com/mfsys/uco/service/TransactionPinService.java @@ -57,7 +57,7 @@ public class TransactionPinService { } public void validateOldPin(CustomerProfile profile, String oldPin) { - if (!profile.getCmpTranpin().equals(oldPin)) { + if (Objects.nonNull(profile.getCmpTranpin()) && !profile.getCmpTranpin().equals(oldPin)) { throw new OldPinIncorrectException(); } } diff --git a/src/main/java/com/mfsys/uco/service/TransactionService.java b/src/main/java/com/mfsys/uco/service/TransactionService.java index dd1da28..9513e80 100644 --- a/src/main/java/com/mfsys/uco/service/TransactionService.java +++ b/src/main/java/com/mfsys/uco/service/TransactionService.java @@ -58,7 +58,6 @@ public class TransactionService { .sgtReceiveGntrnumber(null) .build(); - CoreCashInTransaction coreCashInTransaction = CoreCashInTransaction.builder() .drMbmBkmsnumber(transactionRequest.getDrMbmBkmsnumber()) .drPcrCurrcode("123") @@ -67,14 +66,11 @@ public class TransactionService { .porOrgacode(transactionRequest.getPorOrgacode()) .build(); Map response = (Map)webClientDepositService.postTransaction(coreCashInTransaction, UCOURI.BANKING_CASH_IN,transactionRequest.getPorOrgacode()); - if(response.containsKey("mbmBkmsBalance")){ Map transactionId = (Map) response.get("FuncReturnDetail"); transactionTrail.setSgtSentGntrnumber(extractTranNumber(List.of(transactionId.get("arguments")))); transactionTrail.setBatAcnttranSend(true); transactionTrailRepository.save(transactionTrail); return response; - } - return response; } private void validation(CashInTransactionRequest transactionRequest) { @@ -89,6 +85,11 @@ public class TransactionService { return optionalTransactions.orElseGet(Collections::emptyList); } + public List fetchDepositAccountStatement(String porOrgacode, String mbmBkmsnumber) { + Optional> optionalTransactions = transactionTrailRepository.fetchDepositAccountStatement( mbmBkmsnumber); + return optionalTransactions.orElseGet(Collections::emptyList); + } + public Map cashOutTransaction(CashOutTransactionRequest cashOutTransactionRequest) { verifyOldPinAndGetCmpProfile(cashOutTransactionRequest.getPorOrgacode(), cashOutTransactionRequest.getCmpTranpin(),cashOutTransactionRequest.getCmpCustcode()); @@ -104,12 +105,10 @@ public class TransactionService { .build(); response = (Map) webClientDepositService.postTransaction(cashOutTransaction, UCOURI.BANKING_CASH_OUT, transactionTrail.get().getPorOrgacode()); - if(response.containsKey("mbmBkmsBalance")) { Map transactionId = (Map) response.get("FuncReturnDetail"); transactionTrail.get().setSgtReceiveGntrnumber(extractTranNumber(List.of(transactionId.get("arguments")))); transactionTrail.get().setBatAcnttranReceived(true); transactionTrailRepository.save(transactionTrail.get()); - } } return response; } diff --git a/src/main/java/com/mfsys/uco/service/UcoAccountService.java b/src/main/java/com/mfsys/uco/service/UcoAccountService.java index 482213c..bcae682 100644 --- a/src/main/java/com/mfsys/uco/service/UcoAccountService.java +++ b/src/main/java/com/mfsys/uco/service/UcoAccountService.java @@ -98,6 +98,7 @@ public class UcoAccountService { String url= UCOURI.GET_CMP_UCOACCOUNTS+"?porOrgacode="+porOrgacode+"&cmpCustcode="+cmpCustcode; List map = (List) webClientDeposit.getCmpUcoAccounts(url,porOrgacode); ObjectMapper objectMapper = new ObjectMapper(); + return objectMapper.convertValue(map.get(0), AccountDetail.class); }