14 changed files with 523 additions and 96 deletions
-
3.mvn/wrapper/maven-wrapper.properties
-
5src/main/java/com/gcc/flagpoles/configuration/AppConfig.java
-
83src/main/java/com/gcc/flagpoles/configuration/DataSourceConfig.java
-
9src/main/java/com/gcc/flagpoles/controller/ApiController.java
-
51src/main/java/com/gcc/flagpoles/controller/BuildingPlanController.java
-
16src/main/java/com/gcc/flagpoles/service/BookingService.java
-
243src/main/java/com/gcc/flagpoles/service/BuildingPlanService.java
-
24src/main/java/com/gcc/flagpoles/service/DropDownService.java
-
19src/main/java/com/gcc/flagpoles/service/PaymentService.java
-
27src/main/java/com/gcc/flagpoles/service/RefundService.java
-
123src/main/java/com/gcc/flagpoles/service/RequestService.java
-
1src/main/resources/application.properties
-
2src/main/resources/templates/modules/flagpolesregistration/requestform.html
-
13src/test/java/com/gcc/flagpoles/FlagpolesApplicationTests.java
@ -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 |
|
||||
@ -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(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -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); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -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; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -1 +1,2 @@ |
|||||
|
#spring.profiles.active=prod |
||||
spring.profiles.active=dev |
spring.profiles.active=dev |
||||
@ -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() { |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue