Nabeel-DG-BS
Raja Nabeel 1 year ago
parent 63ff9d2999
commit 5099172d19

@ -28,6 +28,7 @@ public class CashInTransactionRequest {
private String dmpProdCode; private String dmpProdCode;
private String transType; private String transType;
private String notificationId; private String notificationId;
private String cmpRefcode;
private String transMode; private String transMode;
private double sgtGntramtfc; private double sgtGntramtfc;
private String otdTrancomment; private String otdTrancomment;

@ -15,5 +15,6 @@ public class CashOutTransactionRequest {
private boolean isAccepted; private boolean isAccepted;
private String cmpCustcode; private String cmpCustcode;
private String porOrgacode; private String porOrgacode;
private String cmpRefcode;
} }

@ -1,5 +1,6 @@
package com.mfsys.uco.dto; package com.mfsys.uco.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -16,6 +17,7 @@ public class ChangeTransactionPinRequest {
private String pctCstycode; private String pctCstycode;
private String porOrgacode; private String porOrgacode;
private String cmpCustcode; private String cmpCustcode;
@JsonProperty("isOtpRequired")
private boolean isOtpRequired; private boolean isOtpRequired;
private String pinType; private String pinType;
} }

@ -1,5 +1,6 @@
package com.mfsys.uco.dto; package com.mfsys.uco.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -15,6 +16,7 @@ public class CreateTransactionPinRequest {
private String pctCstycode; private String pctCstycode;
private String porOrgacode; private String porOrgacode;
private String cmpCustcode; private String cmpCustcode;
@JsonProperty("isOtpRequired")
private boolean isOtpRequired; private boolean isOtpRequired;
private String pinType; private String pinType;
} }

@ -1,5 +1,6 @@
package com.mfsys.uco.dto; package com.mfsys.uco.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -10,6 +11,7 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class OTPRequest { public class OTPRequest {
@JsonProperty("isOtpRequired")
private boolean isOtpRequired; private boolean isOtpRequired;
private String email; private String email;
private String phone; private String phone;

@ -1,5 +1,6 @@
package com.mfsys.uco.dto.Transaction; package com.mfsys.uco.dto.Transaction;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -13,5 +14,6 @@ public class TransactionOtpRequestModel {
private String email; private String email;
private String pinType; private String pinType;
private String transPincode; private String transPincode;
@JsonProperty("isOtpRequired")
private boolean isOtpRequired; private boolean isOtpRequired;
} }

@ -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);
}
}

@ -54,6 +54,8 @@ public class TransactionTrail {
protected boolean batAcnttranReceived; protected boolean batAcnttranReceived;
@Column(name = "SGT_RECEIVEGNTRNUMBER", nullable = true, updatable = true, columnDefinition = FieldNameLength.CODE_500) @Column(name = "SGT_RECEIVEGNTRNUMBER", nullable = true, updatable = true, columnDefinition = FieldNameLength.CODE_500)
protected String sgtReceiveGntrnumber; protected String sgtReceiveGntrnumber;
@Column(name = "CMP_REFCODE", nullable = false, updatable = true, columnDefinition = FieldNameLength.CODE_500)
protected String cmpRefcode;
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;

@ -7,6 +7,7 @@ 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;
import com.mfsys.uco.exception.ReferenceNumberNotValidException;
import com.mfsys.uco.exception.SameCrDrAccountExistsException; import com.mfsys.uco.exception.SameCrDrAccountExistsException;
import com.mfsys.uco.model.CustomerProfile; import com.mfsys.uco.model.CustomerProfile;
import com.mfsys.uco.model.CustomerProfileId; import com.mfsys.uco.model.CustomerProfileId;
@ -86,8 +87,10 @@ public class TransactionService {
.build(); .build();
Map<String, Object> response = (Map<String, Object>) webClientDepositService.postTransaction(coreCashInTransaction, UCOURI.BANKING_CASH_IN, transactionRequest.getPorOrgacode()); Map<String, Object> response = (Map<String, Object>) webClientDepositService.postTransaction(coreCashInTransaction, UCOURI.BANKING_CASH_IN, transactionRequest.getPorOrgacode());
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")))); String tranid = extractTranNumber(List.of(transactionId.get("arguments")));
transactionTrail.setSgtSentGntrnumber(tranid);
transactionTrail.setBatAcnttranSend(true); transactionTrail.setBatAcnttranSend(true);
transactionTrail.setCmpRefcode(tranid+transactionRequest.getCmpRefcode());
transactionTrail.setDrMbmBkmsbalance(MapValueExtractorUtil.getValueAsBigDecimal(response, "mbmBkmsbalance")); transactionTrail.setDrMbmBkmsbalance(MapValueExtractorUtil.getValueAsBigDecimal(response, "mbmBkmsbalance"));
transactionTrailRepository.save(transactionTrail); transactionTrailRepository.save(transactionTrail);
return response; return response;
@ -117,6 +120,9 @@ public class TransactionService {
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()) {
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())));; transactionTrail.get().setCrSgtGntramt(BigDecimal.valueOf(convertFromPKR(transactionTrail.get().getCrPcrCurrcode(),Double.valueOf(String.valueOf(transactionTrail.get().getDrSgtGntramt())),transactionTrail.get().getPorOrgacode())));;
CoreCashOutTransaction cashOutTransaction = CoreCashOutTransaction.builder() CoreCashOutTransaction cashOutTransaction = CoreCashOutTransaction.builder()
.crPcrCurrcode(transactionTrail.get().getCrPcrCurrcode()) .crPcrCurrcode(transactionTrail.get().getCrPcrCurrcode())
@ -191,6 +197,7 @@ public class TransactionService {
.targetPerEratrateact(targetPerEratrateact) .targetPerEratrateact(targetPerEratrateact)
.serviceCharges(0.0) .serviceCharges(0.0)
.pcrCurrcode(targetCurrencyCode) .pcrCurrcode(targetCurrencyCode)
.sgtGntramtfc(BigDecimal.valueOf(convertFromPkr).setScale(2, RoundingMode.HALF_UP)) .sgtGntramtfc(BigDecimal.valueOf(convertFromPkr).setScale(2, RoundingMode.HALF_UP))
.build(); .build();
} }

Loading…
Cancel
Save