Skip to content

Commit 8dbf1f9

Browse files
authored
Hotfix/activitiy detail gunwoong (#141)
* feature: flyway * hotfix: activity detail
1 parent 5170efe commit 8dbf1f9

8 files changed

Lines changed: 226 additions & 200 deletions

File tree

src/main/java/sevenstar/marineleisure/activity/controller/ActivityController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static sevenstar.marineleisure.global.exception.enums.ActivityErrorCode.*;
44

5+
import java.math.BigDecimal;
56
import java.util.Map;
67

78
import org.springframework.http.ResponseEntity;
@@ -41,7 +42,7 @@ public ResponseEntity<BaseResponse<Map<String, ActivitySummaryResponse>>> getAct
4142
@GetMapping("/{activity}/detail")
4243
public ResponseEntity<BaseResponse<ActivityDetailResponse>> getActivityDetail(@PathVariable ActivityCategory activity, @ModelAttribute ActivityDetailRequest activityDetailRequest) {
4344
try {
44-
return BaseResponse.success(activityService.getActivityDetail(activity, activityDetailRequest.latitude(), activityDetailRequest.longitude()));
45+
return BaseResponse.success(activityService.getActivityDetail(activity, new BigDecimal(activityDetailRequest.latitude()), new BigDecimal(activityDetailRequest.longitude())));
4546
} catch (RuntimeException e) {
4647
return BaseResponse.error(INVALID_ACTIVITY);
4748
}
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package sevenstar.marineleisure.activity.dto.request;
22

3-
import java.math.BigDecimal;
43
import java.time.LocalDate;
54

65
public record ActivityDetailRequest(
7-
BigDecimal latitude,
8-
BigDecimal longitude,
9-
LocalDate date
6+
Float latitude,
7+
Float longitude,
8+
LocalDate time
109
) {
1110
}

src/main/java/sevenstar/marineleisure/activity/service/ActivityService.java

Lines changed: 200 additions & 195 deletions
Large diffs are not rendered by default.

src/main/java/sevenstar/marineleisure/forecast/repository/FishingRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,4 +136,6 @@ Optional<Fishing> findTopByCreatedAtGreaterThanEqualAndCreatedAtLessThanOrderByT
136136

137137
Optional<Fishing> findFishingBySpotIdAndForecastDateAndTimePeriod(Long spotId, LocalDate forecastDate,
138138
TimePeriod timePeriod);
139+
140+
Optional<Fishing> findBySpotIdAndForecastDateAndTimePeriod(Long spotId, LocalDate forecastDate, TimePeriod timePeriod);
139141
}

src/main/java/sevenstar/marineleisure/forecast/repository/MudflatRepository.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import jakarta.transaction.Transactional;
1414
import sevenstar.marineleisure.forecast.domain.Fishing;
1515
import sevenstar.marineleisure.forecast.domain.Mudflat;
16+
import sevenstar.marineleisure.global.enums.TimePeriod;
1617
import sevenstar.marineleisure.spot.repository.ActivityRepository;
1718

1819
public interface MudflatRepository extends ActivityRepository<Mudflat, Long> {
@@ -92,4 +93,6 @@ Optional<Mudflat> findFirstBySpotIdAndCreatedAtGreaterThanEqualAndCreatedAtLessT
9293

9394
Optional<Mudflat> findBySpotIdAndCreatedAtBeforeOrderByCreatedAtDesc(Long spotId, LocalDateTime createdAtBefore);
9495

96+
Optional<Mudflat> findBySpotIdAndForecastDate(Long spotId, LocalDate forecastDate);
97+
9598
}

src/main/java/sevenstar/marineleisure/forecast/repository/ScubaRepository.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@
1111
import org.springframework.data.repository.query.Param;
1212

1313
import jakarta.transaction.Transactional;
14+
import sevenstar.marineleisure.forecast.domain.Fishing;
1415
import sevenstar.marineleisure.forecast.domain.Scuba;
1516
import sevenstar.marineleisure.forecast.domain.Surfing;
17+
import sevenstar.marineleisure.global.enums.TimePeriod;
1618
import sevenstar.marineleisure.spot.repository.ActivityRepository;
1719

1820
public interface ScubaRepository extends ActivityRepository<Scuba, Long> {
@@ -93,4 +95,6 @@ Optional<Scuba> findFirstBySpotIdAndCreatedAtGreaterThanEqualAndCreatedAtLessTha
9395
Long spotId,
9496
LocalDateTime startDateTime,
9597
LocalDateTime endDateTime);
98+
99+
Optional<Scuba> findBySpotIdAndForecastDateAndTimePeriod(Long spotId, LocalDate forecastDate, TimePeriod timePeriod);
96100
}

src/main/java/sevenstar/marineleisure/forecast/repository/SurfingRepository.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import jakarta.transaction.Transactional;
1313
import sevenstar.marineleisure.forecast.domain.Fishing;
1414
import sevenstar.marineleisure.forecast.domain.Surfing;
15+
import sevenstar.marineleisure.global.enums.TimePeriod;
1516
import sevenstar.marineleisure.spot.repository.ActivityRepository;
1617

1718
public interface SurfingRepository extends ActivityRepository<Surfing, Long> {
@@ -92,4 +93,6 @@ Optional<Surfing> findFirstBySpotIdAndCreatedAtGreaterThanEqualAndCreatedAtLessT
9293
Optional<Surfing> findBySpotIdAndCreatedAtBeforeOrderByCreatedAtDesc(Long spotId, LocalDateTime createdAtBefore);
9394

9495
Optional<Surfing> findBySpotIdOrderByCreatedAt(Long spotId);
96+
97+
Optional<Surfing> findBySpotIdAndForecastDateAndTimePeriod(Long spotId, LocalDate forecastDate, TimePeriod timePeriod);
9598
}

src/main/java/sevenstar/marineleisure/spot/repository/OutdoorSpotRepository.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,4 +186,13 @@ ORDER BY ST_Distance_Sphere(os.geo_point, ST_SRID(POINT(:longitude, :latitude),
186186
""",nativeQuery = true)
187187
Optional<OutdoorSpot> findNearFishingSpot(@Param("latitude") double latitude,
188188
@Param("longitude") double longitude);
189+
190+
@Query(value = """
191+
SELECT * FROM outdoor_spots os
192+
WHERE os.category = :category
193+
ORDER BY ST_Distance_Sphere(os.geo_point, ST_SRID(POINT(:longitude, :latitude), 4326)) ASC
194+
LIMIT 1;
195+
""",nativeQuery = true)
196+
Optional<OutdoorSpot> findNearSpot(@Param("latitude") double latitude,
197+
@Param("longitude") double longitude,@Param("category") String category);
189198
}

0 commit comments

Comments
 (0)