관리자 큐레이션 조회

- tabId를 추가해서 탭별로 조회할 수 있도록 수정
This commit is contained in:
Klaus 2025-01-23 22:18:00 +09:00
parent d95f95899c
commit faf827de71
4 changed files with 16 additions and 6 deletions

View File

@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.PutMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController
@RestController
@ -29,5 +30,7 @@ class AdminContentCurationController(private val service: AdminContentCurationSe
) = ApiResponse.ok(service.updateContentCurationOrders(request.ids), "수정되었습니다.")
@GetMapping
fun getContentCurationList() = ApiResponse.ok(service.getContentCurationList())
fun getContentCurationList(
@RequestParam tabId: Long
) = ApiResponse.ok(service.getContentCurationList(tabId = tabId))
}

View File

@ -3,6 +3,7 @@ package kr.co.vividnext.sodalive.admin.content.curation
import com.querydsl.jpa.impl.JPAQueryFactory
import kr.co.vividnext.sodalive.content.main.curation.AudioContentCuration
import kr.co.vividnext.sodalive.content.main.curation.QAudioContentCuration.audioContentCuration
import kr.co.vividnext.sodalive.content.main.tab.QAudioContentMainTab.audioContentMainTab
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.stereotype.Repository
@ -12,7 +13,7 @@ interface AdminContentCurationRepository :
AdminContentCurationQueryRepository
interface AdminContentCurationQueryRepository {
fun getAudioContentCurationList(): List<GetAdminContentCurationResponse>
fun getAudioContentCurationList(tabId: Long): List<GetAdminContentCurationResponse>
fun findByIdAndActive(id: Long): AudioContentCuration?
}
@ -20,18 +21,23 @@ interface AdminContentCurationQueryRepository {
class AdminContentCurationQueryRepositoryImpl(
private val queryFactory: JPAQueryFactory
) : AdminContentCurationQueryRepository {
override fun getAudioContentCurationList(): List<GetAdminContentCurationResponse> {
override fun getAudioContentCurationList(tabId: Long): List<GetAdminContentCurationResponse> {
return queryFactory
.select(
QGetAdminContentCurationResponse(
audioContentCuration.id,
audioContentMainTab.id,
audioContentCuration.title,
audioContentCuration.description,
audioContentCuration.isAdult
)
)
.from(audioContentCuration)
.where(audioContentCuration.isActive.isTrue)
.innerJoin(audioContentCuration.tab, audioContentMainTab)
.where(
audioContentCuration.isActive.isTrue,
audioContentMainTab.id.eq(tabId)
)
.orderBy(audioContentCuration.orders.asc())
.fetch()
}

View File

@ -73,7 +73,7 @@ class AdminContentCurationService(
}
}
fun getContentCurationList(): List<GetAdminContentCurationResponse> {
return repository.getAudioContentCurationList()
fun getContentCurationList(tabId: Long): List<GetAdminContentCurationResponse> {
return repository.getAudioContentCurationList(tabId = tabId)
}
}

View File

@ -4,6 +4,7 @@ import com.querydsl.core.annotations.QueryProjection
data class GetAdminContentCurationResponse @QueryProjection constructor(
val id: Long,
val tabId: Long,
val title: String,
val description: String,
val isAdult: Boolean