update complaint

This commit is contained in:
Mohd-Arham
2025-12-08 10:05:29 +05:30
parent 1e38efe3c0
commit 7e7b8ae9cf
12 changed files with 92 additions and 29 deletions
@@ -2,13 +2,14 @@ package com.billpaymentservice.bbps.config;
import java.security.cert.X509Certificate;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestClient;
@Configuration
@@ -16,24 +17,31 @@ public class RestClientConfig {
@Bean
public RestClient restClient() throws Exception {
// ✅ Create trust all SSL context
SSLContext sslContext = SSLContext.getInstance("TLS");
// Create Trust-All SSL context
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
public void checkClientTrusted(X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(X509Certificate[] certs, String authType) {
}
public void checkClientTrusted(X509Certificate[] certs, String authType) {}
public void checkServerTrusted(X509Certificate[] certs, String authType) {}
}
};
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
// ✅ Create RestClient with custom SSL context
// Use JDK's Simple HTTP client with custom SSL context
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setBufferRequestBody(false);
// Apply SSL context to HttpsURLConnection globally
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> true);
return RestClient.builder()
.requestFactory(new HttpComponentsClientHttpRequestFactory())
.requestFactory(requestFactory)
.build();
}
}
@@ -1,10 +1,13 @@
package com.billpaymentservice.bbps.dto.request;
import jakarta.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class PollBackRequest extends BaseClass{
private String orderId;
public class PollBackRequest extends BaseClass {
@NotBlank(message = "order Id not be null")
private String orderId;
}
@@ -17,7 +17,7 @@ import lombok.Setter;
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "Bharat_connect_master")
@Table(name = "bharat_connect_master")
public class BharatConnectMaster extends Auditable<String> {
@Id
@@ -7,6 +7,8 @@ import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
@@ -71,4 +73,8 @@ public class ComplainStatus extends Auditable<String> {
@Column(name = "user_id")
private String userId;
@ManyToOne
@JoinColumn(name = "complaint_response_id")
private ComplaintResponseEntity complaintResponse;
}
@@ -7,6 +7,8 @@ import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -46,4 +48,8 @@ public class ComplaintHistory extends Auditable<String> {
@Column(name = "user_id")
private String userId;
@ManyToOne
@JoinColumn(name = "complaint_response_id")
private ComplaintResponseEntity complaintResponse;
}
@@ -1,12 +1,16 @@
package com.billpaymentservice.bbps.entites;
import java.util.List;
import com.billpaymentservice.bbps.audit.Auditable;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
@@ -68,4 +72,16 @@ public class ComplaintResponseEntity extends Auditable<String> {
@Column(name = "user_id")
private String userId;
@OneToMany(mappedBy = "complaintResponse", cascade = CascadeType.ALL, orphanRemoval = false)
private List<ComplainStatus> complaintStatusList;
@OneToMany(mappedBy = "complaintResponse", cascade = CascadeType.ALL, orphanRemoval = false)
private List<ComplaintHistory> historyList;
@OneToMany(mappedBy = "complaintResponse", cascade = CascadeType.ALL, orphanRemoval = false)
private List<ComplaintStatusDetails> statusDetailsList;
@OneToMany(mappedBy = "complaintResponse", cascade = CascadeType.ALL, orphanRemoval = false)
private List<ViewAllComplaintTicketStatusDetails> viewAllList;
}
@@ -7,6 +7,8 @@ import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
@@ -87,4 +89,8 @@ public class ComplaintStatusDetails extends Auditable<String> {
@Column(name = "biller_name")
private String billerName;
@ManyToOne
@JoinColumn(name = "complaint_response_id")
private ComplaintResponseEntity complaintResponse;
}
@@ -7,6 +7,8 @@ import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
@@ -86,4 +88,8 @@ public class ViewAllComplaintTicketStatusDetails extends Auditable<String> {
@Column(name = "biller_name")
private String billerName;
@ManyToOne
@JoinColumn(name = "complaint_response_id")
private ComplaintResponseEntity complaintResponse;
}
@@ -9,6 +9,11 @@ import com.billpaymentservice.bbps.entites.BBPSMastersData;
@Repository
public interface BBPSMasterDataRepo extends JpaRepository<BBPSMastersData, Long> {
@Query("from BBPSMastersData where mid = ?1 and isDeleted = false")
public BBPSMastersData findByMid(String mid);
// @Query("from BBPSMastersData where mid = ?1 and isDeleted = false")
// public BBPSMastersData findByMid(String mid);
@Query(value = "SELECT * FROM bbps_master_data WHERE mid = ?1 AND is_deleted = false",
nativeQuery = true)
BBPSMastersData findByMid(String mid);
}
@@ -1,12 +1,17 @@
package com.billpaymentservice.bbps.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.billpaymentservice.bbps.entites.BharatConnectMaster;
@Repository
public interface BharatConnectMasterRepository extends JpaRepository<BharatConnectMaster,String>
{
public BharatConnectMaster findByOrgId(String orgId);
public interface BharatConnectMasterRepository extends JpaRepository<BharatConnectMaster, String> {
// public BharatConnectMaster findByOrgId(String orgId);
@Query(value = "SELECT * FROM bharat_connect_master WHERE org_id = :orgId", nativeQuery = true)
BharatConnectMaster findByOrgId(@Param("orgId") String orgId);
}
@@ -5,6 +5,7 @@ import java.time.LocalDateTime;
import java.util.Date;
import java.util.Random;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders;
@@ -71,19 +72,20 @@ public class Helper {
BBPSMastersData merchantValidation = bbpsMasterDataRepo.findByMid(mid);
if (merchantValidation == null) {
LOGGER.warn("Merchant not found for MID: {}", mid);
throw new CustomException("Merchant not found by id", "FAILED", BBPSConstant.BADREQUEST, null);
LOGGER.warn("Merchant not found for MID: {}", mid);
throw new CustomException("Merchant not found by id", "FAILED", BBPSConstant.BADREQUEST, null);
}
if (merchantValidation.getApiKey() == null && merchantValidation.getSecreteKey() == null) {
LOGGER.warn("Merchant BBPS service is not active MID: {}", mid);
throw new CustomException("Merchant BBPS Service is not active by mid", "FAILED", BBPSConstant.BADREQUEST,
null);
}
if (StringUtils.isBlank(merchantValidation.getApiKey())
&& StringUtils.isBlank(merchantValidation.getSecreteKey())) {
LOGGER.warn("Merchant BBPS service is not active MID: {}", mid);
throw new CustomException("Merchant BBPS Service is not active by mid",
"FAILED", BBPSConstant.BADREQUEST, null);
}
if (!Boolean.TRUE.equals(merchantValidation.getIsActive())) {
LOGGER.warn("Merchant inactive for MID: {}", mid);
throw new CustomException("Merchant is inactive", "FAILED", BBPSConstant.BADREQUEST, null);
LOGGER.warn("Merchant inactive for MID: {}", mid);
throw new CustomException("Merchant is inactive", "FAILED", BBPSConstant.BADREQUEST, null);
}
LOGGER.info("Merchant is valid and active for MID: {}", mid);
@@ -20,9 +20,9 @@ swagger.server.description=Local Development Server
# DataSource
spring.datasource.url=jdbc:postgresql://localhost:5432/BBPS
spring.datasource.username=postgres
#spring.datasource.password=UAT@DB_2025
spring.datasource.password=UAT@DB_2025
spring.datasource.password=himanshu@123
#spring.datasource.password=himanshu@123
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.type=com.zaxxer.hikari.HikariDataSource