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 |
|||
@ -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