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