diff --git a/src/main/java/com/billpaymentservice/bbps/dto/auth/LoginRequest.java b/src/main/java/com/billpaymentservice/bbps/dto/auth/LoginRequest.java index a99576b..b10e30c 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/auth/LoginRequest.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/auth/LoginRequest.java @@ -8,10 +8,11 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -@Getter -@Setter + @AllArgsConstructor @NoArgsConstructor +@Getter +@Setter public class LoginRequest { @NotNull(message = "Mobile number cannot be null.") diff --git a/src/main/java/com/billpaymentservice/bbps/dto/auth/VerifyOtpRequest.java b/src/main/java/com/billpaymentservice/bbps/dto/auth/VerifyOtpRequest.java index e65d335..6994b2e 100644 --- a/src/main/java/com/billpaymentservice/bbps/dto/auth/VerifyOtpRequest.java +++ b/src/main/java/com/billpaymentservice/bbps/dto/auth/VerifyOtpRequest.java @@ -24,5 +24,5 @@ public class VerifyOtpRequest { @Pattern(regexp = "^[0-9]{6}$", message = "OTP must contain only 6 digits.") private String otp; - + } diff --git a/src/main/java/com/billpaymentservice/bbps/dto/response/PaymentStartWithTransactionDto.java b/src/main/java/com/billpaymentservice/bbps/dto/response/PaymentStartWithTransactionDto.java new file mode 100644 index 0000000..ec3b97c --- /dev/null +++ b/src/main/java/com/billpaymentservice/bbps/dto/response/PaymentStartWithTransactionDto.java @@ -0,0 +1,17 @@ +package com.billpaymentservice.bbps.dto.response; + +import com.billpaymentservice.bbps.entites.PaymentStartRecord; +import com.billpaymentservice.bbps.entites.TransactionMaster; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class PaymentStartWithTransactionDto { + private PaymentStartRecord paymentStartRecord; + private TransactionMaster transactionMaster; +} diff --git a/src/main/java/com/billpaymentservice/bbps/entites/Auditable.java b/src/main/java/com/billpaymentservice/bbps/entites/Auditable.java index 3ab0c03..7ecb803 100644 --- a/src/main/java/com/billpaymentservice/bbps/entites/Auditable.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/Auditable.java @@ -1,7 +1,6 @@ package com.billpaymentservice.bbps.entites; import java.io.Serializable; -import java.time.LocalDateTime; import java.util.Date; import jakarta.persistence.Column; @@ -11,33 +10,34 @@ import lombok.Getter; import lombok.Setter; /** - * Base mapped superclass for audit fields. All JPA entities should extend this to - * get automatic population of createdAt/updatedAt/isDeleted via AuditListener. + * Base mapped superclass for audit fields. All JPA entities should extend this + * to get automatic population of createdAt/updatedAt/isDeleted via + * AuditListener. */ @MappedSuperclass @EntityListeners(AuditListener.class) @Getter @Setter public abstract class Auditable implements Serializable { - @Column(name = "create_date_time") - private Date createDateTime; + @Column(name = "create_date_time") + private Date createDateTime; - @Column(name = "updated_date_time") - private Date updatedDateTime; + @Column(name = "updated_date_time") + private Date updatedDateTime; - @Column(name = "create_by") - private String createdBy; + @Column(name = "create_by") + private String createdBy; - @Column(name = "updated_by") - private String updatedBy; + @Column(name = "updated_by") + private String updatedBy; - @Column(name = "created_epoch_date") - private Long createdEpochDate; + @Column(name = "created_epoch_date") + private Long createdEpochDate; - @Column(name = "modified_epoch_date") - private Long modifiedEpochDate; + @Column(name = "modified_epoch_date") + private Long modifiedEpochDate; + + @Column(name = "is_deleted") + private Boolean isDeleted = Boolean.FALSE; - @Column(name = "is_deleted") - private Boolean isDeleted = Boolean.FALSE; - } \ No newline at end of file diff --git a/src/main/java/com/billpaymentservice/bbps/entites/BillMaster.java b/src/main/java/com/billpaymentservice/bbps/entites/BillMaster.java index 2f98af2..d39fd82 100644 --- a/src/main/java/com/billpaymentservice/bbps/entites/BillMaster.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/BillMaster.java @@ -52,6 +52,4 @@ public class BillMaster extends Auditable { private List additionalInfo; @OneToMany(mappedBy = "billMaster", cascade = CascadeType.ALL) private List customerParams; - - // getters and setters } \ No newline at end of file diff --git a/src/main/java/com/billpaymentservice/bbps/entites/ComplaintResponseEntity.java b/src/main/java/com/billpaymentservice/bbps/entites/ComplaintResponseEntity.java index 88bdb17..a4b128a 100644 --- a/src/main/java/com/billpaymentservice/bbps/entites/ComplaintResponseEntity.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/ComplaintResponseEntity.java @@ -77,6 +77,9 @@ public class ComplaintResponseEntity extends Auditable { @Column(name = "user_id") private String userId; + @Column(name = "mid") + private String mid; + @OneToMany(fetch = FetchType.LAZY) @JoinColumn(name = "ticket_id", referencedColumnName = "ticket_id", insertable = false, updatable = false) private Set complaintStatusList = new HashSet<>(); diff --git a/src/main/java/com/billpaymentservice/bbps/entites/PaymentStartRecord.java b/src/main/java/com/billpaymentservice/bbps/entites/PaymentStartRecord.java index 75f5d25..2859484 100644 --- a/src/main/java/com/billpaymentservice/bbps/entites/PaymentStartRecord.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/PaymentStartRecord.java @@ -30,7 +30,7 @@ public class PaymentStartRecord extends Auditable { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @Column(name = "request_id", unique = true, nullable = false) + @Column(name = "request_id", unique = true, nullable = false) private String requestId; @Column(name = "client_mid", nullable = false) private String clientMid; @@ -47,9 +47,12 @@ public class PaymentStartRecord extends Auditable { @Column(name = "amount", nullable = false) private String amount; - @Column(name = "txn_id") + @Column(name = "txn_id",unique = true) private String txnId; + @Column(name = "qr_string", columnDefinition = "TEXT") + private String qrString; + @Column(name = "callback_status") private String callbackStatus; diff --git a/src/main/java/com/billpaymentservice/bbps/entites/TransactionMaster.java b/src/main/java/com/billpaymentservice/bbps/entites/TransactionMaster.java index afa6fa7..8fe66de 100644 --- a/src/main/java/com/billpaymentservice/bbps/entites/TransactionMaster.java +++ b/src/main/java/com/billpaymentservice/bbps/entites/TransactionMaster.java @@ -39,7 +39,7 @@ public class TransactionMaster extends Auditable { @Column(name = "bank_txn_id",unique = true) private String bankTxnId; - @Column(name = "txn_id") + @Column(name = "txn_id",unique = true) private String txnId; @Column(name = "initiator_txn_id") diff --git a/src/main/java/com/billpaymentservice/bbps/serviceImpl/ComplainServiceImpl.java b/src/main/java/com/billpaymentservice/bbps/serviceImpl/ComplainServiceImpl.java index 758af80..33fe299 100644 --- a/src/main/java/com/billpaymentservice/bbps/serviceImpl/ComplainServiceImpl.java +++ b/src/main/java/com/billpaymentservice/bbps/serviceImpl/ComplainServiceImpl.java @@ -197,7 +197,7 @@ public class ComplainServiceImpl implements ComplainService { ComplaintResponse responseWrapper = objectMapper.convertValue(dataMap, ComplaintResponse.class); String saveComplaintResponseEntity = mapperHelper.saveComplaintResponseEntity(responseWrapper, requestId, - txnId, userId, requestTxnId); + txnId, userId, requestTxnId, mid); LOGGER.info("Save Complaint Response Count" + saveComplaintResponseEntity); ResponseModel responseModel = new ResponseModel(responseWrapper.getMessage(), responseWrapper.getStatus(), Integer.parseInt(responseWrapper.getStatusCode()), responseWrapper); diff --git a/src/main/java/com/billpaymentservice/bbps/serviceImpl/PaymentStartServiceImpl.java b/src/main/java/com/billpaymentservice/bbps/serviceImpl/PaymentStartServiceImpl.java index b62fa3e..757bbdb 100644 --- a/src/main/java/com/billpaymentservice/bbps/serviceImpl/PaymentStartServiceImpl.java +++ b/src/main/java/com/billpaymentservice/bbps/serviceImpl/PaymentStartServiceImpl.java @@ -402,7 +402,7 @@ public class PaymentStartServiceImpl implements PaymentStartService { record.setSignature(signature); record.setTxnStatus(txnStatus); - record.setCallbackReceivedOn(java.time.LocalDateTime.now().toString()); + record.setCallbackReceivedOn(LocalDateTime.now().toString()); String merchantStatus; if (!signatureMatches) { diff --git a/src/main/java/com/billpaymentservice/bbps/util/BillerMapperHelper.java b/src/main/java/com/billpaymentservice/bbps/util/BillerMapperHelper.java index d254b08..b78dc13 100644 --- a/src/main/java/com/billpaymentservice/bbps/util/BillerMapperHelper.java +++ b/src/main/java/com/billpaymentservice/bbps/util/BillerMapperHelper.java @@ -1094,38 +1094,7 @@ public class BillerMapperHelper { } } - // Persist complaint response entity - public String saveComplaintResponseEntity(ComplaintResponse responseWrapper, String requestId, String txnId, - String userId, String requestTxnId) { - if (responseWrapper == null || responseWrapper.getTicketDetails() == null) { - return "No data"; - } - ComplaintResponseEntity complaintResponseEntity = new ComplaintResponseEntity(); - complaintResponseEntity.setRefId(responseWrapper.getTicketDetails().getRefId()); - complaintResponseEntity.setTxnNpciId(responseWrapper.getTicketDetails().getTxnNpciId()); - complaintResponseEntity.setTicketId(responseWrapper.getTicketDetails().getTicketId()); - complaintResponseEntity.setTicketType(responseWrapper.getTicketDetails().getTicketType()); - complaintResponseEntity.setTicketNpciId(responseWrapper.getTicketDetails().getTicketNpciId()); - complaintResponseEntity.setTicketDesp(responseWrapper.getTicketDetails().getTicketDesp()); - complaintResponseEntity.setTicketDesr(responseWrapper.getTicketDetails().getTicketDesr()); - complaintResponseEntity.setRequestTxnId(requestTxnId); - - complaintResponseEntity.setMessage(responseWrapper.getMessage()); - complaintResponseEntity.setRemarks(responseWrapper.getRemarks()); - complaintResponseEntity.setStatus(responseWrapper.getStatus()); - complaintResponseEntity.setStatusCode(responseWrapper.getStatusCode()); - - complaintResponseEntity.setReqId(requestId); - complaintResponseEntity.setTxnId(txnId); - complaintResponseEntity.setUserId(userId); - complaintResponseEntity.setComplaintTicketId(generateComplaintTicketId()); - - ComplaintResponseEntity saved = complaintResponseRepository.save(complaintResponseEntity); - if (saved != null) { - return "1 record saved with id=" + saved.getId(); - } - return "Failed to save"; - } + private String generateComplaintTicketId() { return "CMP-" + UUID.randomUUID().toString(); @@ -1150,7 +1119,39 @@ public class BillerMapperHelper { f.setRemitterIdentity(req.getRemitterIdentity()); return f; } + public String saveComplaintResponseEntity(ComplaintResponse responseWrapper, String requestId, String txnId, + String userId, String requestTxnId, String mid) { + if (responseWrapper == null || responseWrapper.getTicketDetails() == null) { + return "No data"; + } + ComplaintResponseEntity complaintResponseEntity = new ComplaintResponseEntity(); + complaintResponseEntity.setRefId(responseWrapper.getTicketDetails().getRefId()); + complaintResponseEntity.setTxnNpciId(responseWrapper.getTicketDetails().getTxnNpciId()); + complaintResponseEntity.setTicketId(responseWrapper.getTicketDetails().getTicketId()); + complaintResponseEntity.setTicketType(responseWrapper.getTicketDetails().getTicketType()); + complaintResponseEntity.setTicketNpciId(responseWrapper.getTicketDetails().getTicketNpciId()); + complaintResponseEntity.setTicketDesp(responseWrapper.getTicketDetails().getTicketDesp()); + complaintResponseEntity.setTicketDesr(responseWrapper.getTicketDetails().getTicketDesr()); + complaintResponseEntity.setRequestTxnId(requestTxnId); + complaintResponseEntity.setMid(mid); + complaintResponseEntity.setCreateDateTime(new Date()); + complaintResponseEntity.setMessage(responseWrapper.getMessage()); + complaintResponseEntity.setRemarks(responseWrapper.getRemarks()); + complaintResponseEntity.setStatus(responseWrapper.getStatus()); + complaintResponseEntity.setStatusCode(responseWrapper.getStatusCode()); + + complaintResponseEntity.setReqId(requestId); + complaintResponseEntity.setTxnId(txnId); + complaintResponseEntity.setUserId(userId); + complaintResponseEntity.setComplaintTicketId(generateComplaintTicketId()); + + ComplaintResponseEntity saved = complaintResponseRepository.save(complaintResponseEntity); + if (saved != null) { + return "1 record saved with id=" + saved.getId(); + } + return "Failed to save"; + } public com.billpaymentservice.bbps.dto.sentRequest.FetchBillValidatestForwardRequest fetchBillValidatestForwardRequest( com.billpaymentservice.bbps.dto.request.FetchBillValidatestRequest req) { if (req == null) @@ -1280,4 +1281,4 @@ public class BillerMapperHelper { return dto; } -} +} \ No newline at end of file