From 6d40ef6f4d5d18b8954400e1357a060dc283ba75 Mon Sep 17 00:00:00 2001 From: Klaus Date: Thu, 7 Mar 2024 21:34:07 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8B=9C=EA=B7=B8=EB=8B=88=EC=B2=98=20?= =?UTF-8?q?=EC=BA=94=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20-=20=EC=B4=9D=20?= =?UTF-8?q?=EA=B0=9C=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AdminAdminSignatureCanRepository.kt | 16 +++++++++++++--- .../live/signature/AdminSignatureCanService.kt | 7 +++++-- .../signature/GetSignatureCanListResponse.kt | 7 ++++++- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminAdminSignatureCanRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminAdminSignatureCanRepository.kt index ce71442..215e006 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminAdminSignatureCanRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminAdminSignatureCanRepository.kt @@ -9,15 +9,25 @@ import org.springframework.data.jpa.repository.JpaRepository interface AdminAdminSignatureCanRepository : JpaRepository, AdminSignatureCanQueryRepository interface AdminSignatureCanQueryRepository { - fun getSignatureCanList(imageHost: String, offset: Long, limit: Long): List + fun getSignatureCanListTotalCount(): Int + + fun getSignatureCanList(imageHost: String, offset: Long, limit: Long): List } class AdminSignatureCanQueryRepositoryImpl( private val queryFactory: JPAQueryFactory ) : AdminSignatureCanQueryRepository { - override fun getSignatureCanList(imageHost: String, offset: Long, limit: Long): List { + override fun getSignatureCanListTotalCount(): Int { + return queryFactory.select(signatureCan.id) + .from(signatureCan) + .where(signatureCan.isActive.isTrue) + .fetch() + .size + } + + override fun getSignatureCanList(imageHost: String, offset: Long, limit: Long): List { return queryFactory.select( - QGetSignatureCanListResponse( + QGetSignatureCanListItem( signatureCan.id, signatureCan.can, signatureCan.image.prepend("/").prepend(imageHost), diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanService.kt index 3da5cba..f26e10d 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/AdminSignatureCanService.kt @@ -25,12 +25,15 @@ class AdminSignatureCanService( @Value("\${cloud.aws.cloud-front.host}") private val imageHost: String ) { - fun getSignatureCanList(pageable: Pageable): List { - return repository.getSignatureCanList( + fun getSignatureCanList(pageable: Pageable): GetSignatureCanListResponse { + val totalCount = repository.getSignatureCanListTotalCount() + val items = repository.getSignatureCanList( imageHost = imageHost, offset = pageable.offset, limit = pageable.pageSize.toLong() ) + + return GetSignatureCanListResponse(totalCount, items) } @Transactional diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/GetSignatureCanListResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/GetSignatureCanListResponse.kt index 851a1f3..d197058 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/GetSignatureCanListResponse.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/live/signature/GetSignatureCanListResponse.kt @@ -2,7 +2,12 @@ package kr.co.vividnext.sodalive.admin.live.signature import com.querydsl.core.annotations.QueryProjection -data class GetSignatureCanListResponse @QueryProjection constructor( +data class GetSignatureCanListResponse( + val totalCount: Int, + val items: List +) + +data class GetSignatureCanListItem @QueryProjection constructor( val id: Long, val can: Int, val image: String,