Skip to content

Commit f5b5152

Browse files
committed
feat: 명소 혼잡도 기본 정보 조회 좋아요 여부 추가
1 parent 6aab857 commit f5b5152

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

src/main/kotlin/busanVibe/busan/domain/place/dto/PlaceMapResponseDTO.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ class PlaceMapResponseDTO {
3333
val address: String,
3434
@get:JsonProperty("is_open")
3535
val isOpen: Boolean,
36-
val imgList: List<String>
36+
val imgList: List<String>,
37+
val isLike: Boolean
3738
)
3839

3940
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy::class)

src/main/kotlin/busanVibe/busan/domain/place/repository/PlaceRepository.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ interface PlaceRepository: JpaRepository<Place, Long> {
5252
"""
5353
SELECT p FROM Place p
5454
LEFT JOIN FETCH p.placeImages
55+
LEFT JOIN FETCH p.placeLikes pl
5556
WHERE p.id = :placeId
5657
"""
5758
)

src/main/kotlin/busanVibe/busan/domain/place/service/PlaceCongestionQueryService.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ package busanVibe.busan.domain.place.service
22

33
import busanVibe.busan.domain.place.domain.Place
44
import busanVibe.busan.domain.place.domain.PlaceImage
5+
import busanVibe.busan.domain.place.domain.PlaceLike
56
import busanVibe.busan.domain.place.domain.VisitorDistribution
67
import busanVibe.busan.domain.place.dto.PlaceMapResponseDTO
78
import busanVibe.busan.domain.place.enums.PlaceType
89
import busanVibe.busan.domain.place.repository.PlaceRepository
910
import busanVibe.busan.domain.place.repository.VisitorDistributionRepository
1011
import busanVibe.busan.domain.place.util.PlaceRedisUtil
12+
import busanVibe.busan.domain.user.service.login.AuthService
1113
import busanVibe.busan.global.apiPayload.code.status.ErrorStatus
1214
import busanVibe.busan.global.apiPayload.exception.GeneralException
1315
import busanVibe.busan.global.apiPayload.exception.handler.ExceptionHandler
@@ -83,8 +85,11 @@ class PlaceCongestionQueryService(
8385
// Image -> list
8486
// Redis -> congestion
8587

88+
// 유저 조회
89+
val currentUser = AuthService().getCurrentUser()
90+
8691
// 명소 조회
87-
val place: Place? = placeRepository.findByIdWithReviewAndImage(placeId)
92+
val place: Place? = placeRepository.findByIdWithLIkeAndImage(placeId)
8893
place?: throw ExceptionHandler(ErrorStatus.PLACE_NOT_FOUND)
8994

9095
// 이미지 조회
@@ -94,6 +99,9 @@ class PlaceCongestionQueryService(
9499
.filter { it.imgUrl.isNotBlank() }
95100
.map { it.imgUrl }
96101

102+
// 좋아요 조회
103+
val placeLikes: Set<PlaceLike> = place.placeLikes
104+
val isLike = placeLikes.any { it.user.id == currentUser.id }
97105

98106
return PlaceMapResponseDTO.PlaceDefaultInfoDto(
99107
id = place.id,
@@ -103,7 +111,8 @@ class PlaceCongestionQueryService(
103111
longitude = place.longitude,
104112
address = place.address,
105113
isOpen = true,
106-
imgList = placeImageList
114+
imgList = placeImageList,
115+
isLike = isLike
107116
)
108117
}
109118

0 commit comments

Comments
 (0)