From 8285589b10b2f02906cef87e829790f4244c2be9 Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 21 Jan 2025 17:03:42 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=EC=BD=98?= =?UTF-8?q?=ED=85=90=EC=B8=A0=20=EB=B0=B0=EB=84=88=20API=20-=20=ED=83=AD?= =?UTF-8?q?=EB=B3=84=20=EB=B0=B0=EB=84=88=20=EC=A1=B0=ED=9A=8C=20-=20?= =?UTF-8?q?=ED=83=AD=EB=B3=84=20=EB=B0=B0=EB=84=88=20=EB=93=B1=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../banner/AdminContentBannerController.kt | 5 ++++- .../banner/AdminContentBannerRepository.kt | 16 +++++++++++++--- .../content/banner/AdminContentBannerService.kt | 4 ++-- .../content/banner/CreateContentBannerRequest.kt | 1 + .../content/banner/UpdateContentBannerRequest.kt | 1 + 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerController.kt index 1324585..249a8b2 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerController.kt @@ -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.RequestPart import org.springframework.web.bind.annotation.RestController import org.springframework.web.multipart.MultipartFile @@ -33,5 +34,7 @@ class AdminContentBannerController(private val service: AdminContentBannerServic ) = ApiResponse.ok(service.updateBannerOrders(request.ids), "수정되었습니다.") @GetMapping - fun getAudioContentMainBannerList() = ApiResponse.ok(service.getAudioContentMainBannerList()) + fun getAudioContentMainBannerList( + @RequestParam(value = "tabId", required = false) tabId: Long? = null + ) = ApiResponse.ok(service.getAudioContentMainBannerList(tabId = tabId)) } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerRepository.kt index 14c1f25..77b1014 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerRepository.kt @@ -3,6 +3,7 @@ package kr.co.vividnext.sodalive.admin.content.banner import com.querydsl.jpa.impl.JPAQueryFactory 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.tab.QAudioContentMainTab.audioContentMainTab import kr.co.vividnext.sodalive.creator.admin.content.series.QSeries.series import kr.co.vividnext.sodalive.event.QEvent.event import kr.co.vividnext.sodalive.member.QMember.member @@ -14,7 +15,7 @@ import org.springframework.stereotype.Repository interface AdminContentBannerRepository : JpaRepository, AdminContentBannerQueryRepository interface AdminContentBannerQueryRepository { - fun getAudioContentMainBannerList(): List + fun getAudioContentMainBannerList(tabId: Long = 1): List } class AdminContentBannerQueryRepositoryImpl( @@ -22,7 +23,15 @@ class AdminContentBannerQueryRepositoryImpl( @Value("\${cloud.aws.cloud-front.host}") private val cloudFrontHost: String ) : AdminContentBannerQueryRepository { - override fun getAudioContentMainBannerList(): List { + override fun getAudioContentMainBannerList(tabId: Long): List { + var where = audioContentBanner.isActive.isTrue + + where = if (tabId <= 1L) { + where.and(audioContentMainTab.id.isNull) + } else { + where.and(audioContentMainTab.id.eq(tabId)) + } + return queryFactory .select( QGetAdminContentBannerResponse( @@ -43,7 +52,8 @@ class AdminContentBannerQueryRepositoryImpl( .leftJoin(audioContentBanner.event, event) .leftJoin(audioContentBanner.creator, member) .leftJoin(audioContentBanner.series, series) - .where(audioContentBanner.isActive.isTrue) + .leftJoin(audioContentBanner.tab, audioContentMainTab) + .where(where) .orderBy(audioContentBanner.orders.asc()) .fetch() } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerService.kt index 4fdddae..10a723e 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/AdminContentBannerService.kt @@ -169,7 +169,7 @@ class AdminContentBannerService( } } - fun getAudioContentMainBannerList(): List { - return repository.getAudioContentMainBannerList() + fun getAudioContentMainBannerList(tabId: Long?): List { + return repository.getAudioContentMainBannerList(tabId = tabId ?: 1) } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/CreateContentBannerRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/CreateContentBannerRequest.kt index ca9cb5e..e564206 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/CreateContentBannerRequest.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/CreateContentBannerRequest.kt @@ -4,6 +4,7 @@ import kr.co.vividnext.sodalive.content.main.banner.AudioContentBannerType data class CreateContentBannerRequest( val type: AudioContentBannerType, + val tabId: Long?, val eventId: Long?, val creatorId: Long?, val seriesId: Long?, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/UpdateContentBannerRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/UpdateContentBannerRequest.kt index fcbad72..4390788 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/UpdateContentBannerRequest.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/content/banner/UpdateContentBannerRequest.kt @@ -5,6 +5,7 @@ import kr.co.vividnext.sodalive.content.main.banner.AudioContentBannerType data class UpdateContentBannerRequest( val id: Long, val type: AudioContentBannerType?, + val tabId: Long?, val eventId: Long?, val creatorId: Long?, val seriesId: Long?,