From 7dabd67695133606560872ebb14e927bcfb5e8e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dhji=28=EC=A7=80=EB=8C=80=ED=95=9C=29?= Date: Mon, 16 Oct 2023 19:04:15 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=BC=EB=AA=B0=20=EC=9D=BC=EC=B6=9C=20api?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=20-=20=ED=95=B4=EB=8B=B9=20=EC=A2=8C?= =?UTF-8?q?=ED=91=9C=EC=97=90=20=EA=B7=BC=EC=A0=91=ED=95=9C=20=EC=A7=80?= =?UTF-8?q?=EC=97=AD=EC=9D=98=206=EA=B0=9C=EC=9B=94=EC=B9=98=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ComRiseSetQueryRepository.java | 51 +++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComRiseSetQueryRepository.java b/pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComRiseSetQueryRepository.java index a00fdce0..0ea03f85 100644 --- a/pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComRiseSetQueryRepository.java +++ b/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 org.springframework.stereotype.Repository; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.List; /** @@ -64,10 +66,10 @@ public class ComRiseSetQueryRepository { BooleanBuilder builder = new BooleanBuilder(); if (rq != 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) { - builder.and(bas.id.locDate.goe(rq.getLocEndDate())); + builder.and(bas.id.locDate.loe(rq.getLocEndDate())); } if (rq.getLocation() != null) { 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; BooleanBuilder builder = new BooleanBuilder(); builder.and(bas.id.locDate.goe(rq.getLocStDate())); @@ -123,4 +125,47 @@ public class ComRiseSetQueryRepository { ).asc()) .fetchFirst(); } + + public List 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 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; + } }