Browse Source

changes in acknowledgement and controller

master
yoganandhan 9 months ago
parent
commit
a59c2869fd
  1. 3
      .mvn/wrapper/maven-wrapper.properties
  2. 5
      src/main/java/com/gcc/flagpoles/configuration/AppConfig.java
  3. 83
      src/main/java/com/gcc/flagpoles/configuration/DataSourceConfig.java
  4. 9
      src/main/java/com/gcc/flagpoles/controller/ApiController.java
  5. 51
      src/main/java/com/gcc/flagpoles/controller/BuildingPlanController.java
  6. 16
      src/main/java/com/gcc/flagpoles/service/BookingService.java
  7. 243
      src/main/java/com/gcc/flagpoles/service/BuildingPlanService.java
  8. 24
      src/main/java/com/gcc/flagpoles/service/DropDownService.java
  9. 19
      src/main/java/com/gcc/flagpoles/service/PaymentService.java
  10. 27
      src/main/java/com/gcc/flagpoles/service/RefundService.java
  11. 123
      src/main/java/com/gcc/flagpoles/service/RequestService.java
  12. 1
      src/main/resources/application.properties
  13. 2
      src/main/resources/templates/modules/flagpolesregistration/requestform.html
  14. 13
      src/test/java/com/gcc/flagpoles/FlagpolesApplicationTests.java

3
.mvn/wrapper/maven-wrapper.properties

@ -1,3 +0,0 @@
wrapperVersion=3.3.4
distributionType=only-script
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip

5
src/main/java/com/gcc/flagpoles/configuration/AppConfig.java

