From a70a95bc3da4e4e8a16eb530e3f2e9eace52be61 Mon Sep 17 00:00:00 2001 From: junyong Date: Wed, 20 Aug 2025 01:02:37 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=EC=A7=80=EC=97=AD=20=EC=B6=95?= =?UTF-8?q?=EC=A0=9C=20=EB=AA=A9=EB=A1=9D=20=EC=A1=B0=ED=9A=8C=20API=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95=20=20=20-=20=EB=B0=98?= =?UTF-8?q?=ED=99=98=20=ED=83=80=EC=9E=85=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0=20=20=20-=20=EC=9D=91=EB=8B=B5=20npe=20=EB=B0=9C?= =?UTF-8?q?=EC=83=9D=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/festival/controller/FestivalController.kt | 3 +-- .../domain/festival/repository/FestivalLikesRepository.kt | 8 +++++++- .../busan/domain/festival/service/FestivalQueryService.kt | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/busanVibe/busan/domain/festival/controller/FestivalController.kt b/src/main/kotlin/busanVibe/busan/domain/festival/controller/FestivalController.kt index e7d0e4b..6e770c9 100644 --- a/src/main/kotlin/busanVibe/busan/domain/festival/controller/FestivalController.kt +++ b/src/main/kotlin/busanVibe/busan/domain/festival/controller/FestivalController.kt @@ -22,11 +22,10 @@ class FestivalController( ) { @GetMapping - @Operation(summary = "지역축제 목록 조회 API") fun festivalList( @RequestParam("sort", required = false) sort: FestivalSortType, @RequestParam("status", required = false)status: FestivalStatus - ):ApiResponse?{ + ):ApiResponse{ val festivalList = festivalQueryService.getFestivalList(sort, status) return ApiResponse.onSuccess(festivalList); diff --git a/src/main/kotlin/busanVibe/busan/domain/festival/repository/FestivalLikesRepository.kt b/src/main/kotlin/busanVibe/busan/domain/festival/repository/FestivalLikesRepository.kt index 2eb2f59..ce5e2c1 100644 --- a/src/main/kotlin/busanVibe/busan/domain/festival/repository/FestivalLikesRepository.kt +++ b/src/main/kotlin/busanVibe/busan/domain/festival/repository/FestivalLikesRepository.kt @@ -11,7 +11,13 @@ interface FestivalLikesRepository: JpaRepository { fun findAllByFestivalIn(festivalList: List): List fun findAllByFestivalIn(festivalList: Set): List - @Query("SELECT fl FROM FestivalLike fl WHERE fl.festival IN :festivals") + @Query( + """ + SELECT fl FROM FestivalLike fl + LEFT JOIN FETCH fl.user + WHERE fl.festival IN :festivals + """ + ) fun findLikeByFestival(@Param("festivals") festivalList: List): List } \ No newline at end of file diff --git a/src/main/kotlin/busanVibe/busan/domain/festival/service/FestivalQueryService.kt b/src/main/kotlin/busanVibe/busan/domain/festival/service/FestivalQueryService.kt index be91ffe..565f0e2 100644 --- a/src/main/kotlin/busanVibe/busan/domain/festival/service/FestivalQueryService.kt +++ b/src/main/kotlin/busanVibe/busan/domain/festival/service/FestivalQueryService.kt @@ -50,7 +50,7 @@ class FestivalQueryService( // val festivalIdList: List = festivalList.mapNotNull { it.id } // 좋아요 리스트 조회 - val festivalLikeList: List = festivalLikesRepository.findAllByFestivalIn(festivalList) + val festivalLikeList: List = festivalLikesRepository.findLikeByFestival(festivalList) // 좋아요 수 계산 val likeCountMap: Map = festivalLikeList From 7b0a83cc94d6dffd18ffd88f113ef0ac4603015f Mon Sep 17 00:00:00 2001 From: junyong Date: Wed, 20 Aug 2025 01:03:55 +0900 Subject: [PATCH 2/2] =?UTF-8?q?refactor:=20=EC=9D=91=EB=8B=B5=EA=B0=92=20i?= =?UTF-8?q?sliked=20->=20islike=20=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busanVibe/busan/domain/home/dto/HomeResponseDTO.kt | 4 ++-- .../busanVibe/busan/domain/home/service/HomeQueryService.kt | 2 +- .../busanVibe/busan/domain/search/dto/SearchResultDTO.kt | 4 ++-- .../kotlin/busanVibe/busan/domain/search/util/SearchUtil.kt | 4 ++-- .../busanVibe/busan/domain/user/data/dto/UserLikesDTO.kt | 6 +++--- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/kotlin/busanVibe/busan/domain/home/dto/HomeResponseDTO.kt b/src/main/kotlin/busanVibe/busan/domain/home/dto/HomeResponseDTO.kt index 421d5b0..5200a26 100644 --- a/src/main/kotlin/busanVibe/busan/domain/home/dto/HomeResponseDTO.kt +++ b/src/main/kotlin/busanVibe/busan/domain/home/dto/HomeResponseDTO.kt @@ -34,8 +34,8 @@ class HomeResponseDTO { val latitude: Double?, val longitude: Double?, val address: String, - @get:JsonProperty("is_liked") - val isLiked: Boolean + @get:JsonProperty("is_like") + val isLike: Boolean ) } \ No newline at end of file diff --git a/src/main/kotlin/busanVibe/busan/domain/home/service/HomeQueryService.kt b/src/main/kotlin/busanVibe/busan/domain/home/service/HomeQueryService.kt index e2ad225..f24708a 100644 --- a/src/main/kotlin/busanVibe/busan/domain/home/service/HomeQueryService.kt +++ b/src/main/kotlin/busanVibe/busan/domain/home/service/HomeQueryService.kt @@ -74,7 +74,7 @@ class HomeQueryService( latitude = place.latitude?.toDouble(), longitude = place.longitude?.toDouble(), address = place.address, - isLiked = place.placeLikes.any { it.user == currentUser } + isLike = place.placeLikes.any { it.user == currentUser } ) } } diff --git a/src/main/kotlin/busanVibe/busan/domain/search/dto/SearchResultDTO.kt b/src/main/kotlin/busanVibe/busan/domain/search/dto/SearchResultDTO.kt index 19e6d50..6bf0a51 100644 --- a/src/main/kotlin/busanVibe/busan/domain/search/dto/SearchResultDTO.kt +++ b/src/main/kotlin/busanVibe/busan/domain/search/dto/SearchResultDTO.kt @@ -22,8 +22,8 @@ class SearchResultDTO { val longitude: Double? = null, val address: String, val congestionLevel: Int? = null, - @get:JsonProperty("is_liked") - val isLiked: Boolean, + @get:JsonProperty("is_like") + val isLike: Boolean, val startDate: String? = null, val endDate: String? = null, @get:JsonProperty("is_end") diff --git a/src/main/kotlin/busanVibe/busan/domain/search/util/SearchUtil.kt b/src/main/kotlin/busanVibe/busan/domain/search/util/SearchUtil.kt index 13c4535..09dafaa 100644 --- a/src/main/kotlin/busanVibe/busan/domain/search/util/SearchUtil.kt +++ b/src/main/kotlin/busanVibe/busan/domain/search/util/SearchUtil.kt @@ -32,7 +32,7 @@ class SearchUtil( id = festival.id, name = festival.name, address = festival.place, - isLiked = festival.festivalLikes.any { it.user == currentUser }, + isLike = festival.festivalLikes.any { it.user == currentUser }, startDate = festival.startDate.toString(), endDate = festival.endDate.toString(), isEnd = festival.endDate.before(java.util.Date()), @@ -54,7 +54,7 @@ class SearchUtil( longitude = place.longitude?.toDouble(), address = place.address, congestionLevel = placeRedisUtil.getRedisCongestion(place.id), - isLiked = place.placeLikes.any { it.user == currentUser }, + isLike = place.placeLikes.any { it.user == currentUser }, startDate = null, endDate = null, isEnd = null, diff --git a/src/main/kotlin/busanVibe/busan/domain/user/data/dto/UserLikesDTO.kt b/src/main/kotlin/busanVibe/busan/domain/user/data/dto/UserLikesDTO.kt index 0dae9f8..6691882 100644 --- a/src/main/kotlin/busanVibe/busan/domain/user/data/dto/UserLikesDTO.kt +++ b/src/main/kotlin/busanVibe/busan/domain/user/data/dto/UserLikesDTO.kt @@ -17,12 +17,12 @@ class UserLikesDTO { val id: Long? = null, val name: String, val address: String, - @get:JsonProperty("is_liked") - val isLiked: Boolean, + @get:JsonProperty("is_like") + val isLike: Boolean, // val startDate: String? = null, // val endDate: String? = null, @get:JsonProperty("is_end") - val isEnd: Boolean? + val isEnd: Boolean?, ) } \ No newline at end of file