added db optimization for the get master data and get billerdetails
This commit is contained in:
@@ -2,9 +2,11 @@ package com.billpaymentservice.bbps.dto;
|
|||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@ToString
|
||||||
public class AdditionalInfoDTO {
|
public class AdditionalInfoDTO {
|
||||||
@NotBlank(message = "Param Config ID cannot be blank")
|
@NotBlank(message = "Param Config ID cannot be blank")
|
||||||
private String paramConfigId;
|
private String paramConfigId;
|
||||||
|
|||||||
@@ -3,9 +3,11 @@ import java.util.List;
|
|||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@ToString
|
||||||
public class AmountOptionDTO{
|
public class AmountOptionDTO{
|
||||||
private String amountOptionId; // Matches "amountOptionId" from JSON
|
private String amountOptionId; // Matches "amountOptionId" from JSON
|
||||||
private List<String> amountBreakupSets; // Reference to BillerResponseParams (only ID, not full entity)
|
private List<String> amountBreakupSets; // Reference to BillerResponseParams (only ID, not full entity)
|
||||||
|
|||||||
@@ -2,9 +2,11 @@ package com.billpaymentservice.bbps.dto;
|
|||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@ToString
|
||||||
public class BillerAdditonalInfoDTO {
|
public class BillerAdditonalInfoDTO {
|
||||||
private String paramConfigId;
|
private String paramConfigId;
|
||||||
private String paramName;
|
private String paramName;
|
||||||
|
|||||||
@@ -2,17 +2,18 @@ package com.billpaymentservice.bbps.dto;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.billpaymentservice.bbps.entites.AdditionalInfoBillValidate;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import jakarta.validation.constraints.Size;
|
import jakarta.validation.constraints.Size;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
|
@ToString
|
||||||
public class BillerDTO {
|
public class BillerDTO {
|
||||||
|
|
||||||
@NotBlank(message = "Biller ID is mandatory")
|
@NotBlank(message = "Biller ID is mandatory")
|
||||||
|
|||||||
@@ -3,10 +3,12 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
|
@ToString
|
||||||
public class BillerPlanResponseParamsDTO {
|
public class BillerPlanResponseParamsDTO {
|
||||||
private String billerPlanResponseId;
|
private String billerPlanResponseId;
|
||||||
private String paramsJson;
|
private String paramsJson;
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ import java.util.List;
|
|||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@ToString
|
||||||
public class BillerResponseParamsDTO {
|
public class BillerResponseParamsDTO {
|
||||||
|
|
||||||
private String billerResponseId;
|
private String billerResponseId;
|
||||||
|
|||||||
@@ -5,9 +5,11 @@ import jakarta.validation.constraints.Min;
|
|||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@ToString
|
||||||
public class CustomerParamDTO {
|
public class CustomerParamDTO {
|
||||||
private String paramConfigId;
|
private String paramConfigId;
|
||||||
@NotBlank(message = "Parameter name is required")
|
@NotBlank(message = "Parameter name is required")
|
||||||
|
|||||||
@@ -2,9 +2,11 @@ package com.billpaymentservice.bbps.dto;
|
|||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Setter
|
@Setter
|
||||||
@Getter
|
@Getter
|
||||||
|
@ToString
|
||||||
public class FaqDetailsResponse {
|
public class FaqDetailsResponse {
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ import java.util.List;
|
|||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@ToString
|
||||||
public class GroupDTO {
|
public class GroupDTO {
|
||||||
|
|
||||||
private String groupId;
|
private String groupId;
|
||||||
|
|||||||
@@ -6,10 +6,12 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
|
@ToString
|
||||||
public class InterchangeFeeConfDTO {
|
public class InterchangeFeeConfDTO {
|
||||||
@NotBlank(message = "Interchange Fee Config ID cannot be blank")
|
@NotBlank(message = "Interchange Fee Config ID cannot be blank")
|
||||||
private String interChangeFeeConfId;
|
private String interChangeFeeConfId;
|
||||||
|
|||||||
@@ -6,10 +6,12 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
|
@ToString
|
||||||
public class InterchangeFeeDTO {
|
public class InterchangeFeeDTO {
|
||||||
@NotBlank(message = "Interchange Fee ID cannot be blank")
|
@NotBlank(message = "Interchange Fee ID cannot be blank")
|
||||||
private String interchangeFeeId;
|
private String interchangeFeeId;
|
||||||
|
|||||||
@@ -3,9 +3,11 @@ package com.billpaymentservice.bbps.dto;
|
|||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@ToString
|
||||||
public class InterchangeFeeDetailDTO {
|
public class InterchangeFeeDetailDTO {
|
||||||
|
|
||||||
private String interchangeFeeDetId;
|
private String interchangeFeeDetId;
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ import jakarta.validation.constraints.Min;
|
|||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@ToString
|
||||||
public class PaymentChannelDTO {
|
public class PaymentChannelDTO {
|
||||||
private String paymentChannelLimitId;
|
private String paymentChannelLimitId;
|
||||||
|
|
||||||
|
|||||||
@@ -7,10 +7,12 @@ import jakarta.validation.constraints.Pattern;
|
|||||||
import jakarta.validation.constraints.PositiveOrZero;
|
import jakarta.validation.constraints.PositiveOrZero;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
|
@ToString
|
||||||
public class PaymentModeDTO {
|
public class PaymentModeDTO {
|
||||||
@NotBlank(message = "Payment model limit ID cannot be blank")
|
@NotBlank(message = "Payment model limit ID cannot be blank")
|
||||||
private String paymentModelLimitId;
|
private String paymentModelLimitId;
|
||||||
|
|||||||
@@ -9,12 +9,14 @@ import lombok.Builder;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@ToString
|
||||||
public class CategoryResponse {
|
public class CategoryResponse {
|
||||||
|
|
||||||
private String categoryId;
|
private String categoryId;
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package com.billpaymentservice.bbps.entites;
|
||||||
|
|
||||||
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.GeneratedValue;
|
||||||
|
import jakarta.persistence.GenerationType;
|
||||||
|
import jakarta.persistence.Id;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Entity(name = "bbps_category_master")
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
|
||||||
|
public class CategoryMaster extends Auditable {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private Long categoryId;
|
||||||
|
|
||||||
|
@Column(name = "category_data", columnDefinition = "TEXT")
|
||||||
|
private String categoryData;
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.billpaymentservice.bbps.repository;
|
||||||
|
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import com.billpaymentservice.bbps.entites.CategoryMaster;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface CategoryMasterRepository extends JpaRepository<CategoryMaster, Long> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.billpaymentservice.bbps.serviceImpl;
|
package com.billpaymentservice.bbps.serviceImpl;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@@ -34,6 +35,7 @@ import com.billpaymentservice.bbps.dto.response.AmountOptionsResponse;
|
|||||||
import com.billpaymentservice.bbps.dto.response.AuthResponses;
|
import com.billpaymentservice.bbps.dto.response.AuthResponses;
|
||||||
import com.billpaymentservice.bbps.dto.response.BillerDataResponse;
|
import com.billpaymentservice.bbps.dto.response.BillerDataResponse;
|
||||||
import com.billpaymentservice.bbps.dto.response.BillerResponse;
|
import com.billpaymentservice.bbps.dto.response.BillerResponse;
|
||||||
|
import com.billpaymentservice.bbps.dto.response.CategoryResponse;
|
||||||
import com.billpaymentservice.bbps.dto.response.ChannelsListResponse;
|
import com.billpaymentservice.bbps.dto.response.ChannelsListResponse;
|
||||||
import com.billpaymentservice.bbps.dto.response.ContactMasterResponse;
|
import com.billpaymentservice.bbps.dto.response.ContactMasterResponse;
|
||||||
import com.billpaymentservice.bbps.dto.response.CustomParamResp;
|
import com.billpaymentservice.bbps.dto.response.CustomParamResp;
|
||||||
@@ -45,6 +47,7 @@ import com.billpaymentservice.bbps.dto.response.TicketDispositionResponse;
|
|||||||
import com.billpaymentservice.bbps.entites.BharatConnectMaster;
|
import com.billpaymentservice.bbps.entites.BharatConnectMaster;
|
||||||
import com.billpaymentservice.bbps.entites.BillerCategoryWise;
|
import com.billpaymentservice.bbps.entites.BillerCategoryWise;
|
||||||
import com.billpaymentservice.bbps.entites.BillerDetails;
|
import com.billpaymentservice.bbps.entites.BillerDetails;
|
||||||
|
import com.billpaymentservice.bbps.entites.CategoryMaster;
|
||||||
import com.billpaymentservice.bbps.entites.CustomParam;
|
import com.billpaymentservice.bbps.entites.CustomParam;
|
||||||
import com.billpaymentservice.bbps.entites.DispositionDetails;
|
import com.billpaymentservice.bbps.entites.DispositionDetails;
|
||||||
import com.billpaymentservice.bbps.entites.InboundTraceLog;
|
import com.billpaymentservice.bbps.entites.InboundTraceLog;
|
||||||
@@ -53,6 +56,8 @@ import com.billpaymentservice.bbps.entites.PlanResponses;
|
|||||||
import com.billpaymentservice.bbps.exception.CustomException;
|
import com.billpaymentservice.bbps.exception.CustomException;
|
||||||
import com.billpaymentservice.bbps.repository.BharatConnectMasterRepository;
|
import com.billpaymentservice.bbps.repository.BharatConnectMasterRepository;
|
||||||
import com.billpaymentservice.bbps.repository.BillerDataRepository;
|
import com.billpaymentservice.bbps.repository.BillerDataRepository;
|
||||||
|
import com.billpaymentservice.bbps.repository.CategoryMasterRepository;
|
||||||
|
import com.billpaymentservice.bbps.repository.ContactMasterDataRepository;
|
||||||
import com.billpaymentservice.bbps.repository.CustomParamRepository;
|
import com.billpaymentservice.bbps.repository.CustomParamRepository;
|
||||||
import com.billpaymentservice.bbps.repository.DispositionRepository;
|
import com.billpaymentservice.bbps.repository.DispositionRepository;
|
||||||
import com.billpaymentservice.bbps.repository.InboundTraceLogRepository;
|
import com.billpaymentservice.bbps.repository.InboundTraceLogRepository;
|
||||||
@@ -78,6 +83,8 @@ public class MasterDataServiceImpl implements MasterDataService {
|
|||||||
private final BharatConnectMasterRepository beneficiaryDetailsRepository;
|
private final BharatConnectMasterRepository beneficiaryDetailsRepository;
|
||||||
private final BillerMapperHelper mapperHelper;
|
private final BillerMapperHelper mapperHelper;
|
||||||
private MerchantRepository merchantRegisterRepo;
|
private MerchantRepository merchantRegisterRepo;
|
||||||
|
private final ContactMasterDataRepository contactMasterDataRepository;
|
||||||
|
|
||||||
private HttpClientApi httpClientApi;
|
private HttpClientApi httpClientApi;
|
||||||
private final DispositionRepository dispositionRepository;
|
private final DispositionRepository dispositionRepository;
|
||||||
|
|
||||||
@@ -88,12 +95,13 @@ public class MasterDataServiceImpl implements MasterDataService {
|
|||||||
private final InboundTraceLogRepository inboundTraceLogRepository;
|
private final InboundTraceLogRepository inboundTraceLogRepository;
|
||||||
private final OutboundTraceLogRepository outboundTraceLogRepository;
|
private final OutboundTraceLogRepository outboundTraceLogRepository;
|
||||||
private final CustomParamRepository customParamReposiotory;
|
private final CustomParamRepository customParamReposiotory;
|
||||||
|
private final CategoryMasterRepository categoryMasterRepository;
|
||||||
|
|
||||||
public MasterDataServiceImpl(MerchantRepository merchantRegisterRepo, HttpService httpService,
|
public MasterDataServiceImpl(MerchantRepository merchantRegisterRepo, HttpService httpService,
|
||||||
HttpClientApi httpClientApi, Helper helper, BillerDataRepository billerDataRespository,
|
HttpClientApi httpClientApi, Helper helper, BillerDataRepository billerDataRespository,
|
||||||
DispositionRepository dispositionRepository, BharatConnectMasterRepository beneficiaryDetailsRepository,
|
DispositionRepository dispositionRepository, BharatConnectMasterRepository beneficiaryDetailsRepository,
|
||||||
InboundTraceLogRepository inboundTraceLogRepository, OutboundTraceLogRepository outboundTraceLogRepository,
|
InboundTraceLogRepository inboundTraceLogRepository, OutboundTraceLogRepository outboundTraceLogRepository,
|
||||||
BillerMapperHelper mapperHelper, CustomParamRepository customParamReposiotory) {
|
BillerMapperHelper mapperHelper, CustomParamRepository customParamReposiotory,ContactMasterDataRepository contactMasterDataRepository,CategoryMasterRepository categoryMasterRepository) {
|
||||||
this.merchantRegisterRepo = merchantRegisterRepo;
|
this.merchantRegisterRepo = merchantRegisterRepo;
|
||||||
this.httpService = httpService;
|
this.httpService = httpService;
|
||||||
this.httpClientApi = httpClientApi;
|
this.httpClientApi = httpClientApi;
|
||||||
@@ -105,6 +113,8 @@ public class MasterDataServiceImpl implements MasterDataService {
|
|||||||
this.outboundTraceLogRepository = outboundTraceLogRepository;
|
this.outboundTraceLogRepository = outboundTraceLogRepository;
|
||||||
this.mapperHelper = mapperHelper;
|
this.mapperHelper = mapperHelper;
|
||||||
this.customParamReposiotory = customParamReposiotory;
|
this.customParamReposiotory = customParamReposiotory;
|
||||||
|
this.contactMasterDataRepository=contactMasterDataRepository;
|
||||||
|
this.categoryMasterRepository=categoryMasterRepository;
|
||||||
|
|
||||||
this.objectMapper = new ObjectMapper();
|
this.objectMapper = new ObjectMapper();
|
||||||
this.objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
this.objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
||||||
@@ -118,7 +128,6 @@ public class MasterDataServiceImpl implements MasterDataService {
|
|||||||
LOGGER.info("[{}] START | reqId={} | mid={}", apiName, requestId, mid);
|
LOGGER.info("[{}] START | reqId={} | mid={}", apiName, requestId, mid);
|
||||||
String txnID = helper.generateTxnId(15);
|
String txnID = helper.generateTxnId(15);
|
||||||
String requestJson = helper.convertObjectToJson(masterRequest);
|
String requestJson = helper.convertObjectToJson(masterRequest);
|
||||||
|
|
||||||
InboundTraceLog inboundLog = helper.createInboundLog(requestId, txnID, apiName, masterRequest.getMid(),
|
InboundTraceLog inboundLog = helper.createInboundLog(requestId, txnID, apiName, masterRequest.getMid(),
|
||||||
BBPSConstant.HTTP_POST, requestJson);
|
BBPSConstant.HTTP_POST, requestJson);
|
||||||
helper.validateMerchant(mid);
|
helper.validateMerchant(mid);
|
||||||
@@ -137,14 +146,17 @@ public class MasterDataServiceImpl implements MasterDataService {
|
|||||||
HttpHeaders headers = helper.buildHeaders(headersData);
|
HttpHeaders headers = helper.buildHeaders(headersData);
|
||||||
Map<String, String> responseMap = httpService.getRequest(fullUrl, headers);
|
Map<String, String> responseMap = httpService.getRequest(fullUrl, headers);
|
||||||
String responseData = responseMap.get(BBPSConstant.RESPONSE_DATA_KEY);
|
String responseData = responseMap.get(BBPSConstant.RESPONSE_DATA_KEY);
|
||||||
|
|
||||||
|
|
||||||
helper.updateOutboundLogResponse(outboundLog, responseData);
|
helper.updateOutboundLogResponse(outboundLog, responseData);
|
||||||
Map<String, Object> dataMap = objectMapper.readValue(responseData,
|
Map<String, Object> dataMap = objectMapper.readValue(responseData,
|
||||||
new TypeReference<Map<String, Object>>() {
|
new TypeReference<Map<String, Object>>() {
|
||||||
});
|
});
|
||||||
if (!dataMap.containsKey(BBPSConstant.RESPONSE_GENERAL_RESP)) {
|
if (!dataMap.containsKey(BBPSConstant.RESPONSE_GENERAL_RESP)) {
|
||||||
|
|
||||||
|
if(categoryMasterRepository.findById(BBPSConstant.CATEGORY_MASTER_SEARCH_ID).isPresent()) {
|
||||||
|
CategoryMaster existingCategoryMaster = categoryMasterRepository.findById(BBPSConstant.CATEGORY_MASTER_SEARCH_ID).get();
|
||||||
|
LOGGER.info("sending category master details from database");
|
||||||
|
return buildCategoryResponseFromDB(existingCategoryMaster);
|
||||||
|
}
|
||||||
|
|
||||||
helper.updateInboundLogFailure(inboundLog, responseData,
|
helper.updateInboundLogFailure(inboundLog, responseData,
|
||||||
String.valueOf(dataMap.get(BBPSConstant.RESPONSE_STATUS_KEY)));
|
String.valueOf(dataMap.get(BBPSConstant.RESPONSE_STATUS_KEY)));
|
||||||
@@ -158,6 +170,17 @@ public class MasterDataServiceImpl implements MasterDataService {
|
|||||||
MasterApiResponse responseWrapper = objectMapper.convertValue(dataMap, MasterApiResponse.class);
|
MasterApiResponse responseWrapper = objectMapper.convertValue(dataMap, MasterApiResponse.class);
|
||||||
GeneralResp generalResp = responseWrapper.getGeneralResp();
|
GeneralResp generalResp = responseWrapper.getGeneralResp();
|
||||||
|
|
||||||
|
|
||||||
|
String result = objectMapper.writeValueAsString(
|
||||||
|
responseWrapper.getCategoryRespList()
|
||||||
|
);
|
||||||
|
|
||||||
|
if(!categoryMasterRepository.findById(BBPSConstant.CATEGORY_MASTER_SEARCH_ID).isPresent()) {
|
||||||
|
CategoryMaster categoryMaster= new CategoryMaster();
|
||||||
|
categoryMaster.setCategoryId(BBPSConstant.CATEGORY_MASTER_SEARCH_ID);
|
||||||
|
categoryMaster.setCategoryData(result);
|
||||||
|
categoryMasterRepository.save(categoryMaster);
|
||||||
|
}
|
||||||
ResponseModel responseModel = new ResponseModel(generalResp.getMessage(), generalResp.getStatus(),
|
ResponseModel responseModel = new ResponseModel(generalResp.getMessage(), generalResp.getStatus(),
|
||||||
Integer.parseInt(generalResp.getStatusCode()), responseWrapper);
|
Integer.parseInt(generalResp.getStatusCode()), responseWrapper);
|
||||||
|
|
||||||
@@ -165,7 +188,13 @@ public class MasterDataServiceImpl implements MasterDataService {
|
|||||||
LOGGER.info("[{}] END | reqId={} | status={}", apiName, requestId, generalResp.getStatus());
|
LOGGER.info("[{}] END | reqId={} | status={}", apiName, requestId, generalResp.getStatus());
|
||||||
return responseModel;
|
return responseModel;
|
||||||
|
|
||||||
} catch (JsonProcessingException e) {
|
} catch (JsonProcessingException e) {
|
||||||
|
if(categoryMasterRepository.findById(BBPSConstant.CATEGORY_MASTER_SEARCH_ID).isPresent()) {
|
||||||
|
CategoryMaster existingCategoryMaster = categoryMasterRepository.findById(BBPSConstant.CATEGORY_MASTER_SEARCH_ID).get();
|
||||||
|
LOGGER.info("sending category master details from database");
|
||||||
|
return buildCategoryResponseFromDB(existingCategoryMaster);
|
||||||
|
|
||||||
|
}
|
||||||
LOGGER.error("Error parsing responseData JSON: {}", e.getMessage());
|
LOGGER.error("Error parsing responseData JSON: {}", e.getMessage());
|
||||||
helper.updateInboundLogFailure(inboundLog, e.getMessage(), BBPSConstant.JSON_ERROR);
|
helper.updateInboundLogFailure(inboundLog, e.getMessage(), BBPSConstant.JSON_ERROR);
|
||||||
// Use user-friendly message constant and keep internal details in remarks
|
// Use user-friendly message constant and keep internal details in remarks
|
||||||
@@ -229,10 +258,14 @@ public class MasterDataServiceImpl implements MasterDataService {
|
|||||||
// Mapping to Model
|
// Mapping to Model
|
||||||
BillerDataResponse responseWrapper = objectMapper.convertValue(dataMap, BillerDataResponse.class);
|
BillerDataResponse responseWrapper = objectMapper.convertValue(dataMap, BillerDataResponse.class);
|
||||||
GeneralResp generalResp = responseWrapper.getGeneralResp();
|
GeneralResp generalResp = responseWrapper.getGeneralResp();
|
||||||
BillerDTO billerDto = responseWrapper.getBillerDAO();
|
String result = objectMapper.writeValueAsString(
|
||||||
|
responseWrapper.getBillerDAO()
|
||||||
|
);
|
||||||
BillerDetails billerDetails=new BillerDetails();
|
BillerDetails billerDetails=new BillerDetails();
|
||||||
billerDetails.setBillerId(billerDetailRequest.getBillerId());
|
billerDetails.setBillerId(billerDetailRequest.getBillerId());
|
||||||
billerDetails.setBillerDetailsJson(billerDto.toString());
|
billerDetails.setBillerDetailsJson(result);
|
||||||
|
|
||||||
|
billerDataRespository.save(billerDetails);
|
||||||
|
|
||||||
ResponseModel responseModel = new ResponseModel(generalResp.getMessage(), generalResp.getStatus(),
|
ResponseModel responseModel = new ResponseModel(generalResp.getMessage(), generalResp.getStatus(),
|
||||||
Integer.parseInt(generalResp.getStatusCode()), responseWrapper);
|
Integer.parseInt(generalResp.getStatusCode()), responseWrapper);
|
||||||
@@ -241,6 +274,16 @@ public class MasterDataServiceImpl implements MasterDataService {
|
|||||||
return responseModel;
|
return responseModel;
|
||||||
} catch (JsonProcessingException e) {
|
} catch (JsonProcessingException e) {
|
||||||
|
|
||||||
|
Optional<BillerDetails> optional =
|
||||||
|
billerDataRespository.findByBillerId(billerId);
|
||||||
|
|
||||||
|
if (optional.isPresent()) {
|
||||||
|
LOGGER.info("sending biller details from database for the billerid:{}", billerId);
|
||||||
|
|
||||||
|
return buildBillerResponseFromDB(optional.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
LOGGER.error("Error parsing responseData JSON: {}", e.getMessage());
|
LOGGER.error("Error parsing responseData JSON: {}", e.getMessage());
|
||||||
helper.updateInboundLogFailure(inboundLog, e.getMessage(), BBPSConstant.JSON_ERROR);
|
helper.updateInboundLogFailure(inboundLog, e.getMessage(), BBPSConstant.JSON_ERROR);
|
||||||
// Unified constant for invalid JSON
|
// Unified constant for invalid JSON
|
||||||
@@ -339,7 +382,6 @@ public class MasterDataServiceImpl implements MasterDataService {
|
|||||||
BBPSConstant.HTTP_POST, requestJson);
|
BBPSConstant.HTTP_POST, requestJson);
|
||||||
helper.validateMerchant(mid);
|
helper.validateMerchant(mid);
|
||||||
try {
|
try {
|
||||||
|
|
||||||
LOGGER.info("Contact Master Full URL-:" + fullUrl);
|
LOGGER.info("Contact Master Full URL-:" + fullUrl);
|
||||||
OutboundTraceLog outboundLog = helper.createOutboundLog(txnID, requestId, apiName, fullUrl,
|
OutboundTraceLog outboundLog = helper.createOutboundLog(txnID, requestId, apiName, fullUrl,
|
||||||
BBPSConstant.HTTP_GET, null);
|
BBPSConstant.HTTP_GET, null);
|
||||||
@@ -908,4 +950,70 @@ public class MasterDataServiceImpl implements MasterDataService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private ResponseModel buildCategoryResponseFromDB(CategoryMaster categoryMaster) {
|
||||||
|
try {
|
||||||
|
// DB me jo JSON string hai usko wapas object banao
|
||||||
|
List<CategoryResponse> categoryRespList =
|
||||||
|
objectMapper.readValue(
|
||||||
|
categoryMaster.getCategoryData(),
|
||||||
|
new TypeReference<List<CategoryResponse>>() {}
|
||||||
|
);
|
||||||
|
|
||||||
|
MasterApiResponse responseWrapper = new MasterApiResponse();
|
||||||
|
responseWrapper.setCategoryRespList(categoryRespList);
|
||||||
|
|
||||||
|
GeneralResp generalResp = new GeneralResp();
|
||||||
|
generalResp.setMessage("Data retrieved successfully");
|
||||||
|
generalResp.setStatus(BBPSConstant.SUCCESS_RESPONSE);
|
||||||
|
generalResp.setStatusCode(String.valueOf(BBPSConstant.HTTP_OK_INT));
|
||||||
|
|
||||||
|
responseWrapper.setGeneralResp(generalResp);
|
||||||
|
|
||||||
|
return new ResponseModel(
|
||||||
|
generalResp.getMessage(),
|
||||||
|
generalResp.getStatus(),
|
||||||
|
Integer.parseInt(generalResp.getStatusCode()),
|
||||||
|
responseWrapper
|
||||||
|
);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new CustomException(
|
||||||
|
"Corrupted cached category master data",
|
||||||
|
BBPSConstant.FAILED_STATUS,
|
||||||
|
500,
|
||||||
|
e.getMessage()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private ResponseModel buildBillerResponseFromDB(BillerDetails billerDetails) {
|
||||||
|
try {
|
||||||
|
// DB me stored JSON ko wapas object banao
|
||||||
|
BillerDTO billerDAO = objectMapper.readValue(
|
||||||
|
billerDetails.getBillerDetailsJson(),
|
||||||
|
BillerDTO.class
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<String, Object> data = new HashMap<>();
|
||||||
|
data.put("billerDAO", billerDAO);
|
||||||
|
|
||||||
|
return new ResponseModel(
|
||||||
|
"Biller details retrieved successfully",
|
||||||
|
BBPSConstant.SUCCESS_RESPONSE,
|
||||||
|
BBPSConstant.HTTP_OK_INT,
|
||||||
|
data
|
||||||
|
);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new CustomException(
|
||||||
|
"Corrupted cached biller data",
|
||||||
|
BBPSConstant.FAILED_STATUS,
|
||||||
|
500,
|
||||||
|
e.getMessage()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -225,6 +225,7 @@ public class BBPSConstant extends BBPS_RESPONSE_COD_CONSTANT {
|
|||||||
public static final String RESPONSE_TYPE_INTENT = "INTENT";
|
public static final String RESPONSE_TYPE_INTENT = "INTENT";
|
||||||
public static final String RESPONSE_TYPE_WEB = "WEB";
|
public static final String RESPONSE_TYPE_WEB = "WEB";
|
||||||
public static final String DATA_RETRIVE_DATABASE = "Data retrieved successfully";
|
public static final String DATA_RETRIVE_DATABASE = "Data retrieved successfully";
|
||||||
|
public static final Long CATEGORY_MASTER_SEARCH_ID = 1L;
|
||||||
|
|
||||||
|
|
||||||
// Newly added constant for invalid JSON status code
|
// Newly added constant for invalid JSON status code
|
||||||
|
|||||||
Reference in New Issue
Block a user