From 5129400a291f31b53d2e843e264aa8b8ca3fe881 Mon Sep 17 00:00:00 2001 From: Klaus Date: Fri, 8 Aug 2025 21:46:47 +0900 Subject: [PATCH] =?UTF-8?q?fix(banner):=20=EC=BA=90=EB=A6=AD=ED=84=B0=20?= =?UTF-8?q?=EA=B2=80=EC=83=89=20=EA=B2=B0=EA=B3=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Paging 관련 데이터 중 totalCount만 반환 --- .../admin/chat/AdminChatBannerController.kt | 9 +++++++-- .../dto/ChatCharacterSearchResponse.kt | 20 +++++++++---------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/AdminChatBannerController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/AdminChatBannerController.kt index 2c4b4b0..d4831fb 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/AdminChatBannerController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/chat/AdminChatBannerController.kt @@ -1,6 +1,7 @@ package kr.co.vividnext.sodalive.admin.chat import com.amazonaws.services.s3.model.ObjectMetadata +import kr.co.vividnext.sodalive.admin.chat.character.dto.ChatCharacterSearchListPageResponse import kr.co.vividnext.sodalive.admin.chat.character.service.AdminChatCharacterService import kr.co.vividnext.sodalive.admin.chat.dto.ChatCharacterBannerListPageResponse import kr.co.vividnext.sodalive.admin.chat.dto.ChatCharacterBannerRegisterRequest @@ -27,7 +28,7 @@ import org.springframework.web.bind.annotation.RestController import org.springframework.web.multipart.MultipartFile @RestController -@RequestMapping("/api/admin/chat/banner") +@RequestMapping("/admin/chat/banner") @PreAuthorize("hasRole('ADMIN')") class AdminChatBannerController( private val bannerService: ChatCharacterBannerService, @@ -91,7 +92,11 @@ class AdminChatBannerController( @RequestParam(defaultValue = "20") size: Int ) = run { val pageable = adminCharacterService.createDefaultPageRequest(page, size) - val response = adminCharacterService.searchCharacters(searchTerm, pageable, imageHost) + val pageResult = adminCharacterService.searchCharacters(searchTerm, pageable, imageHost) + val response = ChatCharacterSearchListPageResponse( + totalCount = pageResult.totalElements, + content = pageResult.content + ) ApiResponse.ok(response) } 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 cade24a..9c93850 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 @@ -8,23 +8,23 @@ import kr.co.vividnext.sodalive.chat.character.ChatCharacter data class ChatCharacterSearchResponse( val id: Long, val name: String, - val description: String, - val mbti: String?, - val imagePath: String?, - val tags: List + val imagePath: String? ) { companion object { fun from(character: ChatCharacter, imageHost: String): ChatCharacterSearchResponse { - val tags = character.tagMappings.map { it.tag.tag } - return ChatCharacterSearchResponse( id = character.id!!, name = character.name, - description = character.description, - mbti = character.mbti, - imagePath = character.imagePath?.let { "$imageHost/$it" }, - tags = tags + imagePath = character.imagePath?.let { "$imageHost/$it" } ) } } } + +/** + * 캐릭터 검색 결과 페이지 응답 DTO + */ +data class ChatCharacterSearchListPageResponse( + val totalCount: Long, + val content: List +)