Merge pull request 'feature3-userId-added' (#39) from feature3-userId-added into develop

Reviewed-on: https://git.zeptic.in/himanshu/bbps/pulls/39
This commit is contained in:
Mohd_Arham
2025-12-19 12:21:33 +05:30
4 changed files with 75 additions and 87 deletions
@@ -1,7 +1,6 @@
package com.billpaymentservice.bbps.entites; package com.billpaymentservice.bbps.entites;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
import jakarta.persistence.Column; import jakarta.persistence.Column;
@@ -11,8 +10,9 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
/** /**
* Base mapped superclass for audit fields. All JPA entities should extend this to * Base mapped superclass for audit fields. All JPA entities should extend this
* get automatic population of createdAt/updatedAt/isDeleted via AuditListener. * to get automatic population of createdAt/updatedAt/isDeleted via
* AuditListener.
*/ */
@MappedSuperclass @MappedSuperclass
@EntityListeners(AuditListener.class) @EntityListeners(AuditListener.class)
@@ -77,6 +77,9 @@ public class ComplaintResponseEntity extends Auditable {
@Column(name = "user_id") @Column(name = "user_id")
private String userId; private String userId;
@Column(name = "mid")
private String mid;
@OneToMany(fetch = FetchType.LAZY) @OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name = "ticket_id", referencedColumnName = "ticket_id", insertable = false, updatable = false) @JoinColumn(name = "ticket_id", referencedColumnName = "ticket_id", insertable = false, updatable = false)
private Set<ComplainStatus> complaintStatusList = new HashSet<>(); private Set<ComplainStatus> complaintStatusList = new HashSet<>();
@@ -197,7 +197,7 @@ public class ComplainServiceImpl implements ComplainService {
ComplaintResponse responseWrapper = objectMapper.convertValue(dataMap, ComplaintResponse.class); ComplaintResponse responseWrapper = objectMapper.convertValue(dataMap, ComplaintResponse.class);
String saveComplaintResponseEntity = mapperHelper.saveComplaintResponseEntity(responseWrapper, requestId, String saveComplaintResponseEntity = mapperHelper.saveComplaintResponseEntity(responseWrapper, requestId,
txnId, userId, requestTxnId); txnId, userId, requestTxnId, mid);
LOGGER.info("Save Complaint Response Count" + saveComplaintResponseEntity); LOGGER.info("Save Complaint Response Count" + saveComplaintResponseEntity);
ResponseModel responseModel = new ResponseModel(responseWrapper.getMessage(), responseWrapper.getStatus(), ResponseModel responseModel = new ResponseModel(responseWrapper.getMessage(), responseWrapper.getStatus(),
Integer.parseInt(responseWrapper.getStatusCode()), responseWrapper); Integer.parseInt(responseWrapper.getStatusCode()), responseWrapper);
@@ -7,6 +7,7 @@ import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -529,6 +530,7 @@ public class BillerMapperHelper {
entity.setNpciTicketStatus(dto.getNpciTicketStatus()); entity.setNpciTicketStatus(dto.getNpciTicketStatus());
entity.setCreatedTime(dto.getCreatedTime()); entity.setCreatedTime(dto.getCreatedTime());
entity.setUserId(userId); entity.setUserId(userId);
entity.setCreateDateTime(new Date());
try { try {
ComplainStatus saved = complaintStatusRepository.save(entity); ComplainStatus saved = complaintStatusRepository.save(entity);
@@ -559,7 +561,7 @@ public class BillerMapperHelper {
entity.setReqId(reqId); entity.setReqId(reqId);
entity.setTxnId(txnId); entity.setTxnId(txnId);
entity.setUserId(userId); entity.setUserId(userId);
entity.setCreateDateTime(new Date());
complaintHistoryRepository.save(entity); complaintHistoryRepository.save(entity);
savedCount++; savedCount++;
} }
@@ -674,6 +676,7 @@ public class BillerMapperHelper {
entity.setPage(String.valueOf(responseWrapper.getPage())); entity.setPage(String.valueOf(responseWrapper.getPage()));
entity.setPageSize(String.valueOf(responseWrapper.getPageSize())); entity.setPageSize(String.valueOf(responseWrapper.getPageSize()));
entity.setUserId(userId); entity.setUserId(userId);
entity.setCreateDateTime(new Date());
} }
@@ -853,6 +856,7 @@ public class BillerMapperHelper {
entity.setTotalPages(String.valueOf(responseWrapper.getTotalPages())); entity.setTotalPages(String.valueOf(responseWrapper.getTotalPages()));
entity.setTotalElements(String.valueOf(responseWrapper.getTotalElements())); entity.setTotalElements(String.valueOf(responseWrapper.getTotalElements()));
entity.setUserId(userId); entity.setUserId(userId);
entity.setCreateDateTime(new Date());
} }
@@ -966,6 +970,7 @@ public class BillerMapperHelper {
if (bmUpdatedOn != null) { if (bmUpdatedOn != null) {
billMaster.setUpdatedDateTime(bmUpdatedOn); billMaster.setUpdatedDateTime(bmUpdatedOn);
} }
billMaster.setCreatedEpochDate(responseWrapper.getCreatedEpochDate()); billMaster.setCreatedEpochDate(responseWrapper.getCreatedEpochDate());
billMaster.setModifiedEpochDate(responseWrapper.getModifiedEpochDate()); billMaster.setModifiedEpochDate(responseWrapper.getModifiedEpochDate());
@@ -984,7 +989,6 @@ public class BillerMapperHelper {
} }
} }
// Convert TransactionMaster to master DTO // Convert TransactionMaster to master DTO
public TransactionHistoryMasterDTO toDTO(TransactionMaster transactionMaster) { public TransactionHistoryMasterDTO toDTO(TransactionMaster transactionMaster) {
if (transactionMaster == null) if (transactionMaster == null)
@@ -1074,41 +1078,25 @@ public class BillerMapperHelper {
// Map PaymentStartUserRequest + API response into PaymentStartRecord and // Map PaymentStartUserRequest + API response into PaymentStartRecord and
// persist // persist
public PaymentStartRecord savePaymentStartRecord( public PaymentStartRecord savePaymentStartRecord(PaymentStartUserRequest request,
PaymentStartUserRequest request, PaymentStartApiResponse apiResponse, String txnId, String orderNo, String requestJson, String rawResponse,
PaymentStartApiResponse apiResponse,
String txnId,
String orderNo,
String requestJson,
String rawResponse,
String responseType) { String responseType) {
PaymentStartRecord record; PaymentStartRecord record;
boolean createNewRecord = boolean createNewRecord = apiResponse == null && rawResponse == null && responseType == null;
apiResponse == null &&
rawResponse == null &&
responseType == null;
if (createNewRecord) { if (createNewRecord) {
// 🔒 Duplicate check // 🔒 Duplicate check
if (paymentStartRecordRepository.findByOrderNo(orderNo).isPresent()) { if (paymentStartRecordRepository.findByOrderNo(orderNo).isPresent()) {
throw new CustomException( throw new CustomException("Duplicate OrderNo found", "DUPLICATE_ORDERNO", 400,
"Duplicate OrderNo found", "OrderNo already exists");
"DUPLICATE_ORDERNO",
400,
"OrderNo already exists"
);
} }
record = new PaymentStartRecord(); record = new PaymentStartRecord();
} else { } else {
record = paymentStartRecordRepository.findByOrderNo(orderNo) record = paymentStartRecordRepository.findByOrderNo(orderNo)
.orElseThrow(() -> new CustomException( .orElseThrow(() -> new CustomException("OrderNo not found", "ORDERNO_NOT_FOUND", 404,
"OrderNo not found", "No record exists for given orderNo"));
"ORDERNO_NOT_FOUND",
404,
"No record exists for given orderNo"
));
} }
if (orderNo != null) { if (orderNo != null) {
@@ -1120,14 +1108,11 @@ public class BillerMapperHelper {
} }
if (apiResponse != null && apiResponse.getResponseData() != null) { if (apiResponse != null && apiResponse.getResponseData() != null) {
record.setAmount(Optional.ofNullable( record.setAmount(Optional.ofNullable(apiResponse.getResponseData().getAmount()).orElse("0.00"));
apiResponse.getResponseData().getAmount()).orElse("0.00"));
record.setTxnId(Optional.ofNullable( record.setTxnId(Optional.ofNullable(apiResponse.getResponseData().getTxnId()).orElse("DUMMY_TXN"));
apiResponse.getResponseData().getTxnId()).orElse("DUMMY_TXN"));
record.setQrString(Optional.ofNullable( record.setQrString(Optional.ofNullable(apiResponse.getResponseData().getQrString()).orElse("NO_QR"));
apiResponse.getResponseData().getQrString()).orElse("NO_QR"));
Date createdOn = parseToDate(apiResponse.getResponseData().getCreatedOn()); Date createdOn = parseToDate(apiResponse.getResponseData().getCreatedOn());
@@ -1137,13 +1122,11 @@ public class BillerMapperHelper {
record.setTxnStatus("PENDING"); record.setTxnStatus("PENDING");
} }
record.setResponseType(responseType); record.setResponseType(responseType);
return paymentStartRecordRepository.save(record); return paymentStartRecordRepository.save(record);
} }
// Map ComplaintRequestDTO to forward request for complaint API // Map ComplaintRequestDTO to forward request for complaint API
public FetchComplaintForwardRequest fetchComplaintForwardRequestMap(ComplaintRequestDTO complainRequestDTO) { public FetchComplaintForwardRequest fetchComplaintForwardRequestMap(ComplaintRequestDTO complainRequestDTO) {
FetchComplaintForwardRequest forward = new FetchComplaintForwardRequest(); FetchComplaintForwardRequest forward = new FetchComplaintForwardRequest();
@@ -1181,7 +1164,7 @@ public class BillerMapperHelper {
// Persist complaint response entity // Persist complaint response entity
public String saveComplaintResponseEntity(ComplaintResponse responseWrapper, String requestId, String txnId, public String saveComplaintResponseEntity(ComplaintResponse responseWrapper, String requestId, String txnId,
String userId, String requestTxnId) { String userId, String requestTxnId, String mid) {
if (responseWrapper == null || responseWrapper.getTicketDetails() == null) { if (responseWrapper == null || responseWrapper.getTicketDetails() == null) {
return "No data"; return "No data";
} }
@@ -1194,6 +1177,8 @@ public class BillerMapperHelper {
complaintResponseEntity.setTicketDesp(responseWrapper.getTicketDetails().getTicketDesp()); complaintResponseEntity.setTicketDesp(responseWrapper.getTicketDetails().getTicketDesp());
complaintResponseEntity.setTicketDesr(responseWrapper.getTicketDetails().getTicketDesr()); complaintResponseEntity.setTicketDesr(responseWrapper.getTicketDetails().getTicketDesr());
complaintResponseEntity.setRequestTxnId(requestTxnId); complaintResponseEntity.setRequestTxnId(requestTxnId);
complaintResponseEntity.setMid(mid);
complaintResponseEntity.setCreateDateTime(new Date());
complaintResponseEntity.setMessage(responseWrapper.getMessage()); complaintResponseEntity.setMessage(responseWrapper.getMessage());
complaintResponseEntity.setRemarks(responseWrapper.getRemarks()); complaintResponseEntity.setRemarks(responseWrapper.getRemarks());