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

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

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

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

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

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

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

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

@ -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<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");
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<String, Object> response = new HashMap<>();
Optional<TransactionTrail> 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();
}

Loading…
Cancel
Save