diff --git a/src/main/java/issueissyu/backend/domain/location/repository/PinLocationRepository.java b/src/main/java/issueissyu/backend/domain/location/repository/PinLocationRepository.java index bc7b144..ae7b062 100644 --- a/src/main/java/issueissyu/backend/domain/location/repository/PinLocationRepository.java +++ b/src/main/java/issueissyu/backend/domain/location/repository/PinLocationRepository.java @@ -40,7 +40,8 @@ public interface PinLocationRepository extends JpaRepository ST_Y(pl.pin_point) AS lat, ST_X(pl.pin_point) AS lng, pl.detail_address AS detailAddress, - l.location AS region + l.location AS region, + CASE WHEN p.pin_type = 'STORE' THEN ep.discount ELSE NULL END AS discount FROM pin_location pl INNER JOIN pin p ON pl.pin_id = p.pin_id INNER JOIN location l ON pl.location_id = l.location_id @@ -79,7 +80,8 @@ List findPinsInBoundingBox( pl.detail_address AS detailAddress, l.location AS region, ST_Y(ST_SnapToGrid(pl.pin_point, :gridSize)) AS clusterLat, - ST_X(ST_SnapToGrid(pl.pin_point, :gridSize)) AS clusterLng + ST_X(ST_SnapToGrid(pl.pin_point, :gridSize)) AS clusterLng, + CASE WHEN p.pin_type = 'STORE' THEN ep.discount ELSE NULL END AS discount FROM pin_location pl INNER JOIN pin p ON pl.pin_id = p.pin_id INNER JOIN location l ON pl.location_id = l.location_id diff --git a/src/main/java/issueissyu/backend/domain/map/dto/res/MapPinClusterView.java b/src/main/java/issueissyu/backend/domain/map/dto/res/MapPinClusterView.java index cfdfb21..7031b52 100644 --- a/src/main/java/issueissyu/backend/domain/map/dto/res/MapPinClusterView.java +++ b/src/main/java/issueissyu/backend/domain/map/dto/res/MapPinClusterView.java @@ -16,4 +16,6 @@ public interface MapPinClusterView { Double getClusterLat(); Double getClusterLng(); + + String getDiscount(); } diff --git a/src/main/java/issueissyu/backend/domain/map/dto/res/MapPinResDTO.java b/src/main/java/issueissyu/backend/domain/map/dto/res/MapPinResDTO.java index ed3d7c7..6b5ff35 100644 --- a/src/main/java/issueissyu/backend/domain/map/dto/res/MapPinResDTO.java +++ b/src/main/java/issueissyu/backend/domain/map/dto/res/MapPinResDTO.java @@ -10,7 +10,8 @@ public record PinItemDTO( double latitude, // 위도 (latitude) double longitude, // 경도 (longitude) String pinDetailAddress, - String pinLocation + String pinLocation, + String discount ) { } } diff --git a/src/main/java/issueissyu/backend/domain/map/dto/res/MapPinView.java b/src/main/java/issueissyu/backend/domain/map/dto/res/MapPinView.java index 7046a71..47dabfa 100644 --- a/src/main/java/issueissyu/backend/domain/map/dto/res/MapPinView.java +++ b/src/main/java/issueissyu/backend/domain/map/dto/res/MapPinView.java @@ -9,4 +9,5 @@ public interface MapPinView { Double getLng(); // ST_X(pin_point) → 경도 String getDetailAddress(); String getRegion(); // location.location 컬럼 (법정동 주소 문자열) + String getDiscount(); } diff --git a/src/main/java/issueissyu/backend/domain/map/service/query/MapPinQueryServiceImpl.java b/src/main/java/issueissyu/backend/domain/map/service/query/MapPinQueryServiceImpl.java index 3b3085a..86d37b0 100644 --- a/src/main/java/issueissyu/backend/domain/map/service/query/MapPinQueryServiceImpl.java +++ b/src/main/java/issueissyu/backend/domain/map/service/query/MapPinQueryServiceImpl.java @@ -88,7 +88,8 @@ private MapPinResDTO.PinItemDTO toDto(MapPinView view) { view.getLat(), view.getLng(), view.getDetailAddress(), - view.getRegion() + view.getRegion(), + view.getDiscount() ); } @@ -99,7 +100,8 @@ private MapPinResDTO.PinItemDTO toDto(MapPinClusterView view) { view.getLat(), view.getLng(), view.getDetailAddress(), - view.getRegion() + view.getRegion(), + view.getDiscount() ); }