From e0c9a2cea798b1d13ba589a37ee5abc640cfae27 Mon Sep 17 00:00:00 2001 From: Klaus Date: Fri, 17 Jan 2025 03:15:31 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=EC=BD=98?= =?UTF-8?q?=ED=85=90=EC=B8=A0=20=EB=B0=B0=EB=84=88=20=EB=93=B1=EB=A1=9D/?= =?UTF-8?q?=EC=88=98=EC=A0=95=20API=20-=20=EC=8B=9C=EB=A6=AC=EC=A6=88=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D/=EC=88=98=EC=A0=95=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../banner/AdminContentBannerService.kt | 71 +++++++++++++------ .../banner/CreateContentBannerRequest.kt | 1 + .../banner/UpdateContentBannerRequest.kt | 1 + 3 files changed, 53 insertions(+), 20 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerService.kt index b7e4837..4fdddae 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerService.kt @@ -1,6 +1,7 @@ package kr.co.vividnext.sodalive.admin.content.banner import com.fasterxml.jackson.databind.ObjectMapper +import kr.co.vividnext.sodalive.admin.content.series.AdminContentSeriesRepository import kr.co.vividnext.sodalive.aws.s3.S3Uploader import kr.co.vividnext.sodalive.common.SodaException import kr.co.vividnext.sodalive.content.main.banner.AudioContentBanner @@ -19,6 +20,7 @@ class AdminContentBannerService( private val s3Uploader: S3Uploader, private val repository: AdminContentBannerRepository, private val memberRepository: MemberRepository, + private val seriesRepository: AdminContentSeriesRepository, private val eventRepository: EventRepository, private val objectMapper: ObjectMapper, @@ -32,6 +34,10 @@ class AdminContentBannerService( throw SodaException("크리에이터를 선택하세요.") } + if (request.type == AudioContentBannerType.SERIES && request.seriesId == null) { + throw SodaException("시리즈를 선택하세요.") + } + if (request.type == AudioContentBannerType.LINK && request.link == null) { throw SodaException("링크 url을 입력하세요.") } @@ -52,11 +58,18 @@ class AdminContentBannerService( null } + val series = if (request.seriesId != null && request.seriesId > 0) { + seriesRepository.findByIdOrNull(request.seriesId) + } else { + null + } + val audioContentBanner = AudioContentBanner(type = request.type) audioContentBanner.link = request.link audioContentBanner.isAdult = request.isAdult audioContentBanner.event = event audioContentBanner.creator = creator + audioContentBanner.series = series repository.save(audioContentBanner) val fileName = generateFileName() @@ -96,30 +109,48 @@ class AdminContentBannerService( audioContentBanner.creator = null audioContentBanner.event = null audioContentBanner.link = null + audioContentBanner.series = null - if (request.type == AudioContentBannerType.CREATOR) { - if (request.creatorId != null) { - val creator = memberRepository.findByIdOrNull(request.creatorId) - ?: throw SodaException("크리에이터를 선택하세요.") + when (request.type) { + AudioContentBannerType.EVENT -> { + if (request.eventId != null) { + val event = eventRepository.findByIdOrNull(request.eventId) + ?: throw SodaException("이벤트를 선택하세요.") - audioContentBanner.creator = creator - } else { - throw SodaException("크리에이터를 선택하세요.") + audioContentBanner.event = event + } else { + throw SodaException("이벤트를 선택하세요.") + } } - } else if (request.type == AudioContentBannerType.LINK) { - if (request.link != null) { - audioContentBanner.link = request.link - } else { - throw SodaException("링크 url을 입력하세요.") - } - } else if (request.type == AudioContentBannerType.EVENT) { - if (request.eventId != null) { - val event = eventRepository.findByIdOrNull(request.eventId) - ?: throw SodaException("이벤트를 선택하세요.") - audioContentBanner.event = event - } else { - throw SodaException("이벤트를 선택하세요.") + AudioContentBannerType.CREATOR -> { + if (request.creatorId != null) { + val creator = memberRepository.findByIdOrNull(request.creatorId) + ?: throw SodaException("크리에이터를 선택하세요.") + + audioContentBanner.creator = creator + } else { + throw SodaException("크리에이터를 선택하세요.") + } + } + + AudioContentBannerType.LINK -> { + if (request.link != null) { + audioContentBanner.link = request.link + } else { + throw SodaException("링크 url을 입력하세요.") + } + } + + AudioContentBannerType.SERIES -> { + if (request.seriesId != null) { + val series = seriesRepository.findByIdOrNull(request.seriesId) + ?: throw SodaException("시리즈를 선택하세요.") + + audioContentBanner.series = series + } else { + throw SodaException("시리즈를 선택하세요.") + } } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/CreateContentBannerRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/CreateContentBannerRequest.kt index 3203366..ca9cb5e 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/CreateContentBannerRequest.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/CreateContentBannerRequest.kt @@ -6,6 +6,7 @@ data class CreateContentBannerRequest( val type: AudioContentBannerType, val eventId: Long?, val creatorId: Long?, + val seriesId: Long?, val link: String?, val isAdult: Boolean ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/UpdateContentBannerRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/UpdateContentBannerRequest.kt index fe97928..fcbad72 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/UpdateContentBannerRequest.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/UpdateContentBannerRequest.kt @@ -7,6 +7,7 @@ data class UpdateContentBannerRequest( val type: AudioContentBannerType?, val eventId: Long?, val creatorId: Long?, + val seriesId: Long?, val link: String?, val isAdult: Boolean?, val isActive: Boolean?