update code

This commit is contained in:
Mohd-Arham
2025-11-25 12:19:17 +05:30
parent d0c2c1b363
commit de92de7f7d
4 changed files with 205 additions and 434 deletions
@@ -255,7 +255,7 @@ public class AgentServiceImpl implements AgentService {
// update inbound log success and persist bill data // update inbound log success and persist bill data
helper.updateInboundLogSuccess(inboundLog, responseData, generalResp.getStatus()); helper.updateInboundLogSuccess(inboundLog, responseData, generalResp.getStatus());
helper.saveOrUpdateBillData(responseWrapper, billFetchByBillIdRequest, txnId); mapperHelper.saveOrUpdateBillData(responseWrapper, billFetchByBillIdRequest, txnId);
LOGGER.info("Bill data saved successfully for billId={} | Status={}", billId, generalResp.getStatus()); LOGGER.info("Bill data saved successfully for billId={} | Status={}", billId, generalResp.getStatus());
LOGGER.info("[{}] END | reqId={} | status={}", apiName, reqId, generalResp.getStatus()); LOGGER.info("[{}] END | reqId={} | status={}", apiName, reqId, generalResp.getStatus());
return responseModel; return responseModel;
@@ -100,7 +100,7 @@ public class ComplainServiceImpl implements ComplainService {
BharatConnectMaster headersData = beneficiaryDetailsRepository.findByOrgId(BBPSConstant.ORG_ID); BharatConnectMaster headersData = beneficiaryDetailsRepository.findByOrgId(BBPSConstant.ORG_ID);
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
FetchComplaintForwardRequest forwardReq = helper.fetchComplaintForwardRequestMap(complainRequestDTO); FetchComplaintForwardRequest forwardReq = mapperHelper.fetchComplaintForwardRequestMap(complainRequestDTO);
String forwardJson = helper.convertObjectToJson(forwardReq); String forwardJson = helper.convertObjectToJson(forwardReq);
String requestJson = helper.convertObjectToJson(complainRequestDTO); String requestJson = helper.convertObjectToJson(complainRequestDTO);
@@ -191,7 +191,7 @@ public class ComplainServiceImpl implements ComplainService {
// Convert request to JSON // Convert request to JSON
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
FetchTicketLatestStatusRequest forwardReq = helper.fetchTicketLatestStatusRequestMap(request); FetchTicketLatestStatusRequest forwardReq = mapperHelper.fetchTicketLatestStatusRequestMap(request);
String forwardJson = helper.convertObjectToJson(forwardReq); String forwardJson = helper.convertObjectToJson(forwardReq);
String requestJson = helper.convertObjectToJson(request); String requestJson = helper.convertObjectToJson(request);
@@ -33,8 +33,10 @@ import com.billpaymentservice.bbps.dto.TicketDetailsDTO;
import com.billpaymentservice.bbps.dto.TicketDispositionsDTO; import com.billpaymentservice.bbps.dto.TicketDispositionsDTO;
import com.billpaymentservice.bbps.dto.request.BillFetchByBillIdRequest; import com.billpaymentservice.bbps.dto.request.BillFetchByBillIdRequest;
import com.billpaymentservice.bbps.dto.request.BillPaymentRequest; import com.billpaymentservice.bbps.dto.request.BillPaymentRequest;
import com.billpaymentservice.bbps.dto.request.ComplaintRequestDTO;
import com.billpaymentservice.bbps.dto.request.FetchBillRequest; import com.billpaymentservice.bbps.dto.request.FetchBillRequest;
import com.billpaymentservice.bbps.dto.request.FetchBillValidatestRequest; import com.billpaymentservice.bbps.dto.request.FetchBillValidatestRequest;
import com.billpaymentservice.bbps.dto.request.GetTicketLatestStausRequest;
import com.billpaymentservice.bbps.dto.response.AmountOptionsResponse; import com.billpaymentservice.bbps.dto.response.AmountOptionsResponse;
import com.billpaymentservice.bbps.dto.response.BillDataResponse; import com.billpaymentservice.bbps.dto.response.BillDataResponse;
import com.billpaymentservice.bbps.dto.response.ClientReqIdResponse; import com.billpaymentservice.bbps.dto.response.ClientReqIdResponse;
@@ -48,6 +50,8 @@ import com.billpaymentservice.bbps.dto.response.ViewComplainByIdResponse;
import com.billpaymentservice.bbps.dto.sentRequest.BillPaymentForwardRequest; import com.billpaymentservice.bbps.dto.sentRequest.BillPaymentForwardRequest;
import com.billpaymentservice.bbps.dto.sentRequest.FetchBillForwardRequest; import com.billpaymentservice.bbps.dto.sentRequest.FetchBillForwardRequest;
import com.billpaymentservice.bbps.dto.sentRequest.FetchBillValidatestForwardRequest; import com.billpaymentservice.bbps.dto.sentRequest.FetchBillValidatestForwardRequest;
import com.billpaymentservice.bbps.dto.sentRequest.FetchComplaintForwardRequest;
import com.billpaymentservice.bbps.dto.sentRequest.FetchTicketLatestStatusRequest;
import com.billpaymentservice.bbps.entites.AdditionalInfoBill; import com.billpaymentservice.bbps.entites.AdditionalInfoBill;
import com.billpaymentservice.bbps.entites.AdditionalInfoBillValidate; import com.billpaymentservice.bbps.entites.AdditionalInfoBillValidate;
import com.billpaymentservice.bbps.entites.AdditionalInfoPlans; import com.billpaymentservice.bbps.entites.AdditionalInfoPlans;
@@ -137,10 +141,8 @@ public class BillerMapperHelper {
CheckClientBillerDataRepository checkClientBillerDataRepository, CheckClientBillerDataRepository checkClientBillerDataRepository,
TicketDispositionRepository ticketDispositionRepository, TicketDispositionRepository ticketDispositionRepository,
ViewAllComplainTicketDetailRepository viewAllComplainTicketDetailRepository, ViewAllComplainTicketDetailRepository viewAllComplainTicketDetailRepository,
ContactMasterDataRepository contactMasterDataRepository, ContactMasterDataRepository contactMasterDataRepository, BBPSMasterDataRepo bbpsMasterDataRepo,
BBPSMasterDataRepo bbpsMasterDataRepo, BillerDataRepository billerDataRespository, BillMasterRepository billMasterRepository,
BillerDataRepository billerDataRespository,
BillMasterRepository billMasterRepository,
BillValidationRepository billValidationRepository) { BillValidationRepository billValidationRepository) {
this.billerRepo = billerRepo; this.billerRepo = billerRepo;
this.customerParamGroupByBillerIdRepo = customerParamGroupByBillerIdRepo; this.customerParamGroupByBillerIdRepo = customerParamGroupByBillerIdRepo;
@@ -860,196 +862,202 @@ public class BillerMapperHelper {
public void saveOrUpdateBillerData(BillerDetails newEntity) { public void saveOrUpdateBillerData(BillerDetails newEntity) {
Optional<BillerDetails> existingOpt = billerDataRespository.findByBillerId(newEntity.getBillerId()); Optional<BillerDetails> existingOpt = billerDataRespository.findByBillerId(newEntity.getBillerId());
if (existingOpt.isPresent()) { if (existingOpt.isPresent()) {
//logic to be written // logic to be written
} } else {
else { // brand new biller
// brand new biller billerDataRespository.save(newEntity);
billerDataRespository.save(newEntity); }
}
} }
public void saveOrUpdateBillData(BillDataResponse responseWrapper, public void saveOrUpdateBillData(BillDataResponse responseWrapper,
BillFetchByBillIdRequest billFetchByBillIdRequest,String txnId) { BillFetchByBillIdRequest billFetchByBillIdRequest, String txnId) {
BillMaster billMaster = new BillMaster();
BillMaster billMaster = new BillMaster(); billMaster.setBillId(responseWrapper.getBillId());
billMaster.setRefId(responseWrapper.getRefId());
billMaster.setBillId(responseWrapper.getBillId()); billMaster.setBillerId(responseWrapper.getBillerId());
billMaster.setRefId(responseWrapper.getRefId()); billMaster.setStatus(responseWrapper.getStatus());
billMaster.setBillerId(responseWrapper.getBillerId()); billMaster.setActionType(responseWrapper.getActionType());
billMaster.setStatus(responseWrapper.getStatus()); billMaster.setUserId(responseWrapper.getUserId());
billMaster.setActionType(responseWrapper.getActionType()); billMaster.setReqId(billFetchByBillIdRequest.getReqId());
billMaster.setUserId(responseWrapper.getUserId()); billMaster.setTxnId(txnId);
billMaster.setReqId(billFetchByBillIdRequest.getReqId());
billMaster.setTxnId(txnId);
// BILLER RESPONSE // BILLER RESPONSE
BillerResponse billerResponse = new BillerResponse(); BillerResponse billerResponse = new BillerResponse();
if (responseWrapper.getBillerResponse() != null) { if (responseWrapper.getBillerResponse() != null) {
billerResponse.setBillId(responseWrapper.getBillerResponse().getBillId()); billerResponse.setBillId(responseWrapper.getBillerResponse().getBillId());
billerResponse.setAmount(responseWrapper.getBillerResponse().getAmount()); billerResponse.setAmount(responseWrapper.getBillerResponse().getAmount());
billerResponse.setBillDate(responseWrapper.getBillerResponse().getBillDate()); billerResponse.setBillDate(responseWrapper.getBillerResponse().getBillDate());
billerResponse.setBillNumber(responseWrapper.getBillerResponse().getBillNumber()); billerResponse.setBillNumber(responseWrapper.getBillerResponse().getBillNumber());
billerResponse.setBillPeriod(responseWrapper.getBillerResponse().getBillPeriod()); billerResponse.setBillPeriod(responseWrapper.getBillerResponse().getBillPeriod());
billerResponse.setCustConvFee(responseWrapper.getBillerResponse().getCustConvFee()); billerResponse.setCustConvFee(responseWrapper.getBillerResponse().getCustConvFee());
billerResponse.setCouCustConvFee(responseWrapper.getBillerResponse().getCouCustConvFee()); billerResponse.setCouCustConvFee(responseWrapper.getBillerResponse().getCouCustConvFee());
billerResponse.setDueDate(responseWrapper.getBillerResponse().getDueDate()); billerResponse.setDueDate(responseWrapper.getBillerResponse().getDueDate());
billerResponse.setCustomerName(responseWrapper.getBillerResponse().getCustomerName()); billerResponse.setCustomerName(responseWrapper.getBillerResponse().getCustomerName());
billerResponse.setAmountOption(responseWrapper.getBillerResponse().isAmountOption()); billerResponse.setAmountOption(responseWrapper.getBillerResponse().isAmountOption());
billerResponse.setBillMaster(billMaster); billerResponse.setBillMaster(billMaster);
} }
billMaster.setBillerResponse(billerResponse); billMaster.setBillerResponse(billerResponse);
// ADDITIONAL INFO // ADDITIONAL INFO
List<AdditionalInfoBill> additionalInfos = new ArrayList<>(); List<AdditionalInfoBill> additionalInfos = new ArrayList<>();
if (responseWrapper.getAdditionalInfo() != null) { if (responseWrapper.getAdditionalInfo() != null) {
for (AdditionalInfoBillDTO info : responseWrapper.getAdditionalInfo()) { for (AdditionalInfoBillDTO info : responseWrapper.getAdditionalInfo()) {
AdditionalInfoBill entity = new AdditionalInfoBill(); AdditionalInfoBill entity = new AdditionalInfoBill();
entity.setName(info.getName()); entity.setName(info.getName());
entity.setValue(info.getValue()); entity.setValue(info.getValue());
entity.setBillMaster(billMaster); entity.setBillMaster(billMaster);
additionalInfos.add(entity); additionalInfos.add(entity);
} }
} }
billMaster.setAdditionalInfo(additionalInfos); billMaster.setAdditionalInfo(additionalInfos);
// CUSTOMER PARAMS // CUSTOMER PARAMS
List<CustomerParamBill> customerParams = new ArrayList<>(); List<CustomerParamBill> customerParams = new ArrayList<>();
if (responseWrapper.getCustomerParams() != null) { if (responseWrapper.getCustomerParams() != null) {
for (CustomerParamDAO param : responseWrapper.getCustomerParams()) { for (CustomerParamDAO param : responseWrapper.getCustomerParams()) {
CustomerParamBill entity = new CustomerParamBill(); CustomerParamBill entity = new CustomerParamBill();
entity.setName(param.getName()); entity.setName(param.getName());
entity.setValue(param.getValue() == null ? "" : param.getValue()); entity.setValue(param.getValue() == null ? "" : param.getValue());
entity.setType(param.getType() == null ? "" : param.getType()); entity.setType(param.getType() == null ? "" : param.getType());
entity.setBillMaster(billMaster); entity.setBillMaster(billMaster);
customerParams.add(entity); customerParams.add(entity);
} }
} }
billMaster.setCustomerParams(customerParams); billMaster.setCustomerParams(customerParams);
// DATES // DATES
billMaster.setCreationDate(responseWrapper.getCreationDate()); billMaster.setCreationDate(responseWrapper.getCreationDate());
billMaster.setModifiedDate(responseWrapper.getModifiedDate()); billMaster.setModifiedDate(responseWrapper.getModifiedDate());
billMaster.setCreatedEpochDate(responseWrapper.getCreatedEpochDate()); billMaster.setCreatedEpochDate(responseWrapper.getCreatedEpochDate());
billMaster.setModifiedEpochDate(responseWrapper.getModifiedEpochDate()); billMaster.setModifiedEpochDate(responseWrapper.getModifiedEpochDate());
billMasterRepository.save(billMaster);
}
billMasterRepository.save(billMaster); public void saveBillValidation(FetchBillValidateResponse responseWrapper, BillFetchByBillIdRequest billRequest) {
} System.out.println("responseWrapper");
ModelMapper modelMapper = new ModelMapper();
public void saveBillValidation(FetchBillValidateResponse responseWrapper, BillFetchByBillIdRequest billRequest) {
System.out.println("responseWrapper"); try {
ModelMapper modelMapper = new ModelMapper(); LOGGER.info("Saving bill validation data for billId={}", responseWrapper.getBillId());
try { // ✅ Map the main object
LOGGER.info("Saving bill validation data for billId={}", responseWrapper.getBillId()); BillValidation billEntity = modelMapper.map(responseWrapper, BillValidation.class);
// ✅ Manually handle only the nested relationship part
// ✅ Map the main object if (responseWrapper.getCustomerParams() != null) {
BillValidation billEntity = modelMapper.map(responseWrapper, BillValidation.class); List<CustomerParamBillValidation> customerParams = responseWrapper.getCustomerParams().stream()
// ✅ Manually handle only the nested relationship part .map(param -> {
if (responseWrapper.getCustomerParams() != null) { CustomerParamBillValidation cp = modelMapper.map(param, CustomerParamBillValidation.class);
List<CustomerParamBillValidation> customerParams = responseWrapper.getCustomerParams() cp.setBill(billEntity); // maintain relation
.stream() return cp;
.map(param -> { }).collect(Collectors.toList());
CustomerParamBillValidation cp = modelMapper.map(param, CustomerParamBillValidation.class); billEntity.setCustomerParams(customerParams);
cp.setBill(billEntity); // maintain relation }
return cp; if (responseWrapper.getAdditionalInfo() != null) {
}) List<AdditionalInfoBillValidate> additionalInfos = responseWrapper.getAdditionalInfo().stream()
.collect(Collectors.toList()); .map(info -> {
billEntity.setCustomerParams(customerParams); AdditionalInfoBillValidate ai = modelMapper.map(info, AdditionalInfoBillValidate.class);
} ai.setBill(billEntity); // maintain relation
if (responseWrapper.getAdditionalInfo() != null) { return ai;
List<AdditionalInfoBillValidate> additionalInfos = responseWrapper.getAdditionalInfo() }).collect(Collectors.toList());
.stream() billEntity.setAdditionalInfo(additionalInfos);
.map(info -> {
AdditionalInfoBillValidate ai = modelMapper.map(info, AdditionalInfoBillValidate.class); }
ai.setBill(billEntity); // maintain relation // ✅ Save everything (cascade handles child)
return ai;
}) billValidationRepository.save(billEntity);
.collect(Collectors.toList());
billEntity.setAdditionalInfo(additionalInfos); LOGGER.info("Bill validation saved successfully for billId={}", billEntity.getBillId());
} catch (Exception ex) {
} LOGGER.error("Error saving BillValidation data: {}", ex.getMessage(), ex);
// ✅ Save everything (cascade handles child) throw new RuntimeException("Failed to save bill validation data", ex);
}
billValidationRepository.save(billEntity);
}
LOGGER.info("Bill validation saved successfully for billId={}", billEntity.getBillId());
} catch (Exception ex) { public FetchBillForwardRequest fetchBillForwardRequestMap(FetchBillRequest req) {
LOGGER.error("Error saving BillValidation data: {}", ex.getMessage(), ex);
throw new RuntimeException("Failed to save bill validation data", ex); FetchBillForwardRequest forward = new FetchBillForwardRequest();
}
forward.setBillerId(req.getBillerId());
forward.setBillerName(req.getBillerName());
} forward.setBillerCategory(req.getBillerCategory());
forward.setClientReqId(req.getClientReqId());
public FetchBillForwardRequest fetchBillForwardRequestMap(FetchBillRequest req) { forward.setMacAdress(req.getMacAdress());
forward.setCustomerMobNo(req.getCustomerMobNo());
FetchBillForwardRequest forward = new FetchBillForwardRequest(); forward.setRemitterName(req.getRemitterName());
forward.setPaymentChannel(req.getPaymentChannel());
forward.setBillerId(req.getBillerId()); forward.setDeviceBlockTags(req.getDeviceBlockTags());
forward.setBillerName(req.getBillerName()); forward.setCustomerParamsRequest(req.getCustomerParamsRequest());
forward.setBillerCategory(req.getBillerCategory()); forward.setRemitterIdentity(req.getRemitterIdentity());
forward.setClientReqId(req.getClientReqId());
forward.setMacAdress(req.getMacAdress()); return forward;
forward.setCustomerMobNo(req.getCustomerMobNo()); }
forward.setRemitterName(req.getRemitterName());
forward.setPaymentChannel(req.getPaymentChannel()); public FetchBillValidatestForwardRequest fetchBillValidatestForwardRequest(FetchBillValidatestRequest req) {
forward.setDeviceBlockTags(req.getDeviceBlockTags());
forward.setCustomerParamsRequest(req.getCustomerParamsRequest()); FetchBillValidatestForwardRequest forward = new FetchBillValidatestForwardRequest();
forward.setRemitterIdentity(req.getRemitterIdentity());
forward.setBillerId(req.getBillerId());
return forward; forward.setBillerName(req.getBillerName());
} forward.setBillerCategory(req.getBillerCategory());
forward.setCustomerMobNo(req.getCustomerMobNo());
public FetchBillValidatestForwardRequest fetchBillValidatestForwardRequest(FetchBillValidatestRequest req) { forward.setClientReqId(req.getClientReqId());
forward.setMacAddress(req.getMacAddress());
FetchBillValidatestForwardRequest forward = new FetchBillValidatestForwardRequest(); forward.setCustomerParamsRequest(req.getCustomerParamsRequest());
forward.setBillerId(req.getBillerId()); return forward;
forward.setBillerName(req.getBillerName()); }
forward.setBillerCategory(req.getBillerCategory());
forward.setCustomerMobNo(req.getCustomerMobNo()); public BillPaymentForwardRequest billPaymentForwardRequest(BillPaymentRequest req) {
forward.setClientReqId(req.getClientReqId());
forward.setMacAddress(req.getMacAddress()); BillPaymentForwardRequest forward = new BillPaymentForwardRequest();
forward.setCustomerParamsRequest(req.getCustomerParamsRequest());
forward.setTenantId(req.getTenantId());
return forward; forward.setRefId(req.getRefId());
} forward.setBillId(req.getBillId());
public BillPaymentForwardRequest billPaymentForwardRequest(BillPaymentRequest req) { forward.setAmountOptions(req.isAmountOptions());
forward.setPaymentMode(req.getPaymentMode());
BillPaymentForwardRequest forward = new BillPaymentForwardRequest(); forward.setPaymentInformation(req.getPaymentInformation());
forward.setBillerId(req.getBillerId());
forward.setTenantId(req.getTenantId()); forward.setBillerName(req.getBillerName());
forward.setRefId(req.getRefId()); forward.setBillerCategory(req.getBillerCategory());
forward.setBillId(req.getBillId()); forward.setMacAdress(req.getMacAdress());
forward.setAmountOptions(req.isAmountOptions()); forward.setCustomerMobNo(req.getCustomerMobNo());
forward.setPaymentMode(req.getPaymentMode()); forward.setTxnAmount(req.getTxnAmount());
forward.setPaymentInformation(req.getPaymentInformation()); forward.setPaymentRefId(req.getPaymentRefId());
forward.setBillerId(req.getBillerId()); forward.setClientReqId(req.getClientReqId());
forward.setBillerName(req.getBillerName()); forward.setPaymentChannel(req.getPaymentChannel());
forward.setBillerCategory(req.getBillerCategory());
forward.setMacAdress(req.getMacAdress()); forward.setDeviceBlockTags(req.getDeviceBlockTags());
forward.setCustomerMobNo(req.getCustomerMobNo()); forward.setCustomerParamsRequest(req.getCustomerParamsRequest());
forward.setTxnAmount(req.getTxnAmount()); forward.setRemitterIdentity(req.getRemitterIdentity());
forward.setPaymentRefId(req.getPaymentRefId()); forward.setAmountBreakSet(req.getAmountBreakSet());
forward.setClientReqId(req.getClientReqId());
forward.setPaymentChannel(req.getPaymentChannel()); return forward;
}
forward.setDeviceBlockTags(req.getDeviceBlockTags());
forward.setCustomerParamsRequest(req.getCustomerParamsRequest()); public FetchComplaintForwardRequest fetchComplaintForwardRequestMap(ComplaintRequestDTO complainRequestDTO) {
forward.setRemitterIdentity(req.getRemitterIdentity()); FetchComplaintForwardRequest forward = new FetchComplaintForwardRequest();
forward.setAmountBreakSet(req.getAmountBreakSet());
forward.setBillerId(complainRequestDTO.getBillerId());
return forward; forward.setBillerName(complainRequestDTO.getBillerName());
} forward.setTicketDescription(complainRequestDTO.getTicketDescription());
forward.setTicketDisposition(complainRequestDTO.getTicketDisposition());
forward.setTicketDispositionCode(complainRequestDTO.getTicketDispositionCode());
forward.setTxnId(complainRequestDTO.getTxnId());
return forward;
}
public FetchTicketLatestStatusRequest fetchTicketLatestStatusRequestMap(GetTicketLatestStausRequest request) {
FetchTicketLatestStatusRequest forward = new FetchTicketLatestStatusRequest();
forward.setTicketId(request.getTicketId());
forward.setTxnNpciId(request.getTxnNpciId());
return forward;
}
} }
@@ -7,28 +7,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
<<<<<<< HEAD
import com.billpaymentservice.bbps.dto.AdditionalInfoBillDTO;
import com.billpaymentservice.bbps.dto.CustomerParamDAO;
import com.billpaymentservice.bbps.dto.ResponseModel;
import com.billpaymentservice.bbps.dto.request.BillFetchByBillIdRequest;
import com.billpaymentservice.bbps.dto.request.BillPaymentRequest;
import com.billpaymentservice.bbps.dto.request.ComplaintRequestDTO;
import com.billpaymentservice.bbps.dto.request.FetchBillRequest;
import com.billpaymentservice.bbps.dto.request.FetchBillValidatestRequest;
import com.billpaymentservice.bbps.dto.request.GetTicketLatestStausRequest;
import com.billpaymentservice.bbps.dto.response.BillDataResponse;
import com.billpaymentservice.bbps.dto.response.FetchBillValidateResponse;
import com.billpaymentservice.bbps.dto.sentRequest.BillPaymentForwardRequest;
import com.billpaymentservice.bbps.dto.sentRequest.FetchBillForwardRequest;
import com.billpaymentservice.bbps.dto.sentRequest.FetchBillValidatestForwardRequest;
import com.billpaymentservice.bbps.dto.sentRequest.FetchComplaintForwardRequest;
import com.billpaymentservice.bbps.dto.sentRequest.FetchTicketLatestStatusRequest;
import com.billpaymentservice.bbps.entites.AdditionalInfoBill;
import com.billpaymentservice.bbps.entites.AdditionalInfoBillValidate;
=======
>>>>>>> d0812656ff2aee80b1eb0c0ab8e29a01d7d66553
import com.billpaymentservice.bbps.entites.BBPSMastersData; import com.billpaymentservice.bbps.entites.BBPSMastersData;
import com.billpaymentservice.bbps.entites.InboundTraceLog; import com.billpaymentservice.bbps.entites.InboundTraceLog;
import com.billpaymentservice.bbps.entites.OutboundTraceLog; import com.billpaymentservice.bbps.entites.OutboundTraceLog;
@@ -54,26 +33,15 @@ public class Helper {
private final ObjectMapper objectMapper = new ObjectMapper(); private final ObjectMapper objectMapper = new ObjectMapper();
private final BBPSMasterDataRepo bbpsMasterDataRepo; private final BBPSMasterDataRepo bbpsMasterDataRepo;
// Constructor Injection // Constructor Injection
public Helper(BBPSMasterDataRepo bbpsMasterDataRepo, InboundTraceLogRepository inboundTraceLogRepository, public Helper(BBPSMasterDataRepo bbpsMasterDataRepo, InboundTraceLogRepository inboundTraceLogRepository,
<<<<<<< HEAD
OutboundTraceLogRepository outboundTraceLogRepository, BillerDataRepository billerDataRepository, OutboundTraceLogRepository outboundTraceLogRepository, BillerDataRepository billerDataRepository,
BillMasterRepository billMasterRepository, BillValidationRepository billValidationRepository) { BillMasterRepository billMasterRepository, BillValidationRepository billValidationRepository) {
this.inboundTraceLogRepository = inboundTraceLogRepository;
this.outboundTraceLogRepository = outboundTraceLogRepository;
this.bbpsMasterDataRepo = bbpsMasterDataRepo; this.bbpsMasterDataRepo = bbpsMasterDataRepo;
this.inboundTraceLogRepository = inboundTraceLogRepository;
this.outboundTraceLogRepository = outboundTraceLogRepository;
this.billerDataRespository = billerDataRepository;
this.billMasterRepository = billMasterRepository;
this.billValidationRepository = billValidationRepository;
} }
=======
OutboundTraceLogRepository outboundTraceLogRepository,BillerDataRepository billerDataRepository,
BillMasterRepository billMasterRepository,BillValidationRepository billValidationRepository) {
this.inboundTraceLogRepository = inboundTraceLogRepository;
this.outboundTraceLogRepository = outboundTraceLogRepository;
this.bbpsMasterDataRepo = bbpsMasterDataRepo;}
>>>>>>> d0812656ff2aee80b1eb0c0ab8e29a01d7d66553
/** /**
* Validates whether the merchant exists and is active. * Validates whether the merchant exists and is active.
@@ -182,225 +150,20 @@ public class Helper {
outboundLog.setResponsePayload(responsePayload); outboundLog.setResponsePayload(responsePayload);
outboundLog.setResponseReceiveTime(LocalDateTime.now()); outboundLog.setResponseReceiveTime(LocalDateTime.now());
outboundTraceLogRepository.save(outboundLog); outboundTraceLogRepository.save(outboundLog);
<<<<<<< HEAD
=======
>>>>>>> d0812656ff2aee80b1eb0c0ab8e29a01d7d66553
} }
/* ---------- End helpers ---------- */ /* ---------- End helpers ---------- */
<<<<<<< HEAD
Optional<BillerDetails> existingOpt = billerDataRespository.findByBillerId(newEntity.getBillerId());
if (existingOpt.isPresent()) {
// logic to be written
} else {
// brand new biller
billerDataRespository.save(newEntity);
}
}
public void saveOrUpdateBillData(BillDataResponse responseWrapper,
BillFetchByBillIdRequest billFetchByBillIdRequest, String txnId) {
BillMaster billMaster = new BillMaster();
billMaster.setBillId(billFetchByBillIdRequest.getBillId());
billMaster.setRefId(responseWrapper.getRefId());
billMaster.setBillerId(responseWrapper.getBillerId());
billMaster.setStatus(responseWrapper.getStatus());
billMaster.setActionType(responseWrapper.getActionType());
billMaster.setUserId(responseWrapper.getUserId());
billMaster.setReqId(billFetchByBillIdRequest.getReqId());
billMaster.setTxnId(txnId);
// BILLER RESPONSE
BillerResponse billerResponse = new BillerResponse();
if (responseWrapper.getBillerResponse() != null) {
billerResponse.setBillId(responseWrapper.getBillerResponse().getBillId());
billerResponse.setAmount(responseWrapper.getBillerResponse().getAmount());
billerResponse.setBillDate(responseWrapper.getBillerResponse().getBillDate());
billerResponse.setBillNumber(responseWrapper.getBillerResponse().getBillNumber());
billerResponse.setBillPeriod(responseWrapper.getBillerResponse().getBillPeriod());
billerResponse.setCustConvFee(responseWrapper.getBillerResponse().getCustConvFee());
billerResponse.setCouCustConvFee(responseWrapper.getBillerResponse().getCouCustConvFee());
billerResponse.setDueDate(responseWrapper.getBillerResponse().getDueDate());
billerResponse.setCustomerName(responseWrapper.getBillerResponse().getCustomerName());
billerResponse.setAmountOption(responseWrapper.getBillerResponse().isAmountOption());
billerResponse.setBillMaster(billMaster);
}
billMaster.setBillerResponse(billerResponse);
// ADDITIONAL INFO
List<AdditionalInfoBill> additionalInfos = new ArrayList<>();
if (responseWrapper.getAdditionalInfo() != null) {
for (AdditionalInfoBillDTO info : responseWrapper.getAdditionalInfo()) {
AdditionalInfoBill entity = new AdditionalInfoBill();
entity.setName(info.getName());
entity.setValue(info.getValue());
entity.setBillMaster(billMaster);
additionalInfos.add(entity);
}
}
billMaster.setAdditionalInfo(additionalInfos);
// CUSTOMER PARAMS
List<CustomerParamBill> customerParams = new ArrayList<>();
if (responseWrapper.getCustomerParams() != null) {
for (CustomerParamDAO param : responseWrapper.getCustomerParams()) {
CustomerParamBill entity = new CustomerParamBill();
entity.setName(param.getName());
entity.setValue(param.getValue() == null ? "" : param.getValue());
entity.setType(param.getType() == null ? "" : param.getType());
entity.setBillMaster(billMaster);
customerParams.add(entity);
}
}
billMaster.setCustomerParams(customerParams);
// DATES
billMaster.setCreationDate(responseWrapper.getCreationDate());
billMaster.setModifiedDate(responseWrapper.getModifiedDate());
billMaster.setCreatedEpochDate(responseWrapper.getCreatedEpochDate());
billMaster.setModifiedEpochDate(responseWrapper.getModifiedEpochDate());
billMasterRepository.save(billMaster);
}
public void saveBillValidation(FetchBillValidateResponse responseWrapper, BillFetchByBillIdRequest billRequest) {
System.out.println("responseWrapper");
ModelMapper modelMapper = new ModelMapper();
try {
LOGGER.info("Saving bill validation data for billId={}", responseWrapper.getBillId());
// ✅ Map the main object
BillValidation billEntity = modelMapper.map(responseWrapper, BillValidation.class);
// ✅ Manually handle only the nested relationship part
if (responseWrapper.getCustomerParams() != null) {
List<CustomerParamBillValidation> customerParams = responseWrapper.getCustomerParams().stream()
.map(param -> {
CustomerParamBillValidation cp = modelMapper.map(param, CustomerParamBillValidation.class);
cp.setBill(billEntity); // maintain relation
return cp;
}).collect(Collectors.toList());
billEntity.setCustomerParams(customerParams);
}
if (responseWrapper.getAdditionalInfo() != null) {
List<AdditionalInfoBillValidate> additionalInfos = responseWrapper.getAdditionalInfo().stream()
.map(info -> {
AdditionalInfoBillValidate ai = modelMapper.map(info, AdditionalInfoBillValidate.class);
ai.setBill(billEntity); // maintain relation
return ai;
}).collect(Collectors.toList());
billEntity.setAdditionalInfo(additionalInfos);
}
// ✅ Save everything (cascade handles child)
billValidationRepository.save(billEntity);
LOGGER.info("Bill validation saved successfully for billId={}", billEntity.getBillId());
} catch (Exception ex) {
LOGGER.error("Error saving BillValidation data: {}", ex.getMessage(), ex);
throw new RuntimeException("Failed to save bill validation data", ex);
}
}
public FetchBillForwardRequest fetchBillForwardRequestMap(FetchBillRequest req) {
FetchBillForwardRequest forward = new FetchBillForwardRequest();
forward.setBillerId(req.getBillerId());
forward.setBillerName(req.getBillerName());
forward.setBillerCategory(req.getBillerCategory());
forward.setClientReqId(req.getClientReqId());
forward.setMacAdress(req.getMacAdress());
forward.setCustomerMobNo(req.getCustomerMobNo());
forward.setRemitterName(req.getRemitterName());
forward.setPaymentChannel(req.getPaymentChannel());
forward.setDeviceBlockTags(req.getDeviceBlockTags());
forward.setCustomerParamsRequest(req.getCustomerParamsRequest());
forward.setRemitterIdentity(req.getRemitterIdentity());
return forward;
}
public FetchBillValidatestForwardRequest fetchBillValidatestForwardRequest(FetchBillValidatestRequest req) {
FetchBillValidatestForwardRequest forward = new FetchBillValidatestForwardRequest();
forward.setBillerId(req.getBillerId());
forward.setBillerName(req.getBillerName());
forward.setBillerCategory(req.getBillerCategory());
forward.setCustomerMobNo(req.getCustomerMobNo());
forward.setClientReqId(req.getClientReqId());
forward.setMacAddress(req.getMacAddress());
forward.setCustomerParamsRequest(req.getCustomerParamsRequest());
return forward;
}
public BillPaymentForwardRequest billPaymentForwardRequest(BillPaymentRequest req) {
BillPaymentForwardRequest forward = new BillPaymentForwardRequest();
forward.setTenantId(req.getTenantId());
forward.setRefId(req.getRefId());
forward.setBillId(req.getBillId());
forward.setAmountOptions(req.isAmountOptions());
forward.setPaymentMode(req.getPaymentMode());
forward.setPaymentInformation(req.getPaymentInformation());
forward.setBillerId(req.getBillerId());
forward.setBillerName(req.getBillerName());
forward.setBillerCategory(req.getBillerCategory());
forward.setMacAdress(req.getMacAdress());
forward.setCustomerMobNo(req.getCustomerMobNo());
forward.setTxnAmount(req.getTxnAmount());
forward.setPaymentRefId(req.getPaymentRefId());
forward.setClientReqId(req.getClientReqId());
forward.setPaymentChannel(req.getPaymentChannel());
forward.setDeviceBlockTags(req.getDeviceBlockTags());
forward.setCustomerParamsRequest(req.getCustomerParamsRequest());
forward.setRemitterIdentity(req.getRemitterIdentity());
forward.setAmountBreakSet(req.getAmountBreakSet());
return forward;
}
public FetchComplaintForwardRequest fetchComplaintForwardRequestMap(ComplaintRequestDTO complainRequestDTO) {
FetchComplaintForwardRequest forward = new FetchComplaintForwardRequest();
forward.setBillerId(complainRequestDTO.getBillerId());
forward.setBillerName(complainRequestDTO.getBillerName());
forward.setTicketDescription(complainRequestDTO.getTicketDescription());
forward.setTicketDisposition(complainRequestDTO.getTicketDisposition());
forward.setTicketDispositionCode(complainRequestDTO.getTicketDispositionCode());
forward.setTxnId(complainRequestDTO.getTxnId());
return forward;
}
public FetchTicketLatestStatusRequest fetchTicketLatestStatusRequestMap(GetTicketLatestStausRequest request) {
FetchTicketLatestStatusRequest forward = new FetchTicketLatestStatusRequest();
forward.setTicketId(request.getTicketId());
forward.setTxnNpciId(request.getTxnNpciId());
return forward;
}
=======
// New reusable header builder for BBPS calls // New reusable header builder for BBPS calls
public HttpHeaders buildHeaders(BharatConnectMaster headersData) { public HttpHeaders buildHeaders(BharatConnectMaster headersData) {
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
if (headersData != null) { if (headersData != null) {
headers.set("x-digiledge-key", headersData.getXDigiledgeKey()); headers.set("x-digiledge-key", headersData.getXDigiledgeKey());
headers.set("agentId", headersData.getAgentId()); headers.set("agentId", headersData.getAgentId());
headers.set("tenantId", headersData.getTenantId()); headers.set("tenantId", headersData.getTenantId());
} }
headers.setContentType(MediaType.APPLICATION_JSON); headers.setContentType(MediaType.APPLICATION_JSON);
return headers; return headers;
} }
>>>>>>> d0812656ff2aee80b1eb0c0ab8e29a01d7d66553
} }