쿠폰 번호 리스트 API 수정

- totalCount 추가
This commit is contained in:
Klaus 2024-01-02 03:13:04 +09:00
parent f80b8248e8
commit d20f51ceac
3 changed files with 26 additions and 6 deletions

View File

@ -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()
}
}

View File

@ -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)
}
}

View File

@ -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