Compare commits
No commits in common. "8285589b10b2f02906cef87e829790f4244c2be9" and "d36aada227f0c65c20465f46e4be990ce9d11b96" have entirely different histories.
8285589b10
...
d36aada227
|
@ -42,9 +42,6 @@ class AdminContentController(private val service: AdminContentService) {
|
||||||
fun modifyAudioContent(
|
fun modifyAudioContent(
|
||||||
@RequestBody request: UpdateAdminContentRequest
|
@RequestBody request: UpdateAdminContentRequest
|
||||||
) = ApiResponse.ok(service.updateAudioContent(request))
|
) = ApiResponse.ok(service.updateAudioContent(request))
|
||||||
|
|
||||||
@GetMapping("/main/tab")
|
|
||||||
fun getContentMainTabList() = ApiResponse.ok(service.getContentMainTabList())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class ContentReleaseStatus {
|
enum class ContentReleaseStatus {
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
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.tab.AdminContentMainTabRepository
|
|
||||||
import kr.co.vividnext.sodalive.admin.content.theme.AdminContentThemeRepository
|
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 kr.co.vividnext.sodalive.content.main.tab.GetContentMainTabItem
|
|
||||||
import org.springframework.data.domain.Pageable
|
import org.springframework.data.domain.Pageable
|
||||||
import org.springframework.data.repository.findByIdOrNull
|
import org.springframework.data.repository.findByIdOrNull
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
|
@ -16,8 +14,7 @@ class AdminContentService(
|
||||||
private val repository: AdminContentRepository,
|
private val repository: AdminContentRepository,
|
||||||
private val themeRepository: AdminContentThemeRepository,
|
private val themeRepository: AdminContentThemeRepository,
|
||||||
private val audioContentCloudFront: AudioContentCloudFront,
|
private val audioContentCloudFront: AudioContentCloudFront,
|
||||||
private val curationRepository: AdminContentCurationRepository,
|
private val curationRepository: AdminContentCurationRepository
|
||||||
private val contentMainTabRepository: AdminContentMainTabRepository
|
|
||||||
) {
|
) {
|
||||||
fun getAudioContentList(status: ContentReleaseStatus, pageable: Pageable): GetAdminContentListResponse {
|
fun getAudioContentList(status: ContentReleaseStatus, pageable: Pageable): GetAdminContentListResponse {
|
||||||
val totalCount = repository.getAudioContentTotalCount(status = status)
|
val totalCount = repository.getAudioContentTotalCount(status = status)
|
||||||
|
@ -121,8 +118,4 @@ class AdminContentService(
|
||||||
audioContent.theme = theme
|
audioContent.theme = theme
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getContentMainTabList(): List<GetContentMainTabItem> {
|
|
||||||
return contentMainTabRepository.findAllByActiveIsTrue()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,6 @@ import org.springframework.web.bind.annotation.PostMapping
|
||||||
import org.springframework.web.bind.annotation.PutMapping
|
import org.springframework.web.bind.annotation.PutMapping
|
||||||
import org.springframework.web.bind.annotation.RequestBody
|
import org.springframework.web.bind.annotation.RequestBody
|
||||||
import org.springframework.web.bind.annotation.RequestMapping
|
import org.springframework.web.bind.annotation.RequestMapping
|
||||||
import org.springframework.web.bind.annotation.RequestParam
|
|
||||||
import org.springframework.web.bind.annotation.RequestPart
|
import org.springframework.web.bind.annotation.RequestPart
|
||||||
import org.springframework.web.bind.annotation.RestController
|
import org.springframework.web.bind.annotation.RestController
|
||||||
import org.springframework.web.multipart.MultipartFile
|
import org.springframework.web.multipart.MultipartFile
|
||||||
|
@ -34,7 +33,5 @@ class AdminContentBannerController(private val service: AdminContentBannerServic
|
||||||
) = ApiResponse.ok(service.updateBannerOrders(request.ids), "수정되었습니다.")
|
) = ApiResponse.ok(service.updateBannerOrders(request.ids), "수정되었습니다.")
|
||||||
|
|
||||||
@GetMapping
|
@GetMapping
|
||||||
fun getAudioContentMainBannerList(
|
fun getAudioContentMainBannerList() = ApiResponse.ok(service.getAudioContentMainBannerList())
|
||||||
@RequestParam(value = "tabId", required = false) tabId: Long? = null
|
|
||||||
) = ApiResponse.ok(service.getAudioContentMainBannerList(tabId = tabId))
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@ package kr.co.vividnext.sodalive.admin.content.banner
|
||||||
import com.querydsl.jpa.impl.JPAQueryFactory
|
import com.querydsl.jpa.impl.JPAQueryFactory
|
||||||
import kr.co.vividnext.sodalive.content.main.banner.AudioContentBanner
|
import kr.co.vividnext.sodalive.content.main.banner.AudioContentBanner
|
||||||
import kr.co.vividnext.sodalive.content.main.banner.QAudioContentBanner.audioContentBanner
|
import kr.co.vividnext.sodalive.content.main.banner.QAudioContentBanner.audioContentBanner
|
||||||
import kr.co.vividnext.sodalive.content.main.tab.QAudioContentMainTab.audioContentMainTab
|
|
||||||
import kr.co.vividnext.sodalive.creator.admin.content.series.QSeries.series
|
import kr.co.vividnext.sodalive.creator.admin.content.series.QSeries.series
|
||||||
import kr.co.vividnext.sodalive.event.QEvent.event
|
import kr.co.vividnext.sodalive.event.QEvent.event
|
||||||
import kr.co.vividnext.sodalive.member.QMember.member
|
import kr.co.vividnext.sodalive.member.QMember.member
|
||||||
|
@ -15,7 +14,7 @@ import org.springframework.stereotype.Repository
|
||||||
interface AdminContentBannerRepository : JpaRepository<AudioContentBanner, Long>, AdminContentBannerQueryRepository
|
interface AdminContentBannerRepository : JpaRepository<AudioContentBanner, Long>, AdminContentBannerQueryRepository
|
||||||
|
|
||||||
interface AdminContentBannerQueryRepository {
|
interface AdminContentBannerQueryRepository {
|
||||||
fun getAudioContentMainBannerList(tabId: Long = 1): List<GetAdminContentBannerResponse>
|
fun getAudioContentMainBannerList(): List<GetAdminContentBannerResponse>
|
||||||
}
|
}
|
||||||
|
|
||||||
class AdminContentBannerQueryRepositoryImpl(
|
class AdminContentBannerQueryRepositoryImpl(
|
||||||
|
@ -23,15 +22,7 @@ class AdminContentBannerQueryRepositoryImpl(
|
||||||
@Value("\${cloud.aws.cloud-front.host}")
|
@Value("\${cloud.aws.cloud-front.host}")
|
||||||
private val cloudFrontHost: String
|
private val cloudFrontHost: String
|
||||||
) : AdminContentBannerQueryRepository {
|
) : AdminContentBannerQueryRepository {
|
||||||
override fun getAudioContentMainBannerList(tabId: Long): List<GetAdminContentBannerResponse> {
|
override fun getAudioContentMainBannerList(): List<GetAdminContentBannerResponse> {
|
||||||
var where = audioContentBanner.isActive.isTrue
|
|
||||||
|
|
||||||
where = if (tabId <= 1L) {
|
|
||||||
where.and(audioContentMainTab.id.isNull)
|
|
||||||
} else {
|
|
||||||
where.and(audioContentMainTab.id.eq(tabId))
|
|
||||||
}
|
|
||||||
|
|
||||||
return queryFactory
|
return queryFactory
|
||||||
.select(
|
.select(
|
||||||
QGetAdminContentBannerResponse(
|
QGetAdminContentBannerResponse(
|
||||||
|
@ -52,8 +43,7 @@ class AdminContentBannerQueryRepositoryImpl(
|
||||||
.leftJoin(audioContentBanner.event, event)
|
.leftJoin(audioContentBanner.event, event)
|
||||||
.leftJoin(audioContentBanner.creator, member)
|
.leftJoin(audioContentBanner.creator, member)
|
||||||
.leftJoin(audioContentBanner.series, series)
|
.leftJoin(audioContentBanner.series, series)
|
||||||
.leftJoin(audioContentBanner.tab, audioContentMainTab)
|
.where(audioContentBanner.isActive.isTrue)
|
||||||
.where(where)
|
|
||||||
.orderBy(audioContentBanner.orders.asc())
|
.orderBy(audioContentBanner.orders.asc())
|
||||||
.fetch()
|
.fetch()
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,7 +169,7 @@ class AdminContentBannerService(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getAudioContentMainBannerList(tabId: Long?): List<GetAdminContentBannerResponse> {
|
fun getAudioContentMainBannerList(): List<GetAdminContentBannerResponse> {
|
||||||
return repository.getAudioContentMainBannerList(tabId = tabId ?: 1)
|
return repository.getAudioContentMainBannerList()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@ import kr.co.vividnext.sodalive.content.main.banner.AudioContentBannerType
|
||||||
|
|
||||||
data class CreateContentBannerRequest(
|
data class CreateContentBannerRequest(
|
||||||
val type: AudioContentBannerType,
|
val type: AudioContentBannerType,
|
||||||
val tabId: Long?,
|
|
||||||
val eventId: Long?,
|
val eventId: Long?,
|
||||||
val creatorId: Long?,
|
val creatorId: Long?,
|
||||||
val seriesId: Long?,
|
val seriesId: Long?,
|
||||||
|
|
|
@ -5,7 +5,6 @@ import kr.co.vividnext.sodalive.content.main.banner.AudioContentBannerType
|
||||||
data class UpdateContentBannerRequest(
|
data class UpdateContentBannerRequest(
|
||||||
val id: Long,
|
val id: Long,
|
||||||
val type: AudioContentBannerType?,
|
val type: AudioContentBannerType?,
|
||||||
val tabId: Long?,
|
|
||||||
val eventId: Long?,
|
val eventId: Long?,
|
||||||
val creatorId: Long?,
|
val creatorId: Long?,
|
||||||
val seriesId: Long?,
|
val seriesId: Long?,
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
package kr.co.vividnext.sodalive.admin.content.tab
|
|
||||||
|
|
||||||
import com.querydsl.jpa.impl.JPAQueryFactory
|
|
||||||
import kr.co.vividnext.sodalive.content.main.tab.AudioContentMainTab
|
|
||||||
import kr.co.vividnext.sodalive.content.main.tab.GetContentMainTabItem
|
|
||||||
import kr.co.vividnext.sodalive.content.main.tab.QAudioContentMainTab.audioContentMainTab
|
|
||||||
import kr.co.vividnext.sodalive.content.main.tab.QGetContentMainTabItem
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository
|
|
||||||
|
|
||||||
interface AdminContentMainTabRepository : JpaRepository<AudioContentMainTab, Long>, AdminContentMainTabQueryRepository
|
|
||||||
|
|
||||||
interface AdminContentMainTabQueryRepository {
|
|
||||||
fun findAllByActiveIsTrue(): List<GetContentMainTabItem>
|
|
||||||
}
|
|
||||||
|
|
||||||
class AdminContentMainTabQueryRepositoryImpl(
|
|
||||||
private val queryFactory: JPAQueryFactory
|
|
||||||
) : AdminContentMainTabQueryRepository {
|
|
||||||
override fun findAllByActiveIsTrue(): List<GetContentMainTabItem> {
|
|
||||||
return queryFactory
|
|
||||||
.select(
|
|
||||||
QGetContentMainTabItem(
|
|
||||||
audioContentMainTab.id,
|
|
||||||
audioContentMainTab.title
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.from(audioContentMainTab)
|
|
||||||
.where(audioContentMainTab.isActive.isTrue)
|
|
||||||
.fetch()
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
package kr.co.vividnext.sodalive.content.main.tab
|
|
||||||
|
|
||||||
import com.querydsl.core.annotations.QueryProjection
|
|
||||||
|
|
||||||
data class GetContentMainTabItem @QueryProjection constructor(
|
|
||||||
val tabId: Long,
|
|
||||||
val title: String
|
|
||||||
)
|
|
Loading…
Reference in New Issue