parent
49a5e47f9d
commit
e9e538168c
|
@ -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
|
||||||
|
|
|
@ -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?
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue