Merge pull request '관리자 콘텐츠 리스트, 수정' (#128) from test into main
Reviewed-on: #128
This commit is contained in:
commit
9899390b61
|
@ -69,6 +69,7 @@ class AdminAudioContentQueryRepositoryImpl(
|
||||||
audioContent.coverImage,
|
audioContent.coverImage,
|
||||||
audioContent.member!!.nickname,
|
audioContent.member!!.nickname,
|
||||||
audioContentTheme.theme,
|
audioContentTheme.theme,
|
||||||
|
audioContentTheme.id,
|
||||||
audioContent.price,
|
audioContent.price,
|
||||||
audioContent.isAdult,
|
audioContent.isAdult,
|
||||||
audioContent.duration,
|
audioContent.duration,
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package kr.co.vividnext.sodalive.admin.content
|
package kr.co.vividnext.sodalive.admin.content
|
||||||
|
|
||||||
import kr.co.vividnext.sodalive.admin.content.curation.AdminContentCurationRepository
|
import kr.co.vividnext.sodalive.admin.content.curation.AdminContentCurationRepository
|
||||||
|
import kr.co.vividnext.sodalive.admin.content.theme.AdminContentThemeRepository
|
||||||
import kr.co.vividnext.sodalive.aws.cloudfront.AudioContentCloudFront
|
import kr.co.vividnext.sodalive.aws.cloudfront.AudioContentCloudFront
|
||||||
import kr.co.vividnext.sodalive.common.SodaException
|
import kr.co.vividnext.sodalive.common.SodaException
|
||||||
import org.springframework.beans.factory.annotation.Value
|
import org.springframework.beans.factory.annotation.Value
|
||||||
|
@ -12,6 +13,7 @@ import org.springframework.transaction.annotation.Transactional
|
||||||
@Service
|
@Service
|
||||||
class AdminContentService(
|
class AdminContentService(
|
||||||
private val repository: AdminContentRepository,
|
private val repository: AdminContentRepository,
|
||||||
|
private val themeRepository: AdminContentThemeRepository,
|
||||||
private val audioContentCloudFront: AudioContentCloudFront,
|
private val audioContentCloudFront: AudioContentCloudFront,
|
||||||
private val curationRepository: AdminContentCurationRepository,
|
private val curationRepository: AdminContentCurationRepository,
|
||||||
|
|
||||||
|
@ -120,5 +122,10 @@ class AdminContentService(
|
||||||
val curation = curationRepository.findByIdAndActive(id = request.curationId)
|
val curation = curationRepository.findByIdAndActive(id = request.curationId)
|
||||||
audioContent.curation = curation
|
audioContent.curation = curation
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (request.themeId != null) {
|
||||||
|
val theme = themeRepository.findByIdAndActive(id = request.themeId)
|
||||||
|
audioContent.theme = theme
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ data class GetAdminContentListItem @QueryProjection constructor(
|
||||||
var coverImageUrl: String,
|
var coverImageUrl: String,
|
||||||
val creatorNickname: String,
|
val creatorNickname: String,
|
||||||
val theme: String,
|
val theme: String,
|
||||||
|
val themeId: Long,
|
||||||
val price: Int,
|
val price: Int,
|
||||||
val isAdult: Boolean,
|
val isAdult: Boolean,
|
||||||
val remainingTime: String,
|
val remainingTime: String,
|
||||||
|
|
|
@ -6,6 +6,7 @@ data class UpdateAdminContentRequest(
|
||||||
val title: String?,
|
val title: String?,
|
||||||
val detail: String?,
|
val detail: String?,
|
||||||
val curationId: Long?,
|
val curationId: Long?,
|
||||||
|
val themeId: Long?,
|
||||||
val isAdult: Boolean?,
|
val isAdult: Boolean?,
|
||||||
val isActive: Boolean?,
|
val isActive: Boolean?,
|
||||||
val isCommentAvailable: Boolean?
|
val isCommentAvailable: Boolean?
|
||||||
|
|
|
@ -14,6 +14,7 @@ interface AdminContentThemeRepository : JpaRepository<AudioContentTheme, Long>,
|
||||||
|
|
||||||
interface AdminContentThemeQueryRepository {
|
interface AdminContentThemeQueryRepository {
|
||||||
fun findIdByTheme(theme: String): Long?
|
fun findIdByTheme(theme: String): Long?
|
||||||
|
fun findByIdAndActive(id: Long): AudioContentTheme?
|
||||||
fun getActiveThemes(): List<GetAudioContentThemeResponse>
|
fun getActiveThemes(): List<GetAudioContentThemeResponse>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +32,16 @@ class AdminContentThemeQueryRepositoryImpl(
|
||||||
.fetchOne()
|
.fetchOne()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun findByIdAndActive(id: Long): AudioContentTheme? {
|
||||||
|
return queryFactory
|
||||||
|
.selectFrom(audioContentTheme)
|
||||||
|
.where(
|
||||||
|
audioContentTheme.id.eq(id)
|
||||||
|
.and(audioContentTheme.isActive.isTrue)
|
||||||
|
)
|
||||||
|
.fetchOne()
|
||||||
|
}
|
||||||
|
|
||||||
override fun getActiveThemes(): List<GetAudioContentThemeResponse> {
|
override fun getActiveThemes(): List<GetAudioContentThemeResponse> {
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.select(
|
.select(
|
||||||
|
|
Loading…
Reference in New Issue