쿠폰 번호 리스트 API 수정
- totalCount 추가
This commit is contained in:
		| @@ -10,7 +10,8 @@ interface CanCouponRepository : JpaRepository<CanCoupon, Long>, CanCouponQueryRe | ||||
| interface CanCouponQueryRepository { | ||||
|     fun getCouponTotalCount(): Int | ||||
|     fun getCouponList(offset: Long, limit: Long): List<CanCoupon> | ||||
|     fun getCouponNumberList(couponId: Long, offset: Long, limit: Long): List<GetCouponNumberListResponse> | ||||
|     fun getCouponNumberTotalCount(couponId: Long): Int | ||||
|     fun getCouponNumberList(couponId: Long, offset: Long, limit: Long): List<GetCouponNumberListItemResponse> | ||||
| } | ||||
|  | ||||
| class CanCouponQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : CanCouponQueryRepository { | ||||
| @@ -31,10 +32,19 @@ class CanCouponQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : | ||||
|             .fetch() | ||||
|     } | ||||
|  | ||||
|     override fun getCouponNumberList(couponId: Long, offset: Long, limit: Long): List<GetCouponNumberListResponse> { | ||||
|     override fun getCouponNumberTotalCount(couponId: Long): Int { | ||||
|         return queryFactory | ||||
|             .select(canCouponNumber.id) | ||||
|             .from(canCouponNumber) | ||||
|             .where(canCouponNumber.canCoupon.id.eq(couponId)) | ||||
|             .fetch() | ||||
|             .size | ||||
|     } | ||||
|  | ||||
|     override fun getCouponNumberList(couponId: Long, offset: Long, limit: Long): List<GetCouponNumberListItemResponse> { | ||||
|         return queryFactory | ||||
|             .select( | ||||
|                 QGetCouponNumberListResponse( | ||||
|                 QGetCouponNumberListItemResponse( | ||||
|                     canCouponNumber.id, | ||||
|                     canCouponNumber.couponNumber, | ||||
|                     canCouponNumber.member.isNotNull | ||||
| @@ -42,6 +52,9 @@ class CanCouponQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : | ||||
|             ) | ||||
|             .from(canCouponNumber) | ||||
|             .where(canCouponNumber.canCoupon.id.eq(couponId)) | ||||
|             .orderBy(canCouponNumber.id.asc()) | ||||
|             .offset(offset) | ||||
|             .limit(limit) | ||||
|             .fetch() | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -43,7 +43,9 @@ class CanCouponService( | ||||
|         return GetCouponListResponse(totalCount, items) | ||||
|     } | ||||
|  | ||||
|     fun getCouponNumberList(couponId: Long, offset: Long, limit: Long): List<GetCouponNumberListResponse> { | ||||
|         return repository.getCouponNumberList(couponId = couponId, offset = offset, limit = limit) | ||||
|     fun getCouponNumberList(couponId: Long, offset: Long, limit: Long): GetCouponNumberListResponse { | ||||
|         val totalCount = repository.getCouponNumberTotalCount(couponId = couponId) | ||||
|         val items = repository.getCouponNumberList(couponId = couponId, offset = offset, limit = limit) | ||||
|         return GetCouponNumberListResponse(totalCount, items) | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -2,7 +2,12 @@ package kr.co.vividnext.sodalive.can.coupon | ||||
|  | ||||
| import com.querydsl.core.annotations.QueryProjection | ||||
|  | ||||
| data class GetCouponNumberListResponse @QueryProjection constructor( | ||||
| data class GetCouponNumberListResponse( | ||||
|     val totalCount: Int, | ||||
|     val items: List<GetCouponNumberListItemResponse> | ||||
| ) | ||||
|  | ||||
| data class GetCouponNumberListItemResponse @QueryProjection constructor( | ||||
|     val couponNumberId: Long, | ||||
|     val couponNumber: String, | ||||
|     val isUsed: Boolean | ||||
|   | ||||
		Reference in New Issue
	
	Block a user