관리자 콘텐츠 배너 등록/수정 API
- 시리즈 등록/수정 기능 추가
This commit is contained in:
		@@ -1,6 +1,7 @@
 | 
				
			|||||||
package kr.co.vividnext.sodalive.admin.content.banner
 | 
					package kr.co.vividnext.sodalive.admin.content.banner
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.fasterxml.jackson.databind.ObjectMapper
 | 
					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.aws.s3.S3Uploader
 | 
				
			||||||
import kr.co.vividnext.sodalive.common.SodaException
 | 
					import kr.co.vividnext.sodalive.common.SodaException
 | 
				
			||||||
import kr.co.vividnext.sodalive.content.main.banner.AudioContentBanner
 | 
					import kr.co.vividnext.sodalive.content.main.banner.AudioContentBanner
 | 
				
			||||||
@@ -19,6 +20,7 @@ class AdminContentBannerService(
 | 
				
			|||||||
    private val s3Uploader: S3Uploader,
 | 
					    private val s3Uploader: S3Uploader,
 | 
				
			||||||
    private val repository: AdminContentBannerRepository,
 | 
					    private val repository: AdminContentBannerRepository,
 | 
				
			||||||
    private val memberRepository: MemberRepository,
 | 
					    private val memberRepository: MemberRepository,
 | 
				
			||||||
 | 
					    private val seriesRepository: AdminContentSeriesRepository,
 | 
				
			||||||
    private val eventRepository: EventRepository,
 | 
					    private val eventRepository: EventRepository,
 | 
				
			||||||
    private val objectMapper: ObjectMapper,
 | 
					    private val objectMapper: ObjectMapper,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -32,6 +34,10 @@ class AdminContentBannerService(
 | 
				
			|||||||
            throw SodaException("크리에이터를 선택하세요.")
 | 
					            throw SodaException("크리에이터를 선택하세요.")
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (request.type == AudioContentBannerType.SERIES && request.seriesId == null) {
 | 
				
			||||||
 | 
					            throw SodaException("시리즈를 선택하세요.")
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (request.type == AudioContentBannerType.LINK && request.link == null) {
 | 
					        if (request.type == AudioContentBannerType.LINK && request.link == null) {
 | 
				
			||||||
            throw SodaException("링크 url을 입력하세요.")
 | 
					            throw SodaException("링크 url을 입력하세요.")
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -52,11 +58,18 @@ class AdminContentBannerService(
 | 
				
			|||||||
            null
 | 
					            null
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        val series = if (request.seriesId != null && request.seriesId > 0) {
 | 
				
			||||||
 | 
					            seriesRepository.findByIdOrNull(request.seriesId)
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            null
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        val audioContentBanner = AudioContentBanner(type = request.type)
 | 
					        val audioContentBanner = AudioContentBanner(type = request.type)
 | 
				
			||||||
        audioContentBanner.link = request.link
 | 
					        audioContentBanner.link = request.link
 | 
				
			||||||
        audioContentBanner.isAdult = request.isAdult
 | 
					        audioContentBanner.isAdult = request.isAdult
 | 
				
			||||||
        audioContentBanner.event = event
 | 
					        audioContentBanner.event = event
 | 
				
			||||||
        audioContentBanner.creator = creator
 | 
					        audioContentBanner.creator = creator
 | 
				
			||||||
 | 
					        audioContentBanner.series = series
 | 
				
			||||||
        repository.save(audioContentBanner)
 | 
					        repository.save(audioContentBanner)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        val fileName = generateFileName()
 | 
					        val fileName = generateFileName()
 | 
				
			||||||
@@ -96,30 +109,48 @@ class AdminContentBannerService(
 | 
				
			|||||||
            audioContentBanner.creator = null
 | 
					            audioContentBanner.creator = null
 | 
				
			||||||
            audioContentBanner.event = null
 | 
					            audioContentBanner.event = null
 | 
				
			||||||
            audioContentBanner.link = null
 | 
					            audioContentBanner.link = null
 | 
				
			||||||
 | 
					            audioContentBanner.series = null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (request.type == AudioContentBannerType.CREATOR) {
 | 
					            when (request.type) {
 | 
				
			||||||
                if (request.creatorId != null) {
 | 
					                AudioContentBannerType.EVENT -> {
 | 
				
			||||||
                    val creator = memberRepository.findByIdOrNull(request.creatorId)
 | 
					                    if (request.eventId != null) {
 | 
				
			||||||
                        ?: throw SodaException("크리에이터를 선택하세요.")
 | 
					                        val event = eventRepository.findByIdOrNull(request.eventId)
 | 
				
			||||||
 | 
					                            ?: throw SodaException("이벤트를 선택하세요.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    audioContentBanner.creator = creator
 | 
					                        audioContentBanner.event = event
 | 
				
			||||||
                } else {
 | 
					                    } else {
 | 
				
			||||||
                    throw SodaException("크리에이터를 선택하세요.")
 | 
					                        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
 | 
					                AudioContentBannerType.CREATOR -> {
 | 
				
			||||||
                } else {
 | 
					                    if (request.creatorId != null) {
 | 
				
			||||||
                    throw SodaException("이벤트를 선택하세요.")
 | 
					                        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("시리즈를 선택하세요.")
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,7 @@ data class CreateContentBannerRequest(
 | 
				
			|||||||
    val type: AudioContentBannerType,
 | 
					    val type: AudioContentBannerType,
 | 
				
			||||||
    val eventId: Long?,
 | 
					    val eventId: Long?,
 | 
				
			||||||
    val creatorId: Long?,
 | 
					    val creatorId: Long?,
 | 
				
			||||||
 | 
					    val seriesId: Long?,
 | 
				
			||||||
    val link: String?,
 | 
					    val link: String?,
 | 
				
			||||||
    val isAdult: Boolean
 | 
					    val isAdult: Boolean
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,6 +7,7 @@ data class UpdateContentBannerRequest(
 | 
				
			|||||||
    val type: AudioContentBannerType?,
 | 
					    val type: AudioContentBannerType?,
 | 
				
			||||||
    val eventId: Long?,
 | 
					    val eventId: Long?,
 | 
				
			||||||
    val creatorId: Long?,
 | 
					    val creatorId: Long?,
 | 
				
			||||||
 | 
					    val seriesId: Long?,
 | 
				
			||||||
    val link: String?,
 | 
					    val link: String?,
 | 
				
			||||||
    val isAdult: Boolean?,
 | 
					    val isAdult: Boolean?,
 | 
				
			||||||
    val isActive: Boolean?
 | 
					    val isActive: Boolean?
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user