캐릭터 챗봇 #338

Merged
klaus merged 119 commits from test into main 2025-09-10 06:08:47 +00:00
1 changed files with 16 additions and 4 deletions
Showing only changes of commit d99fcba468 - Show all commits

View File

@ -1,6 +1,7 @@
package kr.co.vividnext.sodalive.admin.chat package kr.co.vividnext.sodalive.admin.chat
import com.amazonaws.services.s3.model.ObjectMetadata import com.amazonaws.services.s3.model.ObjectMetadata
import com.fasterxml.jackson.databind.ObjectMapper
import kr.co.vividnext.sodalive.admin.chat.character.dto.ChatCharacterSearchListPageResponse 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.character.service.AdminChatCharacterService
import kr.co.vividnext.sodalive.admin.chat.dto.ChatCharacterBannerListPageResponse import kr.co.vividnext.sodalive.admin.chat.dto.ChatCharacterBannerListPageResponse
@ -105,14 +106,20 @@ class AdminChatBannerController(
* 배너 등록 API * 배너 등록 API
* *
* @param image 배너 이미지 * @param image 배너 이미지
* @param request 배너 등록 요청 정보 (캐릭터 ID와 선택적으로 정렬 순서 포함) * @param requestString 배너 등록 요청 정보 (캐릭터 ID와 선택적으로 정렬 순서 포함)
* @return 등록된 배너 정보 * @return 등록된 배너 정보
*/ */
@PostMapping("/register") @PostMapping("/register")
fun registerBanner( fun registerBanner(
@RequestPart("image") image: MultipartFile, @RequestPart("image") image: MultipartFile,
@RequestPart("request") request: ChatCharacterBannerRegisterRequest @RequestPart("request") requestString: String
) = run { ) = run {
val objectMapper = ObjectMapper()
val request = objectMapper.readValue(
requestString,
ChatCharacterBannerRegisterRequest::class.java
)
// 1. 먼저 빈 이미지 경로로 배너 등록 (정렬 순서 포함) // 1. 먼저 빈 이미지 경로로 배너 등록 (정렬 순서 포함)
val banner = bannerService.registerBanner( val banner = bannerService.registerBanner(
characterId = request.characterId, characterId = request.characterId,
@ -160,14 +167,19 @@ class AdminChatBannerController(
* 배너 수정 API * 배너 수정 API
* *
* @param image 배너 이미지 * @param image 배너 이미지
* @param request 배너 수정 요청 정보 (배너 ID와 선택적으로 캐릭터 ID 포함) * @param requestString 배너 수정 요청 정보 (배너 ID와 선택적으로 캐릭터 ID 포함)
* @return 수정된 배너 정보 * @return 수정된 배너 정보
*/ */
@PutMapping("/update") @PutMapping("/update")
fun updateBanner( fun updateBanner(
@RequestPart("image") image: MultipartFile, @RequestPart("image") image: MultipartFile,
@RequestPart("request") request: ChatCharacterBannerUpdateRequest @RequestPart("request") requestString: String
) = run { ) = run {
val objectMapper = ObjectMapper()
val request = objectMapper.readValue(
requestString,
ChatCharacterBannerUpdateRequest::class.java
)
// 배너 정보 조회 // 배너 정보 조회
bannerService.getBannerById(request.bannerId) bannerService.getBannerById(request.bannerId)