관리자 큐레이션 등록/수정
- 탭과 시리즈 여부 추가
This commit is contained in:
		| @@ -1,5 +1,6 @@ | ||||
| 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.content.main.curation.AudioContentCuration | ||||
| import org.springframework.data.repository.findByIdOrNull | ||||
| @@ -8,17 +9,23 @@ import org.springframework.transaction.annotation.Transactional | ||||
|  | ||||
| @Service | ||||
| class AdminContentCurationService( | ||||
|     private val repository: AdminContentCurationRepository | ||||
|     private val repository: AdminContentCurationRepository, | ||||
|     private val contentMainTabRepository: AdminContentMainTabRepository | ||||
| ) { | ||||
|     @Transactional | ||||
|     fun createContentCuration(request: CreateContentCurationRequest) { | ||||
|         repository.save( | ||||
|             AudioContentCuration( | ||||
|                 title = request.title, | ||||
|                 description = request.description, | ||||
|                 isAdult = request.isAdult | ||||
|             ) | ||||
|         val tab = contentMainTabRepository.findByIdOrNull(request.tabId) | ||||
|             ?: throw SodaException("잘못된 요청입니다.") | ||||
|  | ||||
|         val curation = AudioContentCuration( | ||||
|             title = request.title, | ||||
|             description = request.description, | ||||
|             isAdult = request.isAdult, | ||||
|             isSeries = request.isSeries | ||||
|         ) | ||||
|         curation.tab = tab | ||||
|  | ||||
|         repository.save(curation) | ||||
|     } | ||||
|  | ||||
|     @Transactional | ||||
| @@ -41,6 +48,18 @@ class AdminContentCurationService( | ||||
|         if (request.isActive != null) { | ||||
|             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 | ||||
|   | ||||
| @@ -1,16 +1,20 @@ | ||||
| package kr.co.vividnext.sodalive.admin.content.curation | ||||
|  | ||||
| data class CreateContentCurationRequest( | ||||
|     val tabId: Long, | ||||
|     val title: String, | ||||
|     val description: String, | ||||
|     val isAdult: Boolean | ||||
|     val isAdult: Boolean, | ||||
|     val isSeries: Boolean | ||||
| ) | ||||
|  | ||||
| data class UpdateContentCurationRequest( | ||||
|     val id: Long, | ||||
|     val tabId: Long?, | ||||
|     val title: String?, | ||||
|     val description: String?, | ||||
|     val isAdult: Boolean?, | ||||
|     val isSeries: Boolean?, | ||||
|     val isActive: Boolean? | ||||
| ) | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,12 @@ | ||||
| package kr.co.vividnext.sodalive.content.main.curation | ||||
|  | ||||
| import kr.co.vividnext.sodalive.common.BaseEntity | ||||
| import kr.co.vividnext.sodalive.content.main.tab.AudioContentMainTab | ||||
| import javax.persistence.Column | ||||
| import javax.persistence.Entity | ||||
| import javax.persistence.FetchType | ||||
| import javax.persistence.JoinColumn | ||||
| import javax.persistence.OneToOne | ||||
| import javax.persistence.Table | ||||
|  | ||||
| @Entity | ||||
| @@ -17,5 +21,11 @@ data class AudioContentCuration( | ||||
|     @Column(nullable = false) | ||||
|     var isActive: Boolean = true, | ||||
|     @Column(nullable = false) | ||||
|     var orders: Int = 1 | ||||
| ) : BaseEntity() | ||||
|     var orders: Int = 1, | ||||
|     @Column(nullable = false) | ||||
|     var isSeries: Boolean = false | ||||
| ) : BaseEntity() { | ||||
|     @OneToOne(fetch = FetchType.EAGER) | ||||
|     @JoinColumn(name = "tab_id", nullable = true) | ||||
|     var tab: AudioContentMainTab? = null | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user