From 81f972edc16339e6c65dbab6dcf4d50b07149839 Mon Sep 17 00:00:00 2001 From: Klaus Date: Thu, 7 Aug 2025 14:45:28 +0900 Subject: [PATCH] =?UTF-8?q?fix(banner):=20ChatCharacterBanner=20=EC=97=94?= =?UTF-8?q?=ED=8B=B0=ED=8B=B0=EC=9D=98=20isActive=20=EC=86=8D=EC=84=B1=20?= =?UTF-8?q?=EC=B0=B8=EC=A1=B0=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 사용하지 않는 메서드 제거 --- .../dto/ChatCharacterSearchResponse.kt | 5 --- .../chat/dto/ChatCharacterBannerResponse.kt | 5 --- .../ChatCharacterBannerRepository.kt | 32 +------------------ .../service/ChatCharacterBannerService.kt | 16 +--------- 4 files changed, 2 insertions(+), 56 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/character/dto/ChatCharacterSearchResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/character/dto/ChatCharacterSearchResponse.kt index e4e06ad..4678747 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/character/dto/ChatCharacterSearchResponse.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/character/dto/ChatCharacterSearchResponse.kt @@ -1,7 +1,6 @@ package kr.co.vividnext.sodalive.admin.chat.character.dto import kr.co.vividnext.sodalive.chat.character.ChatCharacter -import org.springframework.data.domain.Page /** * 캐릭터 검색 결과 응답 DTO @@ -27,9 +26,5 @@ data class ChatCharacterSearchResponse( tags = tags ) } - - fun fromPage(characters: Page, imageHost: String): Page { - return characters.map { from(it, imageHost) } - } } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/dto/ChatCharacterBannerResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/dto/ChatCharacterBannerResponse.kt index 05012b7..4afd07b 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/dto/ChatCharacterBannerResponse.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/dto/ChatCharacterBannerResponse.kt @@ -1,7 +1,6 @@ package kr.co.vividnext.sodalive.admin.chat.dto import kr.co.vividnext.sodalive.chat.character.ChatCharacterBanner -import org.springframework.data.domain.Page /** * 캐릭터 배너 응답 DTO @@ -21,10 +20,6 @@ data class ChatCharacterBannerResponse( characterName = banner.chatCharacter.name ) } - - fun fromPage(banners: Page, imageHost: String): Page { - return banners.map { from(it, imageHost) } - } } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/repository/ChatCharacterBannerRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/repository/ChatCharacterBannerRepository.kt index b849c7e..0f3d403 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/repository/ChatCharacterBannerRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/repository/ChatCharacterBannerRepository.kt @@ -1,43 +1,13 @@ package kr.co.vividnext.sodalive.chat.character.repository -import kr.co.vividnext.sodalive.chat.character.ChatCharacter import kr.co.vividnext.sodalive.chat.character.ChatCharacterBanner import org.springframework.data.domain.Page import org.springframework.data.domain.Pageable import org.springframework.data.jpa.repository.JpaRepository -import org.springframework.data.jpa.repository.Query -import org.springframework.data.repository.query.Param import org.springframework.stereotype.Repository @Repository interface ChatCharacterBannerRepository : JpaRepository { // 활성화된 배너 목록 조회 - fun findByIsActiveTrue(pageable: Pageable): Page - - // 특정 캐릭터의 활성화된 배너 목록 조회 - fun findByChatCharacterAndIsActiveTrue(chatCharacter: ChatCharacter): List - - // 특정 캐릭터 ID의 활성화된 배너 목록 조회 - fun findByChatCharacter_IdAndIsActiveTrue(characterId: Long): List - - // 이름, 설명, MBTI, 태그로 캐릭터 검색 (배너 포함) - @Query( - """ - SELECT DISTINCT b FROM ChatCharacterBanner b - JOIN FETCH b.chatCharacter c - LEFT JOIN c.tagMappings tm - LEFT JOIN tm.tag t - WHERE b.isActive = true AND c.isActive = true AND - ( - LOWER(c.name) LIKE LOWER(CONCAT('%', :searchTerm, '%')) OR - LOWER(c.description) LIKE LOWER(CONCAT('%', :searchTerm, '%')) OR - (c.mbti IS NOT NULL AND LOWER(c.mbti) LIKE LOWER(CONCAT('%', :searchTerm, '%'))) OR - (t.tag IS NOT NULL AND LOWER(t.tag) LIKE LOWER(CONCAT('%', :searchTerm, '%'))) - ) - """ - ) - fun searchBannersByCharacterAttributes( - @Param("searchTerm") searchTerm: String, - pageable: Pageable - ): Page + fun findByActiveTrue(pageable: Pageable): Page } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/service/ChatCharacterBannerService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/service/ChatCharacterBannerService.kt index b9175bc..a96e7e2 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/service/ChatCharacterBannerService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/service/ChatCharacterBannerService.kt @@ -18,7 +18,7 @@ class ChatCharacterBannerService( * 활성화된 모든 배너 조회 */ fun getActiveBanners(pageable: Pageable): Page { - return bannerRepository.findByIsActiveTrue(pageable) + return bannerRepository.findByActiveTrue(pageable) } /** @@ -29,20 +29,6 @@ class ChatCharacterBannerService( .orElseThrow { SodaException("배너를 찾을 수 없습니다: $bannerId") } } - /** - * 특정 캐릭터의 활성화된 배너 목록 조회 - */ - fun getActiveBannersByCharacterId(characterId: Long): List { - return bannerRepository.findByChatCharacter_IdAndIsActiveTrue(characterId) - } - - /** - * 이름, 설명, MBTI, 태그로 캐릭터 검색 (배너 포함) - */ - fun searchBannersByCharacterAttributes(searchTerm: String, pageable: Pageable): Page { - return bannerRepository.searchBannersByCharacterAttributes(searchTerm, pageable) - } - /** * 배너 등록 */