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,