@ -11,11 +11,6 @@ import org.springframework.web.client.RestTemplate;
@ConfigurationProperties(prefix = "app")
public class AppConfig {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
private String title;
private String baseUrl;
private String getOtpUrl;

83
src/main/java/com/gcc/flagpoles/configuration/DataSourceConfig.java

@ -0,0 +1,83 @@
package com.gcc.flagpoles.configuration;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.RestTemplate;
@Configuration
@EnableTransactionManagement
public class DataSourceConfig {
// For Local
private static final String host = "localhost";
private static final String dbpassword = "root";
// For AWS
// private static String host =
// "gcc-facial-db-instance-1.cf48eqcciziq.ap-south-1.rds.amazonaws.com:3306";
// private static String dbpassword = "gcc-facial-password";
@Configuration
public static class MyDataSourceConfig {
@Primary
@Bean(name = "mysqlgccFlagPoleDataSource")
public DataSource mysqlgccFlagPoleDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://" + host + "/gcc_flag_pole");
dataSource.setUsername("root");
dataSource.setPassword(dbpassword);
return dataSource;
}
@Bean(name = "mysqlgccFlagPoleTransactionManager")
public PlatformTransactionManager mysqlgccFlagPoleTransactionManager(
@Qualifier("mysqlgccFlagPoleDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "mysqlerpBuildingPlanTransactionManager")
public PlatformTransactionManager mysqlerpBuildingPlanTransactionManager(
@Qualifier("mysqlerpBuildingPlanDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "mysqlerpBuildingPlanDataSource")
public DataSource mysqlerpBuildingPlanDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://" + host + "/erp_building_plan");
dataSource.setUsername("root");
dataSource.setPassword(dbpassword);
return dataSource;
}
// @Bean(name = "awserpBuildingPlanDataSource")
// public DataSource awserpBuildingPlanDataSource() {
// DriverManagerDataSource dataSource = new DriverManagerDataSource();
// dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
// dataSource.setUrl("jdbc:mysql://" + awshost + "/erp_building_plan");
// dataSource.setUsername("root");
// dataSource.setPassword(awsdbpassword);
// return dataSource;
// }
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
}

9
src/main/java/com/gcc/flagpoles/controller/ApiController.java

@ -88,9 +88,9 @@ public class ApiController {
String MobileNo = mobile;
System.out.print("\n MobileNo---:" + mobile);
Random rand = new Random();
// int otp = rand.nextInt(90000) + 10000;
int otp = rand.nextInt(90000) + 10000;
int otp = 22222;
//int otp = 22222;
System.out.print("\n otp---:" + otp);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd-MMM-yyyy%20HH:mm");
LocalDateTime now = LocalDateTime.now();
@ -178,9 +178,9 @@ public class ApiController {
String MobileNo = mobile;
System.out.print("\n MobileNo---:" + mobile);
Random rand = new Random();
// int otp = rand.nextInt(90000) + 10000;
int otp = rand.nextInt(90000) + 10000;
int otp = 22222;
//int otp = 22222;
System.out.print("\n otp---:" + otp);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd-MMM-yyyy%20HH:mm");
LocalDateTime now = LocalDateTime.now();
@ -638,7 +638,6 @@ public class ApiController {
// }
@PostMapping("/Confirm")
@Transactional
public ResponseEntity<?> confirmPayment(@RequestBody Map<String, Object> data) {
String refId = data.get("id").toString();

51
src/main/java/com/gcc/flagpoles/controller/BuildingPlanController.java

@ -0,0 +1,51 @@
package com.gcc.flagpoles.controller;
import java.sql.Timestamp;
import java.time.LocalDate;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import org.springframework.http.MediaType;
import com.gcc.flagpoles.service.BuildingPlanService;
@RestController
@RequestMapping("/flagpolesregistration/buildingPlan/api")
public class BuildingPlanController {
private BuildingPlanService buildingPlanService;
@Autowired
public BuildingPlanController(BuildingPlanService buildingPlanService) {
this.buildingPlanService = buildingPlanService;
}
@PostMapping(value = "/save", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public int saveBuildingPlan(@RequestBody Map<String, Object> buildingPlan) {
return buildingPlanService.awsSaveData(buildingPlan);
}
@PostMapping(value = "/saveLastRecords", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public int saveLastRecords(@RequestBody Map<String, Object> buildingPlan) {
return buildingPlanService.saveLastRecords(buildingPlan);
}
@GetMapping("getLastRecord")
public int getLastRecord(){
return buildingPlanService.getLastRecord();
}
@PostMapping(value = "/update", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public int updateBuildingPlan(@RequestBody Map<String, Object> buildingPlan) {
return buildingPlanService.updateBuildingPlan(buildingPlan);
}
}

16
src/main/java/com/gcc/flagpoles/service/BookingService.java

@ -2,18 +2,30 @@ package com.gcc.flagpoles.service;
import java.util.Map;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
public class BookingService {
@Autowired
private JdbcTemplate jdbcTemplate;
private JdbcTemplate mysqlJdbcTemplate;
@Autowired
public void setMysqlDataSource(@Qualifier("mysqlgccFlagPoleDataSource") DataSource mysqlDataSource) {
System.out.println("Setting MySQL DataSource: " + mysqlDataSource);
this.mysqlJdbcTemplate = new JdbcTemplate(mysqlDataSource);
System.out.println("MySQL JdbcTemplate created: " + this.mysqlJdbcTemplate);
}
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public Map<String, Object> getTempBookingByTempId(int tempbookid) {
String sql = "SELECT * FROM temp_request_details where tempbookid = ?";
return jdbcTemplate.queryForMap(sql, tempbookid);
return mysqlJdbcTemplate.queryForMap(sql, tempbookid);
}
}

243
src/main/java/com/gcc/flagpoles/service/BuildingPlanService.java

@ -0,0 +1,243 @@
package com.gcc.flagpoles.service;
import java.sql.Timestamp;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Map;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
public class BuildingPlanService {
@Autowired
private JdbcTemplate mysqlJdbcTemplate;
@Autowired
public void setMysqlDataSource(@Qualifier("mysqlerpBuildingPlanDataSource") DataSource mysqlDataSource) {
System.out.println("Setting MySQL DataSource: " + mysqlDataSource);
this.mysqlJdbcTemplate = new JdbcTemplate(mysqlDataSource);
System.out.println("MySQL JdbcTemplate created: " + this.mysqlJdbcTemplate);
}
@Transactional(transactionManager = "mysqlerpBuildingPlanTransactionManager")
public int awsSaveData(Map<String, Object> buildingPlan) {
String psn_num = (String) buildingPlan.get("PSN_NUM");
System.out.println(psn_num);
LocalDateTime application_date = toTimestamp(buildingPlan.get("APPLICATION_DATE"));
String ba_num = (String) buildingPlan.get("BA_NUM");
LocalDateTime appv_date = toTimestamp(buildingPlan.get("APPV_DATE"));
String service_type = (String) buildingPlan.get("SERVICE_TYPE");
String sital_areasqmt = buildingPlan.get("SITAL_AREASQMT") != null
? buildingPlan.get("SITAL_AREASQMT").toString()
: null;
String sital_areasqft = buildingPlan.get("SITAL_AREASQFT") != null
? buildingPlan.get("SITAL_AREASQFT").toString()
: null;
String description = (String) buildingPlan.get("DESCRIPTION");
String zone = (String) buildingPlan.get("ZONE");
String ward = (String) buildingPlan.get("WARD");
String area = (String) buildingPlan.get("AREA");
String loc = (String) buildingPlan.get("LOC");
String street = (String) buildingPlan.get("STREET");
String owner_name = (String) buildingPlan.get("OWNER_NAME");
String mobilephone = (String) buildingPlan.get("MOBILEPHONE");
String fathername = (String) buildingPlan.get("FATHERNAME");
String plotdoornumber = (String) buildingPlan.get("PLOTDOORNUMBER");
String plotblocknumber = (String) buildingPlan.get("PLOTBLOCKNUMBER");
String plotnumber = (String) buildingPlan.get("PLOTNUMBER");
String plotsurveynumber = (String) buildingPlan.get("PLOTSURVEYNUMBER");
String plotlandmark = (String) buildingPlan.get("PLOTLANDMARK");
String citytown = (String) buildingPlan.get("CITYTOWN");
String pincode = buildingPlan.get("PINCODE") != null
? buildingPlan.get("PINCODE").toString()
: null;
String sql = "INSERT INTO bpa_application_data (psn_num, application_date, ba_num, appv_date, service_type, sital_areasqmt, sital_areasqft, description, zone, ward, area, loc, street, owner_name, mobilephone, fathername, plotdoornumber, plotblocknumber, plotnumber, plotsurveynumber, plotlandmark, citytown, pincode) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
try {
return mysqlJdbcTemplate.update(sql, psn_num, application_date, ba_num, appv_date, service_type,
sital_areasqmt, sital_areasqft, description, zone, ward, area, loc, street, owner_name, mobilephone,
fathername, plotdoornumber, plotblocknumber, plotnumber, plotsurveynumber, plotlandmark, citytown,
pincode);
} catch (Exception e) {
e.printStackTrace();
return 0;
}
}
private LocalDateTime toTimestamp(Object value) {
if (value == null) {
return null;
}
try {
if (value instanceof String) {
String s = value.toString();
return toLocalDateTime(s);
}
throw new IllegalArgumentException(
"Unsupported date type: " + value.getClass()
);
} catch (Exception e) {
throw new IllegalArgumentException(
"Invalid datetime format: " + value, e
);
}
}
public LocalDateTime toLocalDateTime(String value) {
if (value.endsWith("Z") || value.contains("+")) {
return Instant.parse(value)
.atZone(ZoneId.of("Asia/Kolkata"))
.toLocalDateTime();
}
return LocalDateTime.parse(value);
}
public int getLastRecord() {
String sql = "SELECT IFNULL(MAX(id), 0) FROM bpa_application_data";
try {
return mysqlJdbcTemplate.queryForObject(sql, Integer.class);
} catch (Exception e) {
e.printStackTrace();
return 0;
}
}
public int saveLastRecords(Map<String, Object> buildingPlan) {
int id = (Integer) buildingPlan.get("id");
String psn_num = (String) buildingPlan.get("psn_num");
System.out.println(psn_num);
LocalDateTime application_date = toTimestamp(buildingPlan.get("application_date"));
String ba_num = (String) buildingPlan.get("ba_num");
LocalDateTime appv_date = toTimestamp(buildingPlan.get("appv_date"));
String service_type = (String) buildingPlan.get("service_type");
String sital_areasqmt = buildingPlan.get("sital_areasqmt") != null
? buildingPlan.get("sital_areasqmt").toString()
: null;
String sital_areasqft = buildingPlan.get("sital_areasqft") != null
? buildingPlan.get("sital_areasqft").toString()
: null;
String description = (String) buildingPlan.get("description");
String zone = (String) buildingPlan.get("zone");
String ward = (String) buildingPlan.get("ward");
String area = (String) buildingPlan.get("area");
String loc = (String) buildingPlan.get("loc");
String street = (String) buildingPlan.get("street");
String owner_name = (String) buildingPlan.get("owner_name");
String mobilephone = (String) buildingPlan.get("mobilephone");
String fathername = (String) buildingPlan.get("fathername");
String plotdoornumber = (String) buildingPlan.get("plotdoornumber");
String plotblocknumber = (String) buildingPlan.get("plotblocknumber");
String plotnumber = (String) buildingPlan.get("plotnumber");
String plotsurveynumber = (String) buildingPlan.get("plotsurveynumber");
String plotlandmark = (String) buildingPlan.get("plotlandmark");
String citytown = (String) buildingPlan.get("citytown");
String pincode = buildingPlan.get("pincode") != null
? buildingPlan.get("pincode").toString()
: null;
String sql = "INSERT INTO bpa_application_data (id, psn_num, application_date, ba_num, appv_date, service_type, sital_areasqmt, sital_areasqft, description, zone, ward, area, loc, street, owner_name, mobilephone, fathername, plotdoornumber, plotblocknumber, plotnumber, plotsurveynumber, plotlandmark, citytown, pincode) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
try {
return mysqlJdbcTemplate.update(sql, id, psn_num, application_date, ba_num, appv_date, service_type,
sital_areasqmt, sital_areasqft, description, zone, ward, area, loc, street, owner_name, mobilephone,
fathername, plotdoornumber, plotblocknumber, plotnumber, plotsurveynumber, plotlandmark, citytown,
pincode);
} catch (Exception e) {
e.printStackTrace();
return 0;
}
}
@Transactional(transactionManager = "mysqlerpBuildingPlanTransactionManager")
public int updateBuildingPlan(Map<String, Object> buildingPlan) {
String psn_num = (String) buildingPlan.get("PSN_NUM");
System.out.println("PSN"+psn_num);
LocalDateTime application_date = toTimestamp(buildingPlan.get("APPLICATION_DATE"));
String ba_num = (String) buildingPlan.get("BA_NUM");
LocalDateTime appv_date = toTimestamp(buildingPlan.get("APPV_DATE"));
String service_type = (String) buildingPlan.get("SERVICE_TYPE");
String sital_areasqmt = buildingPlan.get("SITAL_AREASQMT") != null
? buildingPlan.get("SITAL_AREASQMT").toString()
: null;
String sital_areasqft = buildingPlan.get("SITAL_AREASQFT") != null
? buildingPlan.get("SITAL_AREASQFT").toString()
: null;
String description = (String) buildingPlan.get("DESCRIPTION");
String zone = (String) buildingPlan.get("ZONE");
String ward = (String) buildingPlan.get("WARD");
String area = (String) buildingPlan.get("AREA");
String loc = (String) buildingPlan.get("LOC");
String street = (String) buildingPlan.get("STREET");
String owner_name = (String) buildingPlan.get("OWNER_NAME");
String mobilephone = (String) buildingPlan.get("MOBILEPHONE");
String fathername = (String) buildingPlan.get("FATHERNAME");
String plotdoornumber = (String) buildingPlan.get("PLOTDOORNUMBER");
String plotblocknumber = (String) buildingPlan.get("PLOTBLOCKNUMBER");
String plotnumber = (String) buildingPlan.get("PLOTNUMBER");
String plotsurveynumber = (String) buildingPlan.get("PLOTSURVEYNUMBER");
String plotlandmark = (String) buildingPlan.get("PLOTLANDMARK");
String citytown = (String) buildingPlan.get("CITYTOWN");
String pincode = buildingPlan.get("PINCODE") != null
? buildingPlan.get("PINCODE").toString()
: null;
String sql =
"UPDATE bpa_application_data SET " +
"application_date = ?, " +
"ba_num = ?, " +
"appv_date = ?, " +
"service_type = ?, " +
"sital_areasqmt = ?, " +
"sital_areasqft = ?, " +
"description = ?, " +
"zone = ?, " +
"ward = ?, " +
"area = ?, " +
"loc = ?, " +
"street = ?, " +
"owner_name = ?, " +
"mobilephone = ?, " +
"fathername = ?, " +
"plotdoornumber = ?, " +
"plotblocknumber = ?, " +
"plotnumber = ?, " +
"plotsurveynumber = ?, " +
"plotlandmark = ?, " +
"citytown = ?, " +
"pincode = ? " +
"WHERE psn_num = ?";
try {
return mysqlJdbcTemplate.update(sql, application_date, ba_num, appv_date, service_type, sital_areasqmt, sital_areasqft, description, zone, ward,
area, loc, street, owner_name, mobilephone, fathername, plotdoornumber, plotblocknumber, plotnumber, plotsurveynumber, plotlandmark, citytown, pincode, psn_num);
} catch (Exception e) {
e.printStackTrace();
return 0;
}
}
}

24
src/main/java/com/gcc/flagpoles/service/DropDownService.java

@ -8,8 +8,11 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.http.ResponseEntity;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@ -24,7 +27,14 @@ import com.fasterxml.jackson.databind.ObjectMapper;
public class DropDownService {
@Autowired
private JdbcTemplate jdbcTemplate;
private JdbcTemplate mysqlJdbcTemplate;
@Autowired
public void setMysqlDataSource(@Qualifier("mysqlgccFlagPoleDataSource") DataSource mysqlDataSource) {
System.out.println("Setting MySQL DataSource: " + mysqlDataSource);
this.mysqlJdbcTemplate = new JdbcTemplate(mysqlDataSource);
System.out.println("MySQL JdbcTemplate created: " + this.mysqlJdbcTemplate);
}
// @Autowired
// private RestTemplate restTemplate;
@ -39,17 +49,17 @@ public class DropDownService {
public List<Map<String, Object>> getPoleMaterialList() {
String sql = " SELECT * FROM pole_material where is_active = '1' ";
return jdbcTemplate.queryForList(sql);
return mysqlJdbcTemplate.queryForList(sql);
}
public List<Map<String, Object>> getEventTypes() {
String sql = " SELECT * FROM event_type where is_active = '1' ";
return jdbcTemplate.queryForList(sql);
return mysqlJdbcTemplate.queryForList(sql);
}
public List<Map<String, Object>> getFlagMaterialList() {
String sql = "SELECT * FROM flag_material where is_active = '1' ";
return jdbcTemplate.queryForList(sql);
return mysqlJdbcTemplate.queryForList(sql);
}
public Map<String, Object> getZoneAndWardByStreet(String streetName) {
@ -150,7 +160,7 @@ public class DropDownService {
public List<Map<String, Object>> getAllcharges() {
String sql = "SELECT * FROM waste_collection_charges where is_active = 1 ";
return jdbcTemplate.queryForList(sql);
return mysqlJdbcTemplate.queryForList(sql);
}
// public Map<String, Object> fetchZones() throws Exception {
@ -172,12 +182,12 @@ public class DropDownService {
// get zones
public List<Map<String, Object>> getZonesList() {
String sql = " SELECT id,zone_name from zones where is_active = 1 ";
return jdbcTemplate.queryForList(sql);
return mysqlJdbcTemplate.queryForList(sql);
}
// get wardsby zone id
public List<Map<String, Object>> getWardsByZoneId(int zoneId) {
String sql = "SELECT id, ward_name FROM wards WHERE zone_id = ? AND is_active = 1 ";
return jdbcTemplate.queryForList(sql, zoneId);
return mysqlJdbcTemplate.queryForList(sql, zoneId);
}
}

19
src/main/java/com/gcc/flagpoles/service/PaymentService.java

@ -1,6 +1,7 @@
package com.gcc.flagpoles.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementCreator;
@ -19,11 +20,19 @@ import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
@Service
public class PaymentService {
@Autowired
private JdbcTemplate mysqlJdbcTemplate;
@Autowired
private JdbcTemplate jdbcTemplate;
public void setMysqlDataSource(@Qualifier("mysqlgccFlagPoleDataSource") DataSource mysqlDataSource) {
System.out.println("Setting MySQL DataSource: " + mysqlDataSource);
this.mysqlJdbcTemplate = new JdbcTemplate(mysqlDataSource);
System.out.println("MySQL JdbcTemplate created: " + this.mysqlJdbcTemplate);
}
@Autowired
private RequestService requestService;
@ -31,7 +40,7 @@ public class PaymentService {
@Autowired
private WhatsappMessageService whatsappMessageService;
@Transactional
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public int saveorderLog(
String order_id,
@ -46,7 +55,7 @@ public class PaymentService {
KeyHolder keyHolder = new GeneratedKeyHolder();
try {
int affectedRows = jdbcTemplate.update(new PreparedStatementCreator() {
int affectedRows = mysqlJdbcTemplate.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
PreparedStatement ps = connection.prepareStatement(sqlQuery, new String[] { "id" });
@ -80,7 +89,7 @@ public class PaymentService {
return 0;
}
@Transactional
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public int savePayment(String totalAmount,
String payment_id,
String payment_orderid,
@ -97,7 +106,7 @@ public class PaymentService {
KeyHolder keyHolder = new GeneratedKeyHolder();
try {
int affectedRows = jdbcTemplate.update(new PreparedStatementCreator() {
int affectedRows = mysqlJdbcTemplate.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
PreparedStatement ps = connection.prepareStatement(sqlQuery, new String[] { "id" });

27
src/main/java/com/gcc/flagpoles/service/RefundService.java

@ -9,6 +9,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
import com.gcc.flagpoles.constants.AppConstants;
import com.razorpay.RazorpayClient;
import com.razorpay.RazorpayException;
@ -16,6 +18,7 @@ import com.razorpay.Refund;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.http.ResponseEntity;
@ -36,18 +39,27 @@ public class RefundService {
BookingService bookingService;
@Autowired
private JdbcTemplate jdbcTemplate;
private JdbcTemplate mysqlJdbcTemplate;
@Autowired
public void setMysqlDataSource(@Qualifier("mysqlgccFlagPoleDataSource") DataSource mysqlDataSource) {
System.out.println("Setting MySQL DataSource: " + mysqlDataSource);
this.mysqlJdbcTemplate = new JdbcTemplate(mysqlDataSource);
System.out.println("MySQL JdbcTemplate created: " + this.mysqlJdbcTemplate);
}
@Transactional("mysqlgccFlagPoleTransactionManager")
public List<Map<String, Object>> refund(int refund_id) {
String refundsql = "select * from refund_info where refund_id=?";
return jdbcTemplate.queryForList(refundsql.toString(), refund_id);
return mysqlJdbcTemplate.queryForList(refundsql.toString(), refund_id);
}
@Transactional("mysqlgccFlagPoleTransactionManager")
public Map<String, Object> getBookingForRefund(String refId) {
List<Map<String, Object>> list = jdbcTemplate.queryForList("""
List<Map<String, Object>> list = mysqlJdbcTemplate.queryForList("""
SELECT
urd.id AS booking_id,
urd.refid,
@ -74,6 +86,7 @@ public class RefundService {
return list.get(0);
}
@Transactional("mysqlgccFlagPoleTransactionManager")
public void validateRefundEligibility(Map<String, Object> booking) {
Object eventDateObj = booking.get("event_date");
@ -104,6 +117,7 @@ public class RefundService {
}
}
@Transactional("mysqlgccFlagPoleTransactionManager")
public Refund initiateRazorpayRefund(
String paymentId,
double amount) throws RazorpayException {
@ -137,20 +151,21 @@ public class RefundService {
reason);
// 2️⃣ Update payment table
jdbcTemplate.update("""
mysqlJdbcTemplate.update("""
UPDATE payment
SET paymentstatus = 'refunded'
WHERE order_id = ?
""", orderId);
// 3️⃣ Update booking status
jdbcTemplate.update("""
mysqlJdbcTemplate.update("""
UPDATE user_request_details
SET booking_status = 'CANCELLED'
WHERE refid = ?
""", refId);
}
@Transactional("mysqlgccFlagPoleTransactionManager")
public int saveRefund(int bookingId, int pid, double refundAmount, String refundId, String refundStatus,
String desc) {
@ -172,7 +187,7 @@ public class RefundService {
System.out.println(" desc = " + desc);
try {
int affectedRows = jdbcTemplate.update(new PreparedStatementCreator() {
int affectedRows = mysqlJdbcTemplate.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection connection)
throws SQLException {

123
src/main/java/com/gcc/flagpoles/service/RequestService.java

@ -12,7 +12,10 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.jdbc.support.KeyHolder;
@ -24,7 +27,14 @@ import org.springframework.util.MultiValueMap;
public class RequestService {
@Autowired
private JdbcTemplate jdbcTemplate;
private JdbcTemplate mysqlJdbcTemplate;
@Autowired
public void setMysqlDataSource(@Qualifier("mysqlgccFlagPoleDataSource") DataSource mysqlDataSource) {
System.out.println("Setting MySQL DataSource: " + mysqlDataSource);
this.mysqlJdbcTemplate = new JdbcTemplate(mysqlDataSource);
System.out.println("MySQL JdbcTemplate created: " + this.mysqlJdbcTemplate);
}
@Autowired
private SMSService smsService;
@ -38,7 +48,7 @@ public class RequestService {
}
}
@Transactional
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public String saveFlagPoleRequest(
Map<String, Object> applicant,
Map<String, Object> event,
@ -68,7 +78,7 @@ public class RequestService {
// Integer deposit = 50; // Default deposit
// Insert into user_request_details
jdbcTemplate.update(connection -> {
mysqlJdbcTemplate.update(connection -> {
PreparedStatement ps = connection.prepareStatement(insertRequestSql, Statement.RETURN_GENERATED_KEYS);
ps.setString(1, applicant.get("name").toString());
@ -99,7 +109,7 @@ public class RequestService {
// 🔥 Update user_request_details with refId
// ================================================
String updateRefSql = "UPDATE user_request_details SET refid = ? WHERE id = ?";
jdbcTemplate.update(updateRefSql, refId, userReqId);
mysqlJdbcTemplate.update(updateRefSql, refId, userReqId);
// SQL for inserting street details (refid added)
String insertStreetSql = """
@ -112,7 +122,7 @@ public class RequestService {
// Insert each street record including refid
for (Map<String, Object> s : streets) {
jdbcTemplate.update(insertStreetSql,
mysqlJdbcTemplate.update(insertStreetSql,
s.get("streetName"),
s.get("lat"),
s.get("long"),
@ -133,7 +143,7 @@ public class RequestService {
return refId; // or return refId if required
}
@Transactional
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public String saveTempBooking(
Map<String, Object> applicant,
Map<String, Object> event,
@ -142,7 +152,7 @@ public class RequestService {
// 1️⃣ Insert TEMP booking (without refid)
KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(con -> {
mysqlJdbcTemplate.update(con -> {
PreparedStatement ps = con.prepareStatement("""
INSERT INTO temp_booking
(
@ -183,7 +193,7 @@ public class RequestService {
String tempRefId = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")) + tempId;
// Update temp_booking with refid
jdbcTemplate.update("""
mysqlJdbcTemplate.update("""
UPDATE temp_booking
SET refid = ?
WHERE id = ?
@ -191,7 +201,7 @@ public class RequestService {
// Insert TEMP street details
for (Map<String, Object> s : streets) {
jdbcTemplate.update("""
mysqlJdbcTemplate.update("""
INSERT INTO temp_street_details
(
temp_refid,
@ -228,11 +238,11 @@ public class RequestService {
return tempRefId;
}
@Transactional
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public String moveTempToFinal(String tempRefId) {
// Insert into FINAL booking table ONLY IF PAYMENT COMPLETED
int inserted = jdbcTemplate.update("""
int inserted = mysqlJdbcTemplate.update("""
INSERT INTO user_request_details
(
applicant_name,
@ -275,19 +285,19 @@ public class RequestService {
"Payment not completed or temp record not found for refId: " + tempRefId);
}
Integer newId = jdbcTemplate.queryForObject(
Integer newId = mysqlJdbcTemplate.queryForObject(
"SELECT LAST_INSERT_ID()", Integer.class);
String finalRefId = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")) + newId;
jdbcTemplate.update("""
mysqlJdbcTemplate.update("""
UPDATE user_request_details
SET refid = ?
WHERE id = ?
""", finalRefId, newId);
// Insert streets
jdbcTemplate.update("""
mysqlJdbcTemplate.update("""
INSERT INTO street_details
(
street_name, latitude, longitude, zone, ward,
@ -305,14 +315,14 @@ public class RequestService {
""", newId, finalRefId, tempRefId);
// Mark TEMP inactive
jdbcTemplate.update("""
mysqlJdbcTemplate.update("""
UPDATE temp_booking
SET is_active = 0,
is_delete = 1
WHERE refid = ?
""", tempRefId);
jdbcTemplate.update("""
mysqlJdbcTemplate.update("""
UPDATE temp_street_details
SET is_active = 0,
is_delete = 1
@ -322,10 +332,10 @@ public class RequestService {
return finalRefId;
}
@Transactional
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public void updateFinePaymentStatus(String refId) {
jdbcTemplate.update("""
mysqlJdbcTemplate.update("""
UPDATE fine_collection
SET payment_status = 'COMPLETED'
WHERE ref_id = ?
@ -334,10 +344,10 @@ public class RequestService {
""", refId);
}
@Transactional
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public void updateRestorationPaymentStatus(String refId) {
jdbcTemplate.update("""
mysqlJdbcTemplate.update("""
UPDATE restoration
SET payment_status = 'COMPLETED'
WHERE ref_id = ?
@ -346,10 +356,10 @@ public class RequestService {
""", refId);
}
@Transactional
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public void updateTempPaymentStatus(String tempRefId, String status) {
jdbcTemplate.update("""
mysqlJdbcTemplate.update("""
UPDATE temp_booking
SET payment_status = ?
WHERE refid = ?
@ -358,9 +368,10 @@ public class RequestService {
""", status, tempRefId);
}
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public List<Map<String, Object>> getFineDetails(String refid) {
String sql = "select * from fine_collection where ref_id=?";
return jdbcTemplate.queryForList(sql, refid);
return mysqlJdbcTemplate.queryForList(sql, refid);
}
// public boolean isRequestNearby(double latitude, double longitude) {
@ -447,6 +458,7 @@ public class RequestService {
// return jdbcTemplate.queryForList(sql, requestId);
// }
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public Map<String, Object> getPaymentByRefIdAndType(String refId, String type) {
String sql = """
@ -463,7 +475,7 @@ public class RequestService {
LIMIT 1
""";
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql, refId, type);
List<Map<String, Object>> list = mysqlJdbcTemplate.queryForList(sql, refId, type);
// ✅ Return null safely instead of throwing exception
return list.isEmpty() ? null : list.get(0);
@ -502,6 +514,7 @@ public class RequestService {
// return jdbcTemplate.queryForList(sql, refId);
// }
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public List<Map<String, Object>> getDetailsByRequestIdTemp(String refId) {
String sql = """
@ -545,7 +558,7 @@ public class RequestService {
AND ud.is_delete = 0
""";
return jdbcTemplate.queryForList(sql, refId);
return mysqlJdbcTemplate.queryForList(sql, refId);
}
// public List<Map<String, Object>> getFinalDetailsByRefId(String refId) {
@ -584,6 +597,7 @@ public class RequestService {
// return jdbcTemplate.queryForList(sql, refId);
// }
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public List<Map<String, Object>> getFinalDetailsByRefId(String refId) {
String sql = """
@ -634,11 +648,12 @@ public class RequestService {
WHERE urd.refid = ?
""";
return jdbcTemplate.queryForList(sql, refId);
return mysqlJdbcTemplate.queryForList(sql, refId);
}
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public List<Map<String, Object>> getTempStreetDetails(String refId) {
return jdbcTemplate.queryForList("""
return mysqlJdbcTemplate.queryForList("""
SELECT street_name, zone, ward
FROM temp_street_details
WHERE temp_refid = ?
@ -647,8 +662,9 @@ public class RequestService {
""", refId);
}
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public List<Map<String, Object>> getFinalStreetDetails(String refId) {
return jdbcTemplate.queryForList("""
return mysqlJdbcTemplate.queryForList("""
SELECT street_name, zone, ward
FROM street_details
WHERE refid = ?
@ -658,7 +674,7 @@ public class RequestService {
}
public boolean existsInFinal(String refId) {
Integer cnt = jdbcTemplate.queryForObject(
Integer cnt = mysqlJdbcTemplate.queryForObject(
"SELECT COUNT(*) FROM user_request_details WHERE refid = ?",
Integer.class,
refId);
@ -685,6 +701,7 @@ public class RequestService {
// return jdbcTemplate.queryForList(sql, RefId);
// }
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public List<Map<String, Object>> getUserDetailsfromTemp(String refId) {
String sql = """
@ -705,19 +722,19 @@ public class RequestService {
WHERE ud.refid = ?
""";
return jdbcTemplate.queryForList(sql, refId);
return mysqlJdbcTemplate.queryForList(sql, refId);
}
@Transactional
@Transactional("mysqlgccFlagPoleTransactionManager")
public int updatePaymentStatus(String RefId) {
String sql = "UPDATE user_request_details SET payment_status = 'COMPLETED' WHERE refid = ? ";
return jdbcTemplate.update(sql, RefId);
return mysqlJdbcTemplate.update(sql, RefId);
}
@Transactional
@Transactional("mysqlgccFlagPoleTransactionManager")
public int updatePaymentStatusInOrderLog(String RefId, String OrderId) {
String sql = "UPDATE order_log SET order_status = 'captured' WHERE ref_id = ? and order_id= ? ";
return jdbcTemplate.update(sql, RefId, OrderId);
return mysqlJdbcTemplate.update(sql, RefId, OrderId);
}
// public List<Map<String, Object>> searchRequestsByRefIdOrMobile(
@ -813,6 +830,7 @@ public class RequestService {
// return new ArrayList<>(resultMap.values());
// }
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public List<Map<String, Object>> searchRequestsByRefIdOrMobile(
String refId,
String mobileNumber) {
@ -882,7 +900,7 @@ public class RequestService {
sql.append(" ORDER BY urd.cdate DESC, sd.id ");
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql.toString(), params.toArray());
List<Map<String, Object>> rows = mysqlJdbcTemplate.queryForList(sql.toString(), params.toArray());
// 🔥 GROUP BY REFID
Map<String, Map<String, Object>> resultMap = new LinkedHashMap<>();
@ -925,19 +943,22 @@ public class RequestService {
return new ArrayList<>(resultMap.values());
}
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public List<Map<String, Object>> getFineDetailsForUser(String RefId) {
String sql = "SELECT user_name,mob_no,fine_amount FROM fine_collection WHERE ref_id = ? ";
return jdbcTemplate.queryForList(sql, RefId);
return mysqlJdbcTemplate.queryForList(sql, RefId);
}
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public List<Map<String, Object>> getRestorationDetailsForUser(String RefId) {
String sql = "SELECT amount,remarks,image_path FROM restoration WHERE ref_id = ? ";
return jdbcTemplate.queryForList(sql, RefId);
return mysqlJdbcTemplate.queryForList(sql, RefId);
}
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public List<Map<String, Object>> eventPostponed(String RefId) {
String sql = "SELECT * from user_request_details WHERE refid = ? ";
return jdbcTemplate.queryForList(sql, RefId);
return mysqlJdbcTemplate.queryForList(sql, RefId);
}
private List<LocalDate> getEventDateRange(LocalDate startDate, int noOfDays) {
@ -1000,6 +1021,7 @@ public class RequestService {
// """, refId);
// }
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
private void insertIntoHistoryAfterAction(
String refId,
String aeStatus,
@ -1008,7 +1030,7 @@ public class RequestService {
String bookingStatus,
String approvedBy) {
jdbcTemplate.update("""
mysqlJdbcTemplate.update("""
INSERT INTO user_request_details_history
(
refid,
@ -1059,10 +1081,10 @@ public class RequestService {
refId);
}
@Transactional
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public String cancelEvent(String refId) {
Map<String, Object> record = jdbcTemplate.queryForMap("""
Map<String, Object> record = mysqlJdbcTemplate.queryForMap("""
SELECT event_date
FROM user_request_details
WHERE refid = ?
@ -1086,7 +1108,7 @@ public class RequestService {
"CANCELLED",
"USER");
jdbcTemplate.update("""
mysqlJdbcTemplate.update("""
UPDATE user_request_details
SET booking_status = 'CANCELLED'
WHERE refid = ?
@ -1095,6 +1117,7 @@ public class RequestService {
return "CANCELLED";
}
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public boolean isStreetAvailableForRangeStrict(
String streetName,
String zone,
@ -1124,7 +1147,7 @@ public class RequestService {
)
""";
Integer count = jdbcTemplate.queryForObject(
Integer count = mysqlJdbcTemplate.queryForObject(
sql,
Integer.class,
streetName,
@ -1247,14 +1270,14 @@ public class RequestService {
// return "POSTPONED";
// }
@Transactional
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public String postponeEvent(String refId, LocalDate newStartDate) {
if (isAlreadyPostponed(refId)) {
return "POSTPONE_ALREADY_USED";
}
Map<String, Object> record = jdbcTemplate.queryForMap("""
Map<String, Object> record = mysqlJdbcTemplate.queryForMap("""
SELECT event_date, no_of_days
FROM user_request_details
WHERE refid = ?
@ -1267,7 +1290,7 @@ public class RequestService {
return "NOT_ALLOWED";
}
List<Map<String, Object>> streets = jdbcTemplate.queryForList("""
List<Map<String, Object>> streets = mysqlJdbcTemplate.queryForList("""
SELECT street_name, zone, ward, latitude, longitude
FROM street_details
WHERE refid = ?
@ -1298,7 +1321,7 @@ public class RequestService {
"POSTPONED",
"USER");
jdbcTemplate.update("""
mysqlJdbcTemplate.update("""
UPDATE user_request_details
SET
event_date = ?,
@ -1313,8 +1336,9 @@ public class RequestService {
return "POSTPONED";
}
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public boolean isAlreadyPostponed(String refId) {
Integer count = jdbcTemplate.queryForObject("""
Integer count = mysqlJdbcTemplate.queryForObject("""
SELECT COUNT(*)
FROM user_request_details_history
WHERE refid = ?
@ -1324,9 +1348,10 @@ public class RequestService {
return count != null && count > 0;
}
@Transactional(transactionManager = "mysqlgccFlagPoleTransactionManager")
public boolean isUserExistsByMobile(String mobile) {
Integer count = jdbcTemplate.queryForObject(
Integer count = mysqlJdbcTemplate.queryForObject(
"SELECT COUNT(*) FROM user_request_details WHERE mobile_number = ?",
Integer.class,
mobile);

1
src/main/resources/application.properties

@ -1 +1,2 @@
#spring.profiles.active=prod
spring.profiles.active=dev

2
src/main/resources/templates/modules/flagpolesregistration/requestform.html

@ -384,7 +384,7 @@
<div class="col-md-12">
<label for="uploaddumpimage">Description<span class="text-danger">*</span>
</label>
<textarea id="remarks_modal" class="form-control" rows="4"
<textarea id="remarks_modal" class="form-control" rows="4" maxlength="200"
placeholder="Enter your description here" oninput="validateAddress(this)"></textarea>
</div>

13
src/test/java/com/gcc/flagpoles/FlagpolesApplicationTests.java

@ -1,13 +0,0 @@
package com.gcc.flagpoles;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class FlagpolesApplicationTests {
@Test
void contextLoads() {
}
}
Loading…
Cancel
Save