관리자 큐레이션 조회

- 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.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.RestController import org.springframework.web.bind.annotation.RestController
@RestController @RestController
@ -29,5 +30,7 @@ class AdminContentCurationController(private val service: AdminContentCurationSe
) = ApiResponse.ok(service.updateContentCurationOrders(request.ids), "수정되었습니다.") ) = ApiResponse.ok(service.updateContentCurationOrders(request.ids), "수정되었습니다.")
@GetMapping @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 com.querydsl.jpa.impl.JPAQueryFactory
import kr.co.vividnext.sodalive.content.main.curation.AudioContentCuration 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.curation.QAudioContentCuration.audioContentCuration
import kr.co.vividnext.sodalive.content.main.tab.QAudioContentMainTab.audioContentMainTab
import org.springframework.data.jpa.repository.JpaRepository import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.stereotype.Repository import org.springframework.stereotype.Repository
@ -12,7 +13,7 @@ interface AdminContentCurationRepository :
AdminContentCurationQueryRepository AdminContentCurationQueryRepository
interface AdminContentCurationQueryRepository { interface AdminContentCurationQueryRepository {
fun getAudioContentCurationList(): List<GetAdminContentCurationResponse> fun getAudioContentCurationList(tabId: Long): List<GetAdminContentCurationResponse>
fun findByIdAndActive(id: Long): AudioContentCuration? fun findByIdAndActive(id: Long): AudioContentCuration?
} }
@ -20,18 +21,23 @@ interface AdminContentCurationQueryRepository {
class AdminContentCurationQueryRepositoryImpl( class AdminContentCurationQueryRepositoryImpl(
private val queryFactory: JPAQueryFactory private val queryFactory: JPAQueryFactory
) : AdminContentCurationQueryRepository { ) : AdminContentCurationQueryRepository {
override fun getAudioContentCurationList(): List<GetAdminContentCurationResponse> { override fun getAudioContentCurationList(tabId: Long): List<GetAdminContentCurationResponse> {
return queryFactory return queryFactory
.select( .select(
QGetAdminContentCurationResponse( QGetAdminContentCurationResponse(
audioContentCuration.id, audioContentCuration.id,
audioContentMainTab.id,
audioContentCuration.title, audioContentCuration.title,
audioContentCuration.description, audioContentCuration.description,
audioContentCuration.isAdult audioContentCuration.isAdult
) )
) )
.from(audioContentCuration) .from(audioContentCuration)
.where(audioContentCuration.isActive.isTrue) .innerJoin(audioContentCuration.tab, audioContentMainTab)
.where(
audioContentCuration.isActive.isTrue,
audioContentMainTab.id.eq(tabId)
)
.orderBy(audioContentCuration.orders.asc()) .orderBy(audioContentCuration.orders.asc())
.fetch() .fetch()
} }

View File

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

View File

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