From 5099172d192af2f42d41e11994df968186a0a916 Mon Sep 17 00:00:00 2001 From: Raja Nabeel Date: Thu, 23 May 2024 17:27:26 +0500 Subject: [PATCH] commit --- .../com/mfsys/uco/dto/CashInTransactionRequest.java | 1 + .../com/mfsys/uco/dto/CashOutTransactionRequest.java | 1 + .../mfsys/uco/dto/ChangeTransactionPinRequest.java | 2 ++ .../mfsys/uco/dto/CreateTransactionPinRequest.java | 2 ++ src/main/java/com/mfsys/uco/dto/OTPRequest.java | 2 ++ .../dto/Transaction/TransactionOtpRequestModel.java | 2 ++ .../exception/ReferenceNumberNotValidException.java | 11 +++++++++++ .../java/com/mfsys/uco/model/TransactionTrail.java | 2 ++ .../com/mfsys/uco/service/TransactionService.java | 9 ++++++++- 9 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/mfsys/uco/exception/ReferenceNumberNotValidException.java diff --git a/src/main/java/com/mfsys/uco/dto/CashInTransactionRequest.java b/src/main/java/com/mfsys/uco/dto/CashInTransactionRequest.java index 63c26aa..6cbb5ad 100644 --- a/src/main/java/com/mfsys/uco/dto/CashInTransactionRequest.java +++ b/src/main/java/com/mfsys/uco/dto/CashInTransactionRequest.java @@ -28,6 +28,7 @@ public class CashInTransactionRequest { private String dmpProdCode; private String transType; private String notificationId; + private String cmpRefcode; private String transMode; private double sgtGntramtfc; private String otdTrancomment; diff --git a/src/main/java/com/mfsys/uco/dto/CashOutTransactionRequest.java b/src/main/java/com/mfsys/uco/dto/CashOutTransactionRequest.java index de45e24..10d217f 100644 --- a/src/main/java/com/mfsys/uco/dto/CashOutTransactionRequest.java +++ b/src/main/java/com/mfsys/uco/dto/CashOutTransactionRequest.java @@ -15,5 +15,6 @@ public class CashOutTransactionRequest { private boolean isAccepted; private String cmpCustcode; private String porOrgacode; + private String cmpRefcode; } diff --git a/src/main/java/com/mfsys/uco/dto/ChangeTransactionPinRequest.java b/src/main/java/com/mfsys/uco/dto/ChangeTransactionPinRequest.java index 2e36803..89f3762 100644 --- a/src/main/java/com/mfsys/uco/dto/ChangeTransactionPinRequest.java +++ b/src/main/java/com/mfsys/uco/dto/ChangeTransactionPinRequest.java @@ -1,5 +1,6 @@ package com.mfsys.uco.dto; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -16,6 +17,7 @@ public class ChangeTransactionPinRequest { private String pctCstycode; private String porOrgacode; private String cmpCustcode; + @JsonProperty("isOtpRequired") private boolean isOtpRequired; private String pinType; } \ No newline at end of file diff --git a/src/main/java/com/mfsys/uco/dto/CreateTransactionPinRequest.java b/src/main/java/com/mfsys/uco/dto/CreateTransactionPinRequest.java index c54d95d..50464a3 100644 --- a/src/main/java/com/mfsys/uco/dto/CreateTransactionPinRequest.java +++ b/src/main/java/com/mfsys/uco/dto/CreateTransactionPinRequest.java @@ -1,5 +1,6 @@ package com.mfsys.uco.dto; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -15,6 +16,7 @@ public class CreateTransactionPinRequest { private String pctCstycode; private String porOrgacode; private String cmpCustcode; + @JsonProperty("isOtpRequired") private boolean isOtpRequired; private String pinType; } diff --git a/src/main/java/com/mfsys/uco/dto/OTPRequest.java b/src/main/java/com/mfsys/uco/dto/OTPRequest.java index 5bd06af..149d175 100644 --- a/src/main/java/com/mfsys/uco/dto/OTPRequest.java +++ b/src/main/java/com/mfsys/uco/dto/OTPRequest.java @@ -1,5 +1,6 @@ package com.mfsys.uco.dto; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -10,6 +11,7 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor public class OTPRequest { + @JsonProperty("isOtpRequired") private boolean isOtpRequired; private String email; private String phone; diff --git a/src/main/java/com/mfsys/uco/dto/Transaction/TransactionOtpRequestModel.java b/src/main/java/com/mfsys/uco/dto/Transaction/TransactionOtpRequestModel.java index 8a34113..814e069 100644 --- a/src/main/java/com/mfsys/uco/dto/Transaction/TransactionOtpRequestModel.java +++ b/src/main/java/com/mfsys/uco/dto/Transaction/TransactionOtpRequestModel.java @@ -1,5 +1,6 @@ package com.mfsys.uco.dto.Transaction; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.RequiredArgsConstructor; @@ -13,5 +14,6 @@ public class TransactionOtpRequestModel { private String email; private String pinType; private String transPincode; + @JsonProperty("isOtpRequired") private boolean isOtpRequired; } diff --git a/src/main/java/com/mfsys/uco/exception/ReferenceNumberNotValidException.java b/src/main/java/com/mfsys/uco/exception/ReferenceNumberNotValidException.java new file mode 100644 index 0000000..66c2976 --- /dev/null +++ b/src/main/java/com/mfsys/uco/exception/ReferenceNumberNotValidException.java @@ -0,0 +1,11 @@ +package com.mfsys.uco.exception; + + +import com.mfsys.comm.exception.ApplicationException; +import com.mfsys.comm.exception.ERRCode; + +public class ReferenceNumberNotValidException extends ApplicationException { + public ReferenceNumberNotValidException() { + super(null, ERRCode.TRAN_REF_NOT_VALID, null); + } +} diff --git a/src/main/java/com/mfsys/uco/model/TransactionTrail.java b/src/main/java/com/mfsys/uco/model/TransactionTrail.java index 41045f2..ad18fc9 100644 --- a/src/main/java/com/mfsys/uco/model/TransactionTrail.java +++ b/src/main/java/com/mfsys/uco/model/TransactionTrail.java @@ -54,6 +54,8 @@ public class TransactionTrail { protected boolean batAcnttranReceived; @Column(name = "SGT_RECEIVEGNTRNUMBER", nullable = true, updatable = true, columnDefinition = FieldNameLength.CODE_500) protected String sgtReceiveGntrnumber; + @Column(name = "CMP_REFCODE", nullable = false, updatable = true, columnDefinition = FieldNameLength.CODE_500) + protected String cmpRefcode; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; diff --git a/src/main/java/com/mfsys/uco/service/TransactionService.java b/src/main/java/com/mfsys/uco/service/TransactionService.java index 3f6e09f..03dbbc5 100644 --- a/src/main/java/com/mfsys/uco/service/TransactionService.java +++ b/src/main/java/com/mfsys/uco/service/TransactionService.java @@ -7,6 +7,7 @@ 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.ReferenceNumberNotValidException; import com.mfsys.uco.exception.SameCrDrAccountExistsException; import com.mfsys.uco.model.CustomerProfile; import com.mfsys.uco.model.CustomerProfileId; @@ -86,8 +87,10 @@ public class TransactionService { .build(); Map response = (Map) webClientDepositService.postTransaction(coreCashInTransaction, UCOURI.BANKING_CASH_IN, transactionRequest.getPorOrgacode()); Map transactionId = (Map) response.get("FuncReturnDetail"); - transactionTrail.setSgtSentGntrnumber(extractTranNumber(List.of(transactionId.get("arguments")))); + String tranid = extractTranNumber(List.of(transactionId.get("arguments"))); + transactionTrail.setSgtSentGntrnumber(tranid); transactionTrail.setBatAcnttranSend(true); + transactionTrail.setCmpRefcode(tranid+transactionRequest.getCmpRefcode()); transactionTrail.setDrMbmBkmsbalance(MapValueExtractorUtil.getValueAsBigDecimal(response, "mbmBkmsbalance")); transactionTrailRepository.save(transactionTrail); return response; @@ -117,6 +120,9 @@ public class TransactionService { Map response = new HashMap<>(); Optional transactionTrail = transactionTrailRepository.findById(Math.toIntExact(cashOutTransactionRequest.getId())); if (transactionTrail.isPresent()) { + if(!(transactionTrail.get().getSgtSentGntrnumber()+cashOutTransactionRequest.getCmpRefcode()).equals(transactionTrail.get().getCmpRefcode())){ + throw new ReferenceNumberNotValidException(); + } transactionTrail.get().setCrSgtGntramt(BigDecimal.valueOf(convertFromPKR(transactionTrail.get().getCrPcrCurrcode(),Double.valueOf(String.valueOf(transactionTrail.get().getDrSgtGntramt())),transactionTrail.get().getPorOrgacode())));; CoreCashOutTransaction cashOutTransaction = CoreCashOutTransaction.builder() .crPcrCurrcode(transactionTrail.get().getCrPcrCurrcode()) @@ -191,6 +197,7 @@ public class TransactionService { .targetPerEratrateact(targetPerEratrateact) .serviceCharges(0.0) .pcrCurrcode(targetCurrencyCode) + .sgtGntramtfc(BigDecimal.valueOf(convertFromPkr).setScale(2, RoundingMode.HALF_UP)) .build(); }