updated Code add logger

This commit is contained in:
Mohd-Arham
2025-11-24 17:40:49 +05:30
parent f85aa7ec06
commit 89cb17b108
10 changed files with 1004 additions and 856 deletions
@@ -19,16 +19,14 @@ import com.billpaymentservice.bbps.dto.request.ComplaintRequestDTO;
import com.billpaymentservice.bbps.dto.request.GetTicketLatestStausRequest;
import com.billpaymentservice.bbps.dto.request.TxnStatusRequest;
import com.billpaymentservice.bbps.dto.request.ViewAllComplaintsTicketsRequest;
import com.billpaymentservice.bbps.dto.request.ViewAllComplaintsRequest;
import com.billpaymentservice.bbps.dto.response.ComplaintHistoryStatusResponse;
import com.billpaymentservice.bbps.dto.response.ComplaintResponse;
import com.billpaymentservice.bbps.dto.response.TicketCheckStatusResponse;
import com.billpaymentservice.bbps.dto.response.TxnStatusResponse;
import com.billpaymentservice.bbps.dto.response.ViewAllComplaintsTicketsResponse;
import com.billpaymentservice.bbps.dto.response.ViewAllComplaintsResponse;
import com.billpaymentservice.bbps.dto.response.ViewComplainByIdResponse;
import com.billpaymentservice.bbps.dto.sentRequest.FetchComplaintForwardRequest;
import com.billpaymentservice.bbps.dto.sentRequest.FetchTicketLatestStatusRequest;
import com.billpaymentservice.bbps.entites.BharatConnectMaster;
import com.billpaymentservice.bbps.entites.ComplaintStatusOptionsMaster;
import com.billpaymentservice.bbps.entites.InboundTraceLog;
@@ -83,19 +81,16 @@ public class ComplainServiceImpl implements ComplainService {
@Override
public ResponseModel addComplain(ComplaintRequestDTO complainRequestDTO) {
LOGGER.info("Initiating add Complain for request ID: {} and MID {}", complainRequestDTO.getReqId(),
complainRequestDTO.getMid());
String apiName = "ADD_COMPLAIN";
String txnId = helper.generateTxnId(15);
String requestId = complainRequestDTO.getReqId();
String mid = complainRequestDTO.getMid();
LOGGER.info("[{}] START | reqId={} | mid={}", apiName, requestId, mid);
helper.validateMerchant(mid);
String txnId = helper.generateTxnId(15);
String fullUrl = complainDataUrl + BBPSConstant.ADD_COMPLAIN_ENDPOINT;
LOGGER.info("Full URL-: "+ fullUrl);
// Convert input DTO to JSON
String requestJson = helper.convertObjectToJson(complainRequestDTO);
LOGGER.info("[{}] Full URL={}", apiName, fullUrl);
// Fetch tenant & agent from DB
BharatConnectMaster headersData = beneficiaryDetailsRepository.findByOrgId("ORG001");
@@ -104,25 +99,33 @@ public class ComplainServiceImpl implements ComplainService {
headers.set("agentId", headersData.getAgentId());
headers.set("tenantId", headersData.getTenantId());
headers.setContentType(MediaType.APPLICATION_JSON);
// Convert input DTO to JSON
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
FetchComplaintForwardRequest forwardReq = helper.fetchComplaintForwardRequestMap(complainRequestDTO);
String forwardJson = helper.convertObjectToJson(forwardReq);
String requestJson = helper.convertObjectToJson(complainRequestDTO);
InboundTraceLog inboundLog = helper.createInboundLog(requestId, txnId, apiName, complainRequestDTO.getMid(),
"POST", requestJson);
OutboundTraceLog outboundLog = helper.createOutboundLog(txnId, requestId, apiName, fullUrl, "POST", null);
OutboundTraceLog outboundLog = helper.createOutboundLog(txnId, requestId, apiName, fullUrl, "POST",
forwardJson);
try {
// Inject tenantId + agentId into request JSON
ObjectNode root = (ObjectNode) objectMapper.readTree(requestJson);
ObjectNode root = (ObjectNode) objectMapper.readTree(forwardJson);
root.put("tenantId", headersData.getTenantId());
root.put("agentId", headersData.getAgentId());
String finalJson = root.toString();
LOGGER.info("Final Request Sent to API: {}", finalJson);
LOGGER.info("[{}] Final Request Sent to API | reqId={} | payload={}", apiName, requestId, finalJson);
// IMPORTANT: Send finalJson, not requestJson
Map<String, String> responseMap = httpService.postRequest(fullUrl, finalJson, headers);
String responseData = responseMap.get("data");
LOGGER.info("Fetched response: {}", responseData);
LOGGER.debug("[{}] Response Received | reqId={} | data={}", apiName, requestId, responseData);
helper.updateOutboundLogResponse(outboundLog, responseData);
@@ -133,7 +136,7 @@ public class ComplainServiceImpl implements ComplainService {
if (start != -1 && end != -1) {
responseData = responseData.substring(start, end + 1);
}
LOGGER.info("Extracted pure JSON from error: {}", responseData);
LOGGER.warn("[{}] Extracted JSON from error wrapper | data={}", apiName, responseData);
}
// Parse JSON into Map
@@ -145,6 +148,7 @@ public class ComplainServiceImpl implements ComplainService {
// Throw exception for non-200
if (statusCode != 200) {
LOGGER.warn("[{}] Failure Response | reqId={} | statusCode={}", apiName, requestId, statusCode);
throw new CustomException(String.valueOf(dataMap.get("message")), String.valueOf(dataMap.get("status")),
statusCode, String.valueOf(dataMap.get("remarks")));
}
@@ -156,6 +160,7 @@ public class ComplainServiceImpl implements ComplainService {
Integer.parseInt(responseWrapper.getStatusCode()), responseWrapper);
helper.updateInboundLogSuccess(inboundLog, responseData, responseWrapper.getStatus());
LOGGER.info("[{}] SUCCESS | reqId={} | status={}", apiName, requestId, responseWrapper.getStatus());
return responseModel;
} catch (JsonProcessingException e) {
@@ -171,13 +176,17 @@ public class ComplainServiceImpl implements ComplainService {
LOGGER.info("Fetching Complaint Status for TicketId={} ReqId={}", request.getTicketId(), request.getReqId());
String apiName = "COMPLAINT_STATUS";
String txnId = helper.generateTxnId(15);
String reqId = request.getReqId();
String complaintId = request.getTicketId();
String mid = request.getMid();
String ticketId = request.getTicketId();
LOGGER.info("[{}] START | reqId={} | mid={} | ticketId={}", apiName, reqId, mid, ticketId);
String fullUrl = agentDtaUrl + BBPSConstant.COMPALINT_STATUS;
helper.validateMerchant(request.getMid());
LOGGER.info("FUll URL -: " + fullUrl);
helper.validateMerchant(mid);
String txnId = helper.generateTxnId(15);
BharatConnectMaster headersData = beneficiaryDetailsRepository.findByOrgId("ORG001");
HttpHeaders headers = new HttpHeaders();
@@ -187,27 +196,32 @@ public class ComplainServiceImpl implements ComplainService {
headers.setContentType(MediaType.APPLICATION_JSON);
// Convert request to JSON
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
FetchTicketLatestStatusRequest forwardReq = helper.fetchTicketLatestStatusRequestMap(request);
String forwardJson = helper.convertObjectToJson(forwardReq);
String requestJson = helper.convertObjectToJson(request);
InboundTraceLog inboundLog = helper.createInboundLog(reqId, txnId, apiName, request.getMid(), "POST",
requestJson);
OutboundTraceLog outboundLog = helper.createOutboundLog(txnId, reqId, apiName, fullUrl, "POST", complaintId);
OutboundTraceLog outboundLog = helper.createOutboundLog(txnId, reqId, apiName, fullUrl, "POST", forwardJson);
try {
ObjectNode root = (ObjectNode) objectMapper.readTree(requestJson);
ObjectNode root = (ObjectNode) objectMapper.readTree(forwardJson);
root.put("tenantId", headersData.getTenantId());
//root.put("agentId", headersData.getAgentId());
// root.put("agentId", headersData.getAgentId());
String finalJson = root.toString();
LOGGER.info("Final Request Sent to API: {}", finalJson);
// LOGGER.info("Calling external API: {}", fullUrl);
LOGGER.info("[{}] Final API Payload | reqId={} | payload={}", apiName, reqId, finalJson);
Map<String, String> responseMap = httpService.postRequest(fullUrl, finalJson, headers);
String responseData = responseMap.get("data");
LOGGER.info("Complaint Fetch Response: {}", responseData);
LOGGER.debug("[{}] Raw Response | reqId={} | data={}", apiName, reqId, responseData);
helper.updateOutboundLogResponse(outboundLog, responseData);
if (responseData.startsWith("HttpService Error")) {
@@ -227,20 +241,21 @@ public class ComplainServiceImpl implements ComplainService {
int statusCode = Integer.parseInt(String.valueOf(dataMap.get("statusCode")));
if (statusCode != 200) {
LOGGER.warn("[{}] Failure Response | reqId={} | statusCode={}", apiName, reqId, statusCode);
throw new CustomException(String.valueOf(dataMap.get("message")), String.valueOf(dataMap.get("status")),
statusCode, String.valueOf(dataMap.get("remarks")));
}
TicketCheckStatusResponse responseWrapper = objectMapper.convertValue(dataMap,
TicketCheckStatusResponse.class);
LOGGER.info("Complaint Current Status: {}", responseWrapper.getStatus());
LOGGER.info("[{}] Complaint Status | ticketId={} | status={}", apiName, ticketId,
responseWrapper.getStatus());
helper.updateInboundLogSuccess(inboundLog, responseData, responseWrapper.getStatus());
// Save in DB
mapperHelper.saveComplaintStatus(responseWrapper, reqId, txnId);
String saveComplaintStatus = mapperHelper.saveComplaintStatus(responseWrapper, reqId, txnId);
LOGGER.info("[{}] Save Status | ticketId={} | status={}", apiName, ticketId, saveComplaintStatus);
return new ResponseModel(responseWrapper.getMessage(), responseWrapper.getStatus(),
Integer.parseInt(responseWrapper.getStatusCode()), responseWrapper);
@@ -255,16 +270,17 @@ public class ComplainServiceImpl implements ComplainService {
@Override
public ResponseModel viewComplaintHistory(ComplainStatusRequest request) {
LOGGER.info("Fetching View Complaint History Complaint by Complaint Id={}", request.getTicketId(),
request.getReqId());
String apiName = "View_Complaint_History";
String txnId = helper.generateTxnId(15);
String reqId = request.getReqId();
String ticketId = request.getTicketId();
String mid = request.getMid();
LOGGER.info("[{}] START | reqId={} | mid={} | ticketId={}", apiName, reqId, mid, ticketId);
String fullUrl = agentDtaUrl + BBPSConstant.COMPLAINT_HISTORY + request.getTicketId();
helper.validateMerchant(request.getMid());
String txnId = helper.generateTxnId(15);
BharatConnectMaster headersData = beneficiaryDetailsRepository.findByOrgId("ORG001");
HttpHeaders headers = new HttpHeaders();
headers.set("x-digiledge-key", headersData.getXDigiledgeKey());
@@ -279,13 +295,13 @@ public class ComplainServiceImpl implements ComplainService {
InboundTraceLog inboundLog = helper.createInboundLog(reqId, txnId, apiName, request.getMid(), "GET",
requestJson);
OutboundTraceLog outboundLog = helper.createOutboundLog(txnId, reqId, apiName, fullUrl, "GET", ticketId);
LOGGER.debug("Outbound log created successfully for Complaint : {}", fullUrl);
LOGGER.debug("[{}] Outbound log created | URL={}", apiName, fullUrl);
try {
LOGGER.info("Calling external API: {}", fullUrl);
LOGGER.info("[{}] Calling external API | URL={} | reqId={}", apiName, fullUrl, reqId);
Map<String, String> responseMap = httpService.getRequest(fullUrl, headers);
String responseData = responseMap.get("data");
LOGGER.info("Complaint History Complaint FetchById Response: {}", responseData);
LOGGER.debug("[{}] Raw Response | reqId={} | data={}", apiName, reqId, responseData);
helper.updateOutboundLogResponse(outboundLog, responseData);
@@ -294,8 +310,8 @@ public class ComplainServiceImpl implements ComplainService {
});
if (!dataMap.containsKey("generalResp")) {
LOGGER.warn("[{}] Invalid response structure | reqId={} | data={}", apiName, reqId, responseData);
helper.updateInboundLogFailure(inboundLog, responseData, "INVALID_RESPONSE");
LOGGER.warn("Invalid response structure for txnId: {}", txnId);
throw new CustomException(String.valueOf(dataMap.get("message")), String.valueOf(dataMap.get("status")),
Integer.parseInt(String.valueOf(dataMap.get("statusCode"))), String.valueOf(""));
}
@@ -309,8 +325,8 @@ public class ComplainServiceImpl implements ComplainService {
helper.updateInboundLogSuccess(inboundLog, responseData, generalResp.getStatus());
String saveComplaintHistory = mapperHelper.saveComplaintHistory(responseWrapper, reqId, txnId);
LOGGER.info("Complaint ReOpen data saved successfully for Count History: {}", saveComplaintHistory);
LOGGER.info("[{}] Complaint history saved | ticketId={} | entryId={}", apiName, ticketId,
saveComplaintHistory);
return new ResponseModel(generalResp.getMessage(), generalResp.getStatus(),
Integer.parseInt(generalResp.getStatusCode()), responseWrapper);
} catch (JsonProcessingException e) {
@@ -322,15 +338,16 @@ public class ComplainServiceImpl implements ComplainService {
@Override
public ResponseModel viewComplaintById(ComplainStatusRequest request) {
LOGGER.info("Fetching View Complaint Complaint by Complaint Id={}", request.getTicketId(), request.getReqId());
String apiName = "View_Complaint_By_ID";
String txnId = helper.generateTxnId(15);
String reqId = request.getReqId();
String ticketId = request.getTicketId();
String fullUrl = agentDtaUrl + BBPSConstant.VIEW_COMPLAINT_BY_ID + request.getTicketId();
String mid = request.getMid();
LOGGER.info("[{}] START | reqId={} | mid={} | ticketId={}", apiName, reqId, mid, ticketId);
helper.validateMerchant(request.getMid());
String txnId = helper.generateTxnId(15);
String fullUrl = agentDtaUrl + BBPSConstant.VIEW_COMPLAINT_BY_ID + request.getTicketId();
BharatConnectMaster headersData = beneficiaryDetailsRepository.findByOrgId("ORG001");
HttpHeaders headers = new HttpHeaders();
@@ -349,7 +366,7 @@ public class ComplainServiceImpl implements ComplainService {
LOGGER.debug("Outbound log created successfully for Complaint : {}", fullUrl);
try {
LOGGER.info("Calling external API: {}", fullUrl);
LOGGER.info("[{}] Calling external API | reqId={} | URL={}", apiName, reqId, fullUrl);
Map<String, String> responseMap = httpService.getRequest(fullUrl, headers);
String responseData = responseMap.get("data");
LOGGER.info("Complaint History Complaint FetchById Response: {}", responseData);
@@ -376,7 +393,7 @@ public class ComplainServiceImpl implements ComplainService {
helper.updateInboundLogSuccess(inboundLog, responseData, generalResp.getStatus());
String saveComplaint = mapperHelper.saveComplainStatusDetail(responseWrapper, reqId, txnId);
LOGGER.info("Complaint ReOpen data saved successfully for Count History: {}", saveComplaint);
LOGGER.info("[{}] Complaint details saved | ticketId={} | id={}", apiName, ticketId, saveComplaint);
return new ResponseModel(generalResp.getMessage(), generalResp.getStatus(),
Integer.parseInt(generalResp.getStatusCode()), responseWrapper);
@@ -391,15 +408,16 @@ public class ComplainServiceImpl implements ComplainService {
public ResponseModel getAllActiveStatuses(AllMasterOptionsRequest request) {
try {
LOGGER.info("Fetch All Master Options - MID: {}", request.getMid());
String apiName = "View All Options Fetch By Id";
String txnId = helper.generateTxnId(15);
String reqId = request.getReqId();
String fullUrl = "Data Base Options";
String requestJson = helper.convertObjectToJson(request);
String mid = request.getMid();
LOGGER.info("[{}] START | reqId={} | mid={}", apiName, reqId, mid);
// Validate merchant
helper.validateMerchant(request.getMid());
helper.validateMerchant(mid);
String txnId = helper.generateTxnId(15);
String requestJson = helper.convertObjectToJson(request);
InboundTraceLog inboundLog = helper.createInboundLog(reqId, txnId, apiName, request.getMid(), "GET",
requestJson);
OutboundTraceLog outboundLog = helper.createOutboundLog(txnId, reqId, apiName, fullUrl, "GET", null);
@@ -432,14 +450,16 @@ public class ComplainServiceImpl implements ComplainService {
}
public ResponseModel checkTxnStatus(TxnStatusRequest request) {
LOGGER.info("Check Txn Status Request by Id={} and ReqId ={}", request.getId(), request.getReqId());
String apiName = "CheckTxnStatus";
String txnId = helper.generateTxnId(15);
String apiName = "Check_Txn_Status";
String reqId = request.getReqId();
String ID = request.getId();
String fullUrl = agentDtaUrl + BBPSConstant.CHECK_TRANSACTION_URL + request.getId();
String mid = request.getMid();
String transactionId = request.getId();
LOGGER.info("[{}] START | reqId={} | mid={} | txnId={}", apiName, reqId, mid, transactionId);
helper.validateMerchant(request.getMid());
String txnId = helper.generateTxnId(15);
String fullUrl = agentDtaUrl + BBPSConstant.CHECK_TRANSACTION_URL + request.getId();
BharatConnectMaster headersData = beneficiaryDetailsRepository.findByOrgId("ORG001");
HttpHeaders headers = new HttpHeaders();
@@ -458,7 +478,7 @@ public class ComplainServiceImpl implements ComplainService {
LOGGER.debug("Outbound log created successfully for Complaint : {}", fullUrl);
try {
LOGGER.info("Calling external API: {}", fullUrl);
LOGGER.info("[{}] Calling external BBPS API | URL={}", apiName, fullUrl);
Map<String, String> responseMap = httpService.getRequest(fullUrl, headers);
String responseData = responseMap.get("data");
LOGGER.info("checkTxnStatus: {}", responseData);
@@ -483,6 +503,7 @@ public class ComplainServiceImpl implements ComplainService {
LOGGER.info("Current Complaint ReOpen Status: {}", status);
helper.updateInboundLogSuccess(inboundLog, responseData, generalResp.getStatus());
LOGGER.info("[{}] End Txn Status: {}", apiName, generalResp.getStatus());
return new ResponseModel(generalResp.getMessage(), generalResp.getStatus(),
Integer.parseInt(generalResp.getStatusCode()), responseWrapper);
} catch (JsonProcessingException e) {
@@ -499,14 +520,18 @@ public class ComplainServiceImpl implements ComplainService {
LOGGER.info("Fetching All Complaint for status Type={} and reqId={} ", request.getStatusType(),
request.getReqId());
String apiName = "View_All_Complaint_By_Status_Type";
String txnId = helper.generateTxnId(15);
String reqId = request.getReqId();
String mid = request.getMid();
String statusType = request.getStatusType();
LOGGER.info("[{}] START | reqId={} | mid={} | statusType={}", apiName, reqId, mid, statusType);
helper.validateMerchant(request.getMid());
String txnId = helper.generateTxnId(15);
String fullUrl = complainDataUrl + BBPSConstant.VIEW_ALL_COMPLAINTS_BASE + "?pageNo=" + request.getPageNo()
+ "&pageSize=" + request.getPageSize() + "&statusType=" + request.getStatusType() + "&ticketType="
+ request.getTicketType();
helper.validateMerchant(request.getMid());
BharatConnectMaster headersData = beneficiaryDetailsRepository.findByOrgId("ORG001");
HttpHeaders headers = new HttpHeaders();
headers.set("x-digiledge-key", headersData.getXDigiledgeKey());
@@ -518,17 +543,17 @@ public class ComplainServiceImpl implements ComplainService {
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
String requestJson = helper.convertObjectToJson(request);
InboundTraceLog inboundLog = helper.createInboundLog(reqId, txnId, apiName, request.getMid(), "POST",
InboundTraceLog inboundLog = helper.createInboundLog(reqId, txnId, apiName, request.getMid(), "GET",
requestJson);
OutboundTraceLog outboundLog = helper.createOutboundLog(txnId, reqId, apiName, fullUrl, "GET",
request.getStatusType());
LOGGER.debug("Outbound log created successfully for Complaint : {}", fullUrl);
try {
LOGGER.info("Calling external API: {}", fullUrl);
LOGGER.info("[{}] Calling external API | URL={}", apiName, fullUrl);
Map<String, String> responseMap = httpService.getRequest(fullUrl, headers);
String responseData = responseMap.get("data");
LOGGER.info("Response: {}", responseData);
LOGGER.info("[{}] API Response received", apiName);
helper.updateOutboundLogResponse(outboundLog, responseData);
@@ -551,7 +576,7 @@ public class ComplainServiceImpl implements ComplainService {
LOGGER.info("Current Complaint ReOpen Status: {}", status);
String saveComplaint = mapperHelper.saveAllComplaints(responseWrapper, reqId, txnId);
LOGGER.info("Complaint ReOpen data saved successfully for Count History: {}", saveComplaint);
LOGGER.info("[{}] Complaint records saved into DB | count={}", apiName, saveComplaint);
return new ResponseModel(generalResp.getMessage(), generalResp.getStatus(),
Integer.parseInt(generalResp.getStatusCode()), responseWrapper);