Browse Source

일몰 일출 api 추가 - 해당 좌표에 근접한 지역의 6개월치 데이터

pull/12/head
지대한 11 months ago
parent
commit
7dabd67695
  1. 51
      pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComRiseSetQueryRepository.java

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

@ -13,6 +13,8 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
/** /**
@ -64,10 +66,10 @@ public class ComRiseSetQueryRepository {
BooleanBuilder builder = new BooleanBuilder(); BooleanBuilder builder = new BooleanBuilder();
if (rq != null) { if (rq != null) {
if (rq.getLocStDate() != null) { if (rq.getLocStDate() != null) {
builder.and(bas.id.locDate.loe(rq.getLocStDate())); builder.and(bas.id.locDate.goe(rq.getLocStDate()));
} }
if (rq.getLocEndDate() != null) { if (rq.getLocEndDate() != null) {
builder.and(bas.id.locDate.goe(rq.getLocEndDate())); builder.and(bas.id.locDate.loe(rq.getLocEndDate()));
} }
if (rq.getLocation() != null) { if (rq.getLocation() != null) {
builder.and(bas.id.location.eq(rq.getLocation())); builder.and(bas.id.location.eq(rq.getLocation()));
@ -93,7 +95,7 @@ public class ComRiseSetQueryRepository {
} }
public ComnSunrisesetRs findBySearchCoordTransform(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()));
@ -123,4 +125,47 @@ public class ComRiseSetQueryRepository {
).asc()) ).asc())
.fetchFirst(); .fetchFirst();
} }
public List<ComnSunrisesetRs> findAllBySearchCoordTransform(ComnSunrisesetCoordRq rq) {
QComRiseSetBas bas = QComRiseSetBas.comRiseSetBas;
BooleanBuilder builder = new BooleanBuilder();
LocalDate stDate = LocalDate.now();
LocalDate endDate = stDate.plusMonths(6);
String stDateStr = stDate.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
String endDateStr = endDate.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
builder.and(bas.id.locDate.goe(stDateStr));
builder.and(bas.id.locDate.loe(endDateStr));
String location = query.select(bas.id.location)
.from(bas)
.where(builder)
.groupBy(bas.id.location)
.orderBy(Expressions.stringTemplate("ST_Distance_Sphere({0}, {1})",
Expressions.stringTemplate("POINT({0}, {1})",
rq.getLon(),
rq.getLat()
),
Expressions.stringTemplate("POINT({0}, {1})",
bas.lon,
bas.lat
)
).asc())
.fetchFirst();
builder.and(bas.id.location.eq(location));
List<ComnSunrisesetRs> rs = query.select(Projections.bean(
ComnSunrisesetRs.class,
bas.id.locDate,
bas.id.location,
bas.sunrise,
bas.sunset,
bas.civilm,
bas.civile))
.from(bas)
.where(builder)
.orderBy(bas.id.locDate.asc())
.fetch();
return rs;
}
} }

Loading…
Cancel
Save