parent
f80b8248e8
commit
d20f51ceac
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue