|
|
|
|
@@ -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("시리즈를 선택하세요.")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|