From e9e538168c737877049f586da265cbf7e17e8523 Mon Sep 17 00:00:00 2001 From: Klaus Date: Thu, 23 Jan 2025 19:33:17 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=ED=81=90?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=85=98=20=EB=93=B1=EB=A1=9D/=EC=88=98?= =?UTF-8?q?=EC=A0=95=20-=20=ED=83=AD=EA=B3=BC=20=EC=8B=9C=EB=A6=AC?= =?UTF-8?q?=EC=A6=88=20=EC=97=AC=EB=B6=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../curation/AdminContentCurationService.kt | 33 +++++++++++++++---- .../curation/AudioContentCurationRequest.kt | 6 +++- .../main/curation/AudioContentCuration.kt | 14 ++++++-- 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationService.kt index b6d0c14..67e7502 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AdminContentCurationService.kt @@ -1,5 +1,6 @@ package kr.co.vividnext.sodalive.admin.content.curation +import kr.co.vividnext.sodalive.admin.content.tab.AdminContentMainTabRepository import kr.co.vividnext.sodalive.common.SodaException import kr.co.vividnext.sodalive.content.main.curation.AudioContentCuration import org.springframework.data.repository.findByIdOrNull @@ -8,17 +9,23 @@ import org.springframework.transaction.annotation.Transactional @Service class AdminContentCurationService( - private val repository: AdminContentCurationRepository + private val repository: AdminContentCurationRepository, + private val contentMainTabRepository: AdminContentMainTabRepository ) { @Transactional fun createContentCuration(request: CreateContentCurationRequest) { - repository.save( - AudioContentCuration( - title = request.title, - description = request.description, - isAdult = request.isAdult - ) + val tab = contentMainTabRepository.findByIdOrNull(request.tabId) + ?: throw SodaException("잘못된 요청입니다.") + + val curation = AudioContentCuration( + title = request.title, + description = request.description, + isAdult = request.isAdult, + isSeries = request.isSeries ) + curation.tab = tab + + repository.save(curation) } @Transactional @@ -41,6 +48,18 @@ class AdminContentCurationService( if (request.isActive != null) { audioContentCuration.isActive = request.isActive } + + if (request.isSeries != null) { + audioContentCuration.isSeries = request.isSeries + } + + if (request.tabId != null) { + val tab = contentMainTabRepository.findByIdOrNull(request.tabId) + + if (tab != null) { + audioContentCuration.tab = tab + } + } } @Transactional diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AudioContentCurationRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AudioContentCurationRequest.kt index 49b46d7..b2ae35d 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AudioContentCurationRequest.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/curation/AudioContentCurationRequest.kt @@ -1,16 +1,20 @@ package kr.co.vividnext.sodalive.admin.content.curation data class CreateContentCurationRequest( + val tabId: Long, val title: String, val description: String, - val isAdult: Boolean + val isAdult: Boolean, + val isSeries: Boolean ) data class UpdateContentCurationRequest( val id: Long, + val tabId: Long?, val title: String?, val description: String?, val isAdult: Boolean?, + val isSeries: Boolean?, val isActive: Boolean? ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/curation/AudioContentCuration.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/curation/AudioContentCuration.kt index d5955cf..eeebc15 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/main/curation/AudioContentCuration.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/main/curation/AudioContentCuration.kt @@ -1,8 +1,12 @@ package kr.co.vividnext.sodalive.content.main.curation import kr.co.vividnext.sodalive.common.BaseEntity +import kr.co.vividnext.sodalive.content.main.tab.AudioContentMainTab import javax.persistence.Column import javax.persistence.Entity +import javax.persistence.FetchType +import javax.persistence.JoinColumn +import javax.persistence.OneToOne import javax.persistence.Table @Entity @@ -17,5 +21,11 @@ data class AudioContentCuration( @Column(nullable = false) var isActive: Boolean = true, @Column(nullable = false) - var orders: Int = 1 -) : BaseEntity() + var orders: Int = 1, + @Column(nullable = false) + var isSeries: Boolean = false +) : BaseEntity() { + @OneToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "tab_id", nullable = true) + var tab: AudioContentMainTab? = null +}