Browse Source

feat: 일출일몰 List 조회 시 없는 해당 날짜에 없는 도시는 가장 가까운도시 추적하여 대신 조회하도록 변경.

pull/17/head
lkd9125(이경도) 8 months ago
parent
commit
a1d3ed44cc
  1. 6
      pav-server/src/main/java/com/palnet/biz/api/comn/sunriseset/service/ComnSunrisesetService.java
  2. 3
      pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComRiseSetBasRepository.java

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

@ -3,6 +3,8 @@ package com.palnet.biz.api.comn.sunriseset.service;
import com.palnet.biz.api.comn.sunriseset.model.ComnSunrisesetCoordRq;
import com.palnet.biz.api.comn.sunriseset.model.ComnSunrisesetRq;
import com.palnet.biz.api.comn.sunriseset.model.ComnSunrisesetRs;
import com.palnet.biz.jpa.entity.ComRiseSetBas;
import com.palnet.biz.jpa.repository.com.ComRiseSetBasRepository;
import com.palnet.biz.jpa.repository.com.ComRiseSetQueryRepository;
import com.palnet.comn.code.ErrorCode;
import com.palnet.comn.exception.CustomException;
@ -28,6 +30,7 @@ import java.util.List;
@Service
public class ComnSunrisesetService {
private final ComRiseSetBasRepository comRiseSetBasRepository;
private final ComRiseSetQueryRepository comRiseSetQueryRepository;
@ -37,8 +40,9 @@ public class ComnSunrisesetService {
* @return
*/
public List<ComnSunrisesetRs> getSunRiseSetList(ComnSunrisesetRq rq) {
return comRiseSetQueryRepository.findAllBySearchTransform(rq);
List<ComRiseSetBas> list = comRiseSetBasRepository.findByLocStDateAndLocEndDateNearLocation(rq.getLocStDate(), rq.getLocEndDate(), rq.getLocation());
return ComnSunrisesetMapper.MAPPER.toRs(list);
}
/**

3
pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComRiseSetBasRepository.java

@ -26,4 +26,7 @@ public interface ComRiseSetBasRepository extends JpaRepository<ComRiseSetBas, Co
@Query(value = "SELECT R FROM COM_RISE_SET_BAS R WHERE LOC_DATE >= :locStDate AND LOC_DATE <= :locEndDate", nativeQuery = true)
List<ComRiseSetBas> findByLocStDateAndLocEndDate(@Param("locStDate") String locStDate, @Param("locEndDate") String locEndDate);
@Query(value = "SELECT NEAR.* FROM ( SELECT *, CAST( ST_DISTANCE_SPHERE( POINT(LON, LAT), POINT( (SELECT DISTINCT LON FROM COM_RISE_SET_BAS WHERE LOCATION = :location), (SELECT DISTINCT LAT FROM COM_RISE_SET_BAS WHERE LOCATION = :location) ) ) AS SIGNED ) AS DIST FROM COM_RISE_SET_BAS WHERE LOC_DATE BETWEEN :locStDate AND :locEndDate ORDER BY LOC_DATE ASC , DIST ASC ) AS NEAR GROUP BY NEAR.LOC_DATE", nativeQuery = true)
List<ComRiseSetBas> findByLocStDateAndLocEndDateNearLocation(@Param("locStDate") String locStDate, @Param("locEndDate") String locEndDate, @Param("location") String location);
}

Loading…
Cancel
Save