test #324
| @@ -3,13 +3,21 @@ package kr.co.vividnext.sodalive.can.coupon | ||||
| import kr.co.vividnext.sodalive.common.BaseEntity | ||||
| import java.time.LocalDateTime | ||||
| import javax.persistence.Entity | ||||
| import javax.persistence.EnumType | ||||
| import javax.persistence.Enumerated | ||||
|  | ||||
| @Entity | ||||
| data class CanCoupon( | ||||
|     val couponName: String, | ||||
|     @Enumerated(EnumType.STRING) | ||||
|     val couponType: CouponType, | ||||
|     val can: Int, | ||||
|     val couponCount: Int, | ||||
|     var validity: LocalDateTime, | ||||
|     var isActive: Boolean, | ||||
|     var isMultipleUse: Boolean | ||||
| ) : BaseEntity() | ||||
|  | ||||
| enum class CouponType { | ||||
|     CAN, POINT | ||||
| } | ||||
|   | ||||
| @@ -79,6 +79,7 @@ class CanCouponNumberQueryRepositoryImpl(private val queryFactory: JPAQueryFacto | ||||
|     override fun findByCouponNumber(couponNumber: String): CanCouponNumber? { | ||||
|         return queryFactory | ||||
|             .selectFrom(canCouponNumber) | ||||
|             .innerJoin(canCouponNumber.canCoupon, canCoupon) | ||||
|             .where(canCouponNumber.couponNumber.eq(couponNumber)) | ||||
|             .fetchFirst() | ||||
|     } | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| package kr.co.vividnext.sodalive.can.coupon | ||||
|  | ||||
| import com.querydsl.core.types.dsl.CaseBuilder | ||||
| import com.querydsl.core.types.dsl.DateTimePath | ||||
| import com.querydsl.core.types.dsl.Expressions | ||||
| import com.querydsl.core.types.dsl.StringTemplate | ||||
| @@ -30,6 +31,9 @@ class CanCouponQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : | ||||
|                 QGetCouponListItemResponse( | ||||
|                     canCoupon.id, | ||||
|                     canCoupon.couponName, | ||||
|                     CaseBuilder() | ||||
|                         .`when`(canCoupon.couponType.eq(CouponType.POINT)).then("포인트 쿠폰") | ||||
|                         .otherwise("캔 쿠폰"), | ||||
|                     canCoupon.can, | ||||
|                     canCoupon.couponCount, | ||||
|                     Expressions.ZERO, | ||||
|   | ||||
| @@ -68,15 +68,12 @@ class CanCouponService( | ||||
|  | ||||
|     fun getCouponList(offset: Long, limit: Long): GetCouponListResponse { | ||||
|         val totalCount = repository.getCouponTotalCount() | ||||
|  | ||||
|         val items = repository.getCouponList(offset = offset, limit = limit) | ||||
|             .asSequence() | ||||
|             .map { | ||||
|                 val useCouponCount = couponNumberRepository.getUseCouponCount(id = it.id) | ||||
|                 it.useCouponCount = useCouponCount | ||||
|                 it | ||||
|             } | ||||
|             .toList() | ||||
|  | ||||
|         return GetCouponListResponse(totalCount, items) | ||||
|     } | ||||
|   | ||||
| @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty | ||||
|  | ||||
| data class GenerateCanCouponRequest( | ||||
|     @JsonProperty("couponName") val couponName: String, | ||||
|     @JsonProperty("couponType") val couponType: CouponType, | ||||
|     @JsonProperty("can") val can: Int, | ||||
|     @JsonProperty("validity") val validity: String, | ||||
|     @JsonProperty("isMultipleUse") val isMultipleUse: Boolean, | ||||
|   | ||||
| @@ -10,6 +10,7 @@ data class GetCouponListResponse( | ||||
| data class GetCouponListItemResponse @QueryProjection constructor( | ||||
|     val id: Long, | ||||
|     val couponName: String, | ||||
|     val couponType: String, | ||||
|     val can: Int, | ||||
|     val couponCount: Int, | ||||
|     var useCouponCount: Int, | ||||
|   | ||||
| @@ -5,5 +5,6 @@ enum class ActionType(val displayName: String) { | ||||
|     USER_AUTHENTICATION("본인인증"), | ||||
|     CONTENT_COMMENT("콘텐츠 댓글"), | ||||
|     ORDER_CONTENT_COMMENT("구매한 콘텐츠 댓글"), | ||||
|     LIVE_CONTINUOUS_LISTEN_30("라이브 연속 청취 30분") | ||||
|     LIVE_CONTINUOUS_LISTEN_30("라이브 연속 청취 30분"), | ||||
|     COUPON("쿠폰") | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user