관리자 큐레이션 등록/수정

- 탭과 시리즈 여부 추가
This commit is contained in:
Klaus 2025-01-23 19:33:17 +09:00
parent 49a5e47f9d
commit e9e538168c
3 changed files with 43 additions and 10 deletions

View File

@ -1,5 +1,6 @@
package kr.co.vividnext.sodalive.admin.content.curation 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.common.SodaException
import kr.co.vividnext.sodalive.content.main.curation.AudioContentCuration import kr.co.vividnext.sodalive.content.main.curation.AudioContentCuration
import org.springframework.data.repository.findByIdOrNull import org.springframework.data.repository.findByIdOrNull
@ -8,17 +9,23 @@ import org.springframework.transaction.annotation.Transactional
@Service @Service
class AdminContentCurationService( class AdminContentCurationService(
private val repository: AdminContentCurationRepository private val repository: AdminContentCurationRepository,
private val contentMainTabRepository: AdminContentMainTabRepository
) { ) {
@Transactional @Transactional
fun createContentCuration(request: CreateContentCurationRequest) { fun createContentCuration(request: CreateContentCurationRequest) {
repository.save( val tab = contentMainTabRepository.findByIdOrNull(request.tabId)
AudioContentCuration( ?: throw SodaException("잘못된 요청입니다.")
val curation = AudioContentCuration(
title = request.title, title = request.title,
description = request.description, description = request.description,
isAdult = request.isAdult isAdult = request.isAdult,
) isSeries = request.isSeries
) )
curation.tab = tab
repository.save(curation)
} }
@Transactional @Transactional
@ -41,6 +48,18 @@ class AdminContentCurationService(
if (request.isActive != null) { if (request.isActive != null) {
audioContentCuration.isActive = request.isActive 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 @Transactional

View File

@ -1,16 +1,20 @@
package kr.co.vividnext.sodalive.admin.content.curation package kr.co.vividnext.sodalive.admin.content.curation
data class CreateContentCurationRequest( data class CreateContentCurationRequest(
val tabId: Long,
val title: String, val title: String,
val description: String, val description: String,
val isAdult: Boolean val isAdult: Boolean,
val isSeries: Boolean
) )
data class UpdateContentCurationRequest( data class UpdateContentCurationRequest(
val id: Long, val id: Long,
val tabId: Long?,
val title: String?, val title: String?,
val description: String?, val description: String?,
val isAdult: Boolean?, val isAdult: Boolean?,
val isSeries: Boolean?,
val isActive: Boolean? val isActive: Boolean?
) )

View File

@ -1,8 +1,12 @@
package kr.co.vividnext.sodalive.content.main.curation package kr.co.vividnext.sodalive.content.main.curation
import kr.co.vividnext.sodalive.common.BaseEntity import kr.co.vividnext.sodalive.common.BaseEntity
import kr.co.vividnext.sodalive.content.main.tab.AudioContentMainTab
import javax.persistence.Column import javax.persistence.Column
import javax.persistence.Entity import javax.persistence.Entity
import javax.persistence.FetchType
import javax.persistence.JoinColumn
import javax.persistence.OneToOne
import javax.persistence.Table import javax.persistence.Table
@Entity @Entity
@ -17,5 +21,11 @@ data class AudioContentCuration(
@Column(nullable = false) @Column(nullable = false)
var isActive: Boolean = true, var isActive: Boolean = true,
@Column(nullable = false) @Column(nullable = false)
var orders: Int = 1 var orders: Int = 1,
) : BaseEntity() @Column(nullable = false)
var isSeries: Boolean = false
) : BaseEntity() {
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "tab_id", nullable = true)
var tab: AudioContentMainTab? = null
}