Browse Source

comn/sunriseset 패키지 주석추가

pull/18/head
lkd9125(이경도) 9 months ago
parent
commit
427665aff1
  1. 67
      pav-server/src/main/java/com/palnet/biz/api/comn/sunriseset/controller/ComnSunrisesetController.java
  2. 15
      pav-server/src/main/java/com/palnet/biz/api/comn/sunriseset/service/ComnSunrisesetService.java
  3. 81
      pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComRiseSetQueryRepository.java

67
pav-server/src/main/java/com/palnet/biz/api/comn/sunriseset/controller/ComnSunrisesetController.java

@ -45,6 +45,12 @@ public class ComnSunrisesetController {
private final ComnSunrisesetService comnSunrisesetService; private final ComnSunrisesetService comnSunrisesetService;
/**
* 일출/일몰 시간대를 조회하는 기능,
* ComnSunrisesetRq에 있는 검색 시작일, 끝일의 조건에 맞춰 조회함.
* @param rq
* @return
*/
@ApiOperation(value = "일출/일몰 조회", notes = "기간내 모든 일출/일몰조회") @ApiOperation(value = "일출/일몰 조회", notes = "기간내 모든 일출/일몰조회")
@Tag(name = "공통 API", description = "공통 API") @Tag(name = "공통 API", description = "공통 API")
@GetMapping("/list") @GetMapping("/list")
@ -52,10 +58,18 @@ public class ComnSunrisesetController {
List<ComnSunrisesetRs> rs = null; List<ComnSunrisesetRs> rs = null;
try { try {
log.debug(">>> rq : {}", rq); log.debug(">>> rq : {}", rq);
rs = comnSunrisesetService.getSunRiseSetList(rq); rs = comnSunrisesetService.getSunRiseSetList(rq); // 검색조건의 맞춰 일몰,일출 시간을 조회하는 기능
// log.debug(">>> rs : {}", rs); // log.debug(">>> rs : {}", rs);
} catch (CustomException e) { } catch (CustomException e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* CustomException은 개발자가 "의도적으로" 예외처리,
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
Map<String, Object> resultMap = new HashMap<String, Object>(); Map<String, Object> resultMap = new HashMap<String, Object>();
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
resultMap.put("result", false); resultMap.put("result", false);
@ -63,6 +77,13 @@ public class ComnSunrisesetController {
resultMap.put("errorMessage", e.getMessage()); resultMap.put("errorMessage", e.getMessage());
return ResponseEntity.ok().body(new SuccessResponse<Map>(resultMap)); return ResponseEntity.ok().body(new SuccessResponse<Map>(resultMap));
} catch (Exception e) { } catch (Exception e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));
@ -71,7 +92,12 @@ public class ComnSunrisesetController {
return ResponseEntity.ok().body(new SuccessResponse<>(rs)); return ResponseEntity.ok().body(new SuccessResponse<>(rs));
} }
/**
* 근접한 지역의 일출/일몰 조회,
* ComnSunrisesetCoordRq 모델에 있는 시작,끝날짜 조건에 맞춰 가장 근접한 지역의 일출/일몰 조회.
* @param rq
* @return
*/
@ApiOperation(value = "일출/일몰 조회(좌표)", notes = "기간내 근접한 지역의 일출/일몰 조회") @ApiOperation(value = "일출/일몰 조회(좌표)", notes = "기간내 근접한 지역의 일출/일몰 조회")
@Tag(name = "공통 API", description = "공통 API") @Tag(name = "공통 API", description = "공통 API")
@GetMapping("/coord") @GetMapping("/coord")
@ -79,10 +105,18 @@ public class ComnSunrisesetController {
ComnSunrisesetRs rs = null; ComnSunrisesetRs rs = null;
try { try {
log.debug(">>> rq : {}", rq); log.debug(">>> rq : {}", rq);
rs = comnSunrisesetService.getSunRiseSetByCoordAndDate(rq); rs = comnSunrisesetService.getSunRiseSetByCoordAndDate(rq); // 기간내 근접한 지역의 일출/일몰 조회하는 기능
// log.debug(">>> rs : {}", rs); // log.debug(">>> rs : {}", rs);
} catch (CustomException e) { } catch (CustomException e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* CustomException은 개발자가 "의도적으로" 예외처리,
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
Map<String, Object> resultMap = new HashMap<String, Object>(); Map<String, Object> resultMap = new HashMap<String, Object>();
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
resultMap.put("result", false); resultMap.put("result", false);
@ -90,6 +124,13 @@ public class ComnSunrisesetController {
resultMap.put("errorMessage", e.getMessage()); resultMap.put("errorMessage", e.getMessage());
return ResponseEntity.ok().body(new SuccessResponse<Map>(resultMap)); return ResponseEntity.ok().body(new SuccessResponse<Map>(resultMap));
} catch (Exception e) { } catch (Exception e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));
@ -98,6 +139,11 @@ public class ComnSunrisesetController {
return ResponseEntity.ok().body(new SuccessResponse<>(rs)); return ResponseEntity.ok().body(new SuccessResponse<>(rs));
} }
/**
* 근접한 지역의 현재~6개월치의 일출/일몰 데이터 조회하는 기능
* @param rq
* @return
*/
@ApiOperation(value = "일출/일몰 조회(좌표-6개월치)", notes = "근접한 지역의 현재~6개월치의 일출/일몰 데이터 조회") @ApiOperation(value = "일출/일몰 조회(좌표-6개월치)", notes = "근접한 지역의 현재~6개월치의 일출/일몰 데이터 조회")
@Tag(name = "공통 API", description = "공통 API") @Tag(name = "공통 API", description = "공통 API")
@ApiImplicitParams(value = { @ApiImplicitParams(value = {
@ -113,6 +159,14 @@ public class ComnSunrisesetController {
// log.debug(">>> rs : {}", rs); // log.debug(">>> rs : {}", rs);
} catch (CustomException e) { } catch (CustomException e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* CustomException은 개발자가 "의도적으로" 예외처리,
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
Map<String, Object> resultMap = new HashMap<String, Object>(); Map<String, Object> resultMap = new HashMap<String, Object>();
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
resultMap.put("result", false); resultMap.put("result", false);
@ -120,6 +174,13 @@ public class ComnSunrisesetController {
resultMap.put("errorMessage", e.getMessage()); resultMap.put("errorMessage", e.getMessage());
return ResponseEntity.ok().body(new SuccessResponse<Map>(resultMap)); return ResponseEntity.ok().body(new SuccessResponse<Map>(resultMap));
} catch (Exception e) { } catch (Exception e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
log.error("IGNORE : ", e); log.error("IGNORE : ", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1")); .body(new ErrorResponse("Server Error", "-1"));

15
pav-server/src/main/java/com/palnet/biz/api/comn/sunriseset/service/ComnSunrisesetService.java

@ -31,16 +31,31 @@ public class ComnSunrisesetService {
private final ComRiseSetQueryRepository comRiseSetQueryRepository; private final ComRiseSetQueryRepository comRiseSetQueryRepository;
/**
* 검색조건의 맞춰 일몰,일출 시간을 조회하는 기능.
* @param rq
* @return
*/
public List<ComnSunrisesetRs> getSunRiseSetList(ComnSunrisesetRq rq) { public List<ComnSunrisesetRs> getSunRiseSetList(ComnSunrisesetRq rq) {
return comRiseSetQueryRepository.findAllBySearchTransform(rq); return comRiseSetQueryRepository.findAllBySearchTransform(rq);
} }
/**
* 기간내 근접한 지역의 일출/일몰 조회하는 기능.
* @param rq
* @return
*/
public ComnSunrisesetRs getSunRiseSetByCoordAndDate(ComnSunrisesetCoordRq rq) { public ComnSunrisesetRs getSunRiseSetByCoordAndDate(ComnSunrisesetCoordRq rq) {
if(rq == null || !rq.hasAllData()) throw new CustomException(ErrorCode.NON_VALID_PARAMETER); if(rq == null || !rq.hasAllData()) throw new CustomException(ErrorCode.NON_VALID_PARAMETER);
return comRiseSetQueryRepository.findBySearchCoordDateTransform(rq); return comRiseSetQueryRepository.findBySearchCoordDateTransform(rq);
} }
/**
* 근접한 지역의 현재~6개월치의 일출/일몰 데이터 조회하는 기능
* @param rq
* @return
*/
public List<ComnSunrisesetRs> getSunRiseSetByCoord(ComnSunrisesetCoordRq rq) { public List<ComnSunrisesetRs> getSunRiseSetByCoord(ComnSunrisesetCoordRq rq) {
if(rq == null || !rq.hasCoord()) throw new CustomException(ErrorCode.NON_VALID_PARAMETER); if(rq == null || !rq.hasCoord()) throw new CustomException(ErrorCode.NON_VALID_PARAMETER);
return comRiseSetQueryRepository.findAllBySearchCoordTransform(rq); return comRiseSetQueryRepository.findAllBySearchCoordTransform(rq);

81
pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComRiseSetQueryRepository.java

@ -60,6 +60,11 @@ public class ComRiseSetQueryRepository {
} }
/**
* 검색조건의 맞춰 일몰,일출 시간을 조회하는 SQL 기능.
* @param rq
* @return
*/
public List<ComnSunrisesetRs> findAllBySearchTransform(ComnSunrisesetRq rq) { public List<ComnSunrisesetRs> findAllBySearchTransform(ComnSunrisesetRq rq) {
QComRiseSetBas bas = QComRiseSetBas.comRiseSetBas; QComRiseSetBas bas = QComRiseSetBas.comRiseSetBas;
@ -76,6 +81,23 @@ public class ComRiseSetQueryRepository {
} }
} }
/**
* 시작일자[locStDate] 조건,
* 종료일자[locEndDate] 조건,
* 지역[location] 조건에 맞춰 조회하는 SQL 입니다.
*
* SELECT
* CRSB.LOC_DATE ,
* CRSB.LOCATION ,
* CRSB.SUNRISE ,
* CRSB.SUNSET ,
* CRSB.CIVILM ,
* CRSB.CIVILE
* FROM COM_RISE_SET_BAS CRSB
* WHERE CRSB.LOC_DATE >= #{locStDate}
* AND CRSB.LOC_DATE <= #{locEndDate}
* AND CRSB.LOCATION = #{location}
*/
List<ComnSunrisesetRs> results = query List<ComnSunrisesetRs> results = query
.select(Projections.bean( .select(Projections.bean(
ComnSunrisesetRs.class, ComnSunrisesetRs.class,
@ -95,12 +117,33 @@ public class ComRiseSetQueryRepository {
} }
/**
* 기간내 근접한 지역의 일출/일몰 조회하는 SQL 기능.
* @param rq
* @return
*/
public ComnSunrisesetRs findBySearchCoordDateTransform(ComnSunrisesetCoordRq rq) { public ComnSunrisesetRs findBySearchCoordDateTransform(ComnSunrisesetCoordRq rq) {
QComRiseSetBas bas = QComRiseSetBas.comRiseSetBas; QComRiseSetBas bas = QComRiseSetBas.comRiseSetBas;
BooleanBuilder builder = new BooleanBuilder(); BooleanBuilder builder = new BooleanBuilder();
builder.and(bas.id.locDate.goe(rq.getLocStDate())); builder.and(bas.id.locDate.goe(rq.getLocStDate()));
builder.and(bas.id.locDate.loe(rq.getLocEndDate())); builder.and(bas.id.locDate.loe(rq.getLocEndDate()));
/**
* 검색 시작일[locStDate] 조건,
* 검색 끝일[locEndDate] 조건,
* 위도[lat] 조건,
* 경도[lon] 조건으로 데이터베이스에서 조회하는 SQL 입니다.
*
* SELECT
* MAX(CRSB.SUNRISE) AS 'sunrise',
* MIN(CRSB.SUNSET) AS 'sunset',
* MAX(CRSB.CIVILM) AS 'civilm',
* MIN(CRSB.CIVILE) AS 'civile'
* FROM COM_RISE_SET_BAS CRSB
* WHERE CRSB.LOC_DATE >= #{locStDate}
* AND CRSB.LOC_DATE <= #{locEndDate}
* ORDER BY ST_Distance_Sphere(POINT(#{lon}, #{lat}), POINT(#{CRSB.LON}, #{CRSB.LAT}))
*/
return query return query
.select(Projections.bean( .select(Projections.bean(
ComnSunrisesetRs.class, ComnSunrisesetRs.class,
@ -126,6 +169,11 @@ public class ComRiseSetQueryRepository {
.fetchFirst(); .fetchFirst();
} }
/**
* 근접한 지역의 현재~6개월치의 일출/일몰 데이터 조회하는 SQL 기능.
* @param rq
* @return
*/
public List<ComnSunrisesetRs> findAllBySearchCoordTransform(ComnSunrisesetCoordRq rq) { public List<ComnSunrisesetRs> findAllBySearchCoordTransform(ComnSunrisesetCoordRq rq) {
QComRiseSetBas bas = QComRiseSetBas.comRiseSetBas; QComRiseSetBas bas = QComRiseSetBas.comRiseSetBas;
@ -137,6 +185,20 @@ public class ComRiseSetQueryRepository {
builder.and(bas.id.locDate.goe(stDateStr)); builder.and(bas.id.locDate.goe(stDateStr));
builder.and(bas.id.locDate.loe(endDateStr)); builder.and(bas.id.locDate.loe(endDateStr));
/**
* 검색 시작일[locStDate] 조건,
* 검색 끝일[locEndDate] 조건,
* 위도[lat] 조건,
* 경도[lon] 조건으로 데이터베이스에서 조회하는 SQL 입니다.
*
* SELECT
* CRSB.LOCATION
* FROM COM_RISE_SET_BAS CRSB
* WHERE CRSB.LOC_DATE >= #{locStDate}
* AND CRSB.LOC_DATE <= #{locEndDate}
* GROUP BY CRSB.LOCATION
* ORDER BY ST_Distance_Sphere(POINT(#{lon}, #{lat}), POINT(#{CRSB.LON}, #{CRSB.LAT})) ASC
*/
String location = query.select(bas.id.location) String location = query.select(bas.id.location)
.from(bas) .from(bas)
.where(builder) .where(builder)
@ -154,6 +216,25 @@ public class ComRiseSetQueryRepository {
.fetchFirst(); .fetchFirst();
builder.and(bas.id.location.eq(location)); builder.and(bas.id.location.eq(location));
/**
* 검색 시작일[locStDate] 조건,
* 검색 끝일[locEndDate] 조건,
* 지역[location] 조건으로 조회하는 SQL 입니다.
*
* SELECT
* CRSB.LOC_DATE ,
* CRSB.LOCATION ,
* CRSB.SUNRISE ,
* CRSB.SUNSET ,
* CRSB.CIVILM ,
* CRSB.CIVILE
* FROM COM_RISE_SET_BAS CRSB
* WHERE CRSB.LOC_DATE >= #{locStDate}
* AND CRSB.LOC_DATE <= #{locEndDate}
* AND CRSB.LOCATION = #{location}
* ORDER BY CRSB.LOC_DATE ASC
*/
List<ComnSunrisesetRs> rs = query.select(Projections.bean( List<ComnSunrisesetRs> rs = query.select(Projections.bean(
ComnSunrisesetRs.class, ComnSunrisesetRs.class,
bas.id.locDate, bas.id.locDate,

Loading…
Cancel
Save