From a70b5d89ec5fb09f92f0950d2be829db2a849cb6 Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 22 Apr 2025 21:54:42 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EA=B4=80=EB=A6=AC=EC=9E=90=20=ED=8F=AC?= =?UTF-8?q?=EC=9D=B8=ED=8A=B8=20=EC=A0=95=EC=B1=85=20=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20-=20=EC=A0=84=EC=B2=B4=20=EA=B0=9C=EC=88=98=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nse.kt => GetPointRewardPolicyListResponse.kt} | 7 ++++++- .../sodalive/admin/point/PointPolicyRepository.kt | 15 ++++++++++++--- .../sodalive/admin/point/PointPolicyService.kt | 7 +++++-- 3 files changed, 23 insertions(+), 6 deletions(-) rename src/main/kotlin/kr/co/vividnext/sodalive/admin/point/{GetPointRewardPolicyResponse.kt => GetPointRewardPolicyListResponse.kt} (66%) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/point/GetPointRewardPolicyResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/point/GetPointRewardPolicyListResponse.kt similarity index 66% rename from src/main/kotlin/kr/co/vividnext/sodalive/admin/point/GetPointRewardPolicyResponse.kt rename to src/main/kotlin/kr/co/vividnext/sodalive/admin/point/GetPointRewardPolicyListResponse.kt index 4e8203d..33dd64e 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/point/GetPointRewardPolicyResponse.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/point/GetPointRewardPolicyListResponse.kt @@ -3,7 +3,12 @@ package kr.co.vividnext.sodalive.admin.point import com.querydsl.core.annotations.QueryProjection import kr.co.vividnext.sodalive.useraction.ActionType -data class GetPointRewardPolicyResponse @QueryProjection constructor( +data class GetPointRewardPolicyListResponse( + val totalCount: Int, + val items: List +) + +data class GetPointRewardPolicyListItem @QueryProjection constructor( val id: Long, val title: String, val actionType: ActionType, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/point/PointPolicyRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/point/PointPolicyRepository.kt index 3c644d5..d439d4d 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/point/PointPolicyRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/point/PointPolicyRepository.kt @@ -12,16 +12,25 @@ import java.time.LocalDateTime interface PointPolicyRepository : JpaRepository, PointPolicyQueryRepository interface PointPolicyQueryRepository { - fun getAll(offset: Long, limit: Long): List + fun getTotalCount(): Int + fun getAll(offset: Long, limit: Long): List } class PointPolicyQueryRepositoryImpl( private val queryFactory: JPAQueryFactory ) : PointPolicyQueryRepository { - override fun getAll(offset: Long, limit: Long): List { + override fun getTotalCount(): Int { + return queryFactory + .select(pointRewardPolicy.id) + .from(pointRewardPolicy) + .fetch() + .size + } + + override fun getAll(offset: Long, limit: Long): List { return queryFactory .select( - QGetPointRewardPolicyResponse( + QGetPointRewardPolicyListItem( pointRewardPolicy.id, pointRewardPolicy.title, pointRewardPolicy.actionType, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/point/PointPolicyService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/point/PointPolicyService.kt index d5b8c54..1616b84 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/point/PointPolicyService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/point/PointPolicyService.kt @@ -9,8 +9,11 @@ import java.time.format.DateTimeFormatter @Service class PointPolicyService(private val repository: PointPolicyRepository) { - fun getAll(offset: Long, limit: Long): List { - return repository.getAll(offset, limit) + fun getAll(offset: Long, limit: Long): GetPointRewardPolicyListResponse { + val totalCount = repository.getTotalCount() + val items = repository.getAll(offset, limit) + + return GetPointRewardPolicyListResponse(totalCount, items) } fun create(request: CreatePointRewardPolicyRequest) {