parent
4923a04c9d
commit
26d9b6cf35
|
@ -5,6 +5,7 @@ import kr.co.vividnext.sodalive.content.hashtag.AudioContentHashTag
|
||||||
import kr.co.vividnext.sodalive.content.main.curation.AudioContentCuration
|
import kr.co.vividnext.sodalive.content.main.curation.AudioContentCuration
|
||||||
import kr.co.vividnext.sodalive.content.theme.AudioContentTheme
|
import kr.co.vividnext.sodalive.content.theme.AudioContentTheme
|
||||||
import kr.co.vividnext.sodalive.member.Member
|
import kr.co.vividnext.sodalive.member.Member
|
||||||
|
import java.time.LocalDateTime
|
||||||
import javax.persistence.CascadeType
|
import javax.persistence.CascadeType
|
||||||
import javax.persistence.Column
|
import javax.persistence.Column
|
||||||
import javax.persistence.Entity
|
import javax.persistence.Entity
|
||||||
|
@ -32,6 +33,7 @@ data class AudioContent(
|
||||||
@Column(columnDefinition = "TEXT", nullable = false)
|
@Column(columnDefinition = "TEXT", nullable = false)
|
||||||
var detail: String,
|
var detail: String,
|
||||||
val price: Int = 0,
|
val price: Int = 0,
|
||||||
|
var releaseDate: LocalDateTime? = null,
|
||||||
@Enumerated(value = EnumType.STRING)
|
@Enumerated(value = EnumType.STRING)
|
||||||
val type: AudioContentType = AudioContentType.INDIVIDUAL,
|
val type: AudioContentType = AudioContentType.INDIVIDUAL,
|
||||||
val isGeneratePreview: Boolean = true,
|
val isGeneratePreview: Boolean = true,
|
||||||
|
|
|
@ -18,6 +18,7 @@ import kr.co.vividnext.sodalive.content.order.OrderRepository
|
||||||
import kr.co.vividnext.sodalive.content.order.OrderType
|
import kr.co.vividnext.sodalive.content.order.OrderType
|
||||||
import kr.co.vividnext.sodalive.content.theme.AudioContentThemeQueryRepository
|
import kr.co.vividnext.sodalive.content.theme.AudioContentThemeQueryRepository
|
||||||
import kr.co.vividnext.sodalive.explorer.ExplorerQueryRepository
|
import kr.co.vividnext.sodalive.explorer.ExplorerQueryRepository
|
||||||
|
import kr.co.vividnext.sodalive.extensions.convertLocalDateTime
|
||||||
import kr.co.vividnext.sodalive.fcm.FcmEvent
|
import kr.co.vividnext.sodalive.fcm.FcmEvent
|
||||||
import kr.co.vividnext.sodalive.fcm.FcmEventType
|
import kr.co.vividnext.sodalive.fcm.FcmEventType
|
||||||
import kr.co.vividnext.sodalive.member.Member
|
import kr.co.vividnext.sodalive.member.Member
|
||||||
|
@ -143,6 +144,15 @@ class AudioContentService(
|
||||||
// 미리듣기 시간 체크
|
// 미리듣기 시간 체크
|
||||||
validatePreviewTime(request.previewStartTime, request.previewEndTime)
|
validatePreviewTime(request.previewStartTime, request.previewEndTime)
|
||||||
|
|
||||||
|
val releaseDate = if (request.releaseDate != null) {
|
||||||
|
request.releaseDate.convertLocalDateTime("yyyy-MM-dd HH:mm")
|
||||||
|
.atZone(ZoneId.of(request.timezone))
|
||||||
|
.withZoneSameInstant(ZoneId.of("UTC"))
|
||||||
|
.toLocalDateTime()
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
|
||||||
// contentFile 체크
|
// contentFile 체크
|
||||||
if (contentFile == null && request.type == AudioContentType.INDIVIDUAL) {
|
if (contentFile == null && request.type == AudioContentType.INDIVIDUAL) {
|
||||||
throw SodaException("콘텐츠를 선택해 주세요.")
|
throw SodaException("콘텐츠를 선택해 주세요.")
|
||||||
|
@ -168,6 +178,7 @@ class AudioContentService(
|
||||||
} else {
|
} else {
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
|
releaseDate = releaseDate,
|
||||||
isAdult = request.isAdult,
|
isAdult = request.isAdult,
|
||||||
isGeneratePreview = if (request.type == AudioContentType.INDIVIDUAL) {
|
isGeneratePreview = if (request.type == AudioContentType.INDIVIDUAL) {
|
||||||
request.isGeneratePreview
|
request.isGeneratePreview
|
||||||
|
@ -346,29 +357,31 @@ class AudioContentService(
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
applicationEventPublisher.publishEvent(
|
if (audioContent.releaseDate == null) {
|
||||||
FcmEvent(
|
applicationEventPublisher.publishEvent(
|
||||||
type = FcmEventType.UPLOAD_CONTENT,
|
FcmEvent(
|
||||||
title = audioContent.member!!.nickname,
|
type = FcmEventType.UPLOAD_CONTENT,
|
||||||
message = "콘텐츠를 업로드 하였습니다. - ${audioContent.title}",
|
title = audioContent.member!!.nickname,
|
||||||
isAuth = audioContent.isAdult,
|
message = "콘텐츠를 업로드 하였습니다. - ${audioContent.title}",
|
||||||
contentId = contentId,
|
isAuth = audioContent.isAdult,
|
||||||
creatorId = audioContent.member!!.id,
|
contentId = contentId,
|
||||||
container = "ios"
|
creatorId = audioContent.member!!.id,
|
||||||
|
container = "ios"
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
applicationEventPublisher.publishEvent(
|
applicationEventPublisher.publishEvent(
|
||||||
FcmEvent(
|
FcmEvent(
|
||||||
type = FcmEventType.UPLOAD_CONTENT,
|
type = FcmEventType.UPLOAD_CONTENT,
|
||||||
title = audioContent.member!!.nickname,
|
title = audioContent.member!!.nickname,
|
||||||
message = "콘텐츠를 업로드 하였습니다. - ${audioContent.title}",
|
message = "콘텐츠를 업로드 하였습니다. - ${audioContent.title}",
|
||||||
isAuth = audioContent.isAdult,
|
isAuth = audioContent.isAdult,
|
||||||
contentId = contentId,
|
contentId = contentId,
|
||||||
creatorId = audioContent.member!!.id,
|
creatorId = audioContent.member!!.id,
|
||||||
container = "aos"
|
container = "aos"
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getDetail(id: Long, member: Member, timezone: String): GetAudioContentDetailResponse {
|
fun getDetail(id: Long, member: Member, timezone: String): GetAudioContentDetailResponse {
|
||||||
|
|
|
@ -5,6 +5,8 @@ data class CreateAudioContentRequest(
|
||||||
val detail: String,
|
val detail: String,
|
||||||
val tags: String,
|
val tags: String,
|
||||||
val price: Int,
|
val price: Int,
|
||||||
|
val timezone: String,
|
||||||
|
val releaseDate: String? = null,
|
||||||
val themeId: Long = 0,
|
val themeId: Long = 0,
|
||||||
val isAdult: Boolean = false,
|
val isAdult: Boolean = false,
|
||||||
val isGeneratePreview: Boolean = true,
|
val isGeneratePreview: Boolean = true,
|
||||||
|
|
Loading…
Reference in New Issue