diff --git a/src/main/java/com/gamsa/Application.java b/src/main/java/com/gamsa/Application.java index a5a8742..d4e3f5c 100644 --- a/src/main/java/com/gamsa/Application.java +++ b/src/main/java/com/gamsa/Application.java @@ -1,5 +1,6 @@ package com.gamsa; +import java.util.TimeZone; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.properties.ConfigurationPropertiesScan; @@ -12,6 +13,7 @@ @SpringBootApplication public class Application { public static void main(String[] args) { + TimeZone.setDefault(TimeZone.getTimeZone("Asia/Seoul")); SpringApplication.run(Application.class, args); } } diff --git a/src/main/java/com/gamsa/activity/controller/ActivityController.java b/src/main/java/com/gamsa/activity/controller/ActivityController.java index 2a80f63..0841b5c 100644 --- a/src/main/java/com/gamsa/activity/controller/ActivityController.java +++ b/src/main/java/com/gamsa/activity/controller/ActivityController.java @@ -6,12 +6,12 @@ import com.gamsa.activity.dto.ActivityFindDistanceOrderRequest; import com.gamsa.activity.dto.ActivityFindSliceResponse; import com.gamsa.activity.service.ActivityService; +import java.math.BigDecimal; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Slice; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -31,9 +31,12 @@ public Slice findSlice( @RequestParam(defaultValue = "false") boolean teenPossibleOnly, @RequestParam(defaultValue = "false") boolean beforeDeadlineOnly, @RequestParam(required = false) String keyword, - @RequestBody(required = false) ActivityFindDistanceOrderRequest distanceOrderRequest, + @RequestParam(required = false) BigDecimal latitude, + @RequestParam(required = false) BigDecimal longitude, + @RequestParam(required = false, defaultValue = "10") Integer distanceKm, Pageable pageable) { + // 필터링, 검색 관련 정보 ActivityFilterRequest filterRequest = ActivityFilterRequest.builder() .category(Category.fromValuesForSlice(category)) .sidoGunguCode(sidoGunguCode) @@ -43,6 +46,13 @@ public Slice findSlice( .keyword(keyword) .build(); + // 가까운 거리순 정렬 관련 정보 + ActivityFindDistanceOrderRequest distanceOrderRequest = ActivityFindDistanceOrderRequest.builder() + .latitude(latitude) + .longitude(longitude) + .distanceKm(distanceKm) + .build(); + return activityService.findSlice(filterRequest, distanceOrderRequest, pageable); }