|
@@ -813,7 +813,9 @@
|
|
|
END) AS EXPIRE_YN /*만료여부*/
|
|
END) AS EXPIRE_YN /*만료여부*/
|
|
|
FROM TB_CUST_COUPON CC
|
|
FROM TB_CUST_COUPON CC
|
|
|
WHERE 1 = 1
|
|
WHERE 1 = 1
|
|
|
|
|
+ <if test="planCouponStat == null and planCouponStat == ''">
|
|
|
AND CC.CUST_NO = #{custNo}
|
|
AND CC.CUST_NO = #{custNo}
|
|
|
|
|
+ </if>
|
|
|
AND CC.USED_DT IS NULL /*사용하지않은쿠폰만*/
|
|
AND CC.USED_DT IS NULL /*사용하지않은쿠폰만*/
|
|
|
AND CC.AVAIL_EDDT >= DATE_ADD(NOW(), INTERVAL -3 MONTH) /*최근3개월쿠폰만*/
|
|
AND CC.AVAIL_EDDT >= DATE_ADD(NOW(), INTERVAL -3 MONTH) /*최근3개월쿠폰만*/
|
|
|
GROUP BY CC.CPN_ID, DATE_FORMAT(CC.AVAIL_STDT,'%Y.%m.%d %H:%i'), DATE_FORMAT(CC.AVAIL_EDDT,'%Y.%m.%d %H:%i')
|
|
GROUP BY CC.CPN_ID, DATE_FORMAT(CC.AVAIL_STDT,'%Y.%m.%d %H:%i'), DATE_FORMAT(CC.AVAIL_EDDT,'%Y.%m.%d %H:%i')
|
|
@@ -998,57 +1000,57 @@
|
|
|
, Z.DOWNLOAD_CNT
|
|
, Z.DOWNLOAD_CNT
|
|
|
, Z.OWN_COUPON
|
|
, Z.OWN_COUPON
|
|
|
FROM (SELECT A.*
|
|
FROM (SELECT A.*
|
|
|
- , CASE WHEN A.CNT <![CDATA[<=]]> 0 THEN 0
|
|
|
|
|
- WHEN A.CNT > (A.DN_ABLE_CNT * A.ONE_PUB_QTY) THEN (A.DN_ABLE_CNT * A.ONE_PUB_QTY)
|
|
|
|
|
- ELSE A.CNT
|
|
|
|
|
- END AS DOWNLOAD_CNT
|
|
|
|
|
- FROM (SELECT #{custNo} AS CUST_NO
|
|
|
|
|
- , C.CPN_ID
|
|
|
|
|
- , C.CPN_NM
|
|
|
|
|
- , C.CUST_PUB_LIMIT_QTY
|
|
|
|
|
- , C.ONE_PUB_QTY
|
|
|
|
|
- , IF(C.PD_GB = 'P', C.AVAIL_STDT, NOW()) AS AVAIL_STDT
|
|
|
|
|
- , IF(C.PD_GB = 'P', C.AVAIL_EDDT, CONCAT(CURRENT_DATE + INTERVAL C.AVAIL_DAYS DAY, ' 23:59:59')) AS AVAIL_EDDT
|
|
|
|
|
- , C.END_ALIM_YN
|
|
|
|
|
- , IFNULL(CC.CPN_CNT, 0) AS DN_CNT
|
|
|
|
|
- , IF(C.CUST_PUB_LIMIT_QTY = 0 OR C.CUST_PUB_LIMIT_QTY - CC.CPN_CNT > 0, 1, 0) AS DN_ABLE_CNT
|
|
|
|
|
- , IF(C.TOT_PUB_LIMIT_QTY > 0, C.TOT_PUB_LIMIT_QTY - CC2.CPN_CNT, 99999) AS CNT
|
|
|
|
|
- , (SELECT COUNT(*) FROM TB_CUST_COUPON TCC WHERE CPN_ID = #{cpnId} AND CUST_NO = #{custNo}) AS OWN_COUPON
|
|
|
|
|
- FROM TB_COUPON C
|
|
|
|
|
- INNER JOIN TB_COUPON_CUST_GBN CCGB
|
|
|
|
|
- ON C.CPN_ID = CCGB.CPN_ID
|
|
|
|
|
- AND CCGB.USABLE_CUST_GB = #{custGb}
|
|
|
|
|
- INNER JOIN TB_COUPON_CUST_GRADE CCGR
|
|
|
|
|
- ON C.CPN_ID = CCGR.CPN_ID
|
|
|
|
|
- AND CCGR.USABLE_CUST_GRADE = #{custGrade}
|
|
|
|
|
- LEFT OUTER JOIN (SELECT CPN_ID
|
|
|
|
|
- , CUST_NO
|
|
|
|
|
- , COUNT(*) AS CPN_CNT
|
|
|
|
|
- FROM TB_CUST_COUPON
|
|
|
|
|
- GROUP BY CPN_ID, CUST_NO) CC
|
|
|
|
|
- ON C.CPN_ID = CC.CPN_ID
|
|
|
|
|
- AND CC.CUST_NO = #{custNo}
|
|
|
|
|
- LEFT OUTER JOIN (SELECT CPN_ID
|
|
|
|
|
- , COUNT(*) AS CPN_CNT
|
|
|
|
|
- FROM TB_CUST_COUPON
|
|
|
|
|
- GROUP BY CPN_ID) CC2
|
|
|
|
|
- ON C.CPN_ID = CC2.CPN_ID
|
|
|
|
|
- WHERE C.DOWN_ABL_YN = 'N'
|
|
|
|
|
- AND C.CPN_ID IN (
|
|
|
|
|
- SELECT PCI.ITEM_VAL
|
|
|
|
|
- FROM TB_PLAN_CONTENTS_ITEM PCI
|
|
|
|
|
- WHERE PCI.ITEM_VAL = #{cpnId}
|
|
|
|
|
- )
|
|
|
|
|
- AND NOW() BETWEEN C.DOWN_STDT AND C.DOWN_EDDT
|
|
|
|
|
- AND C.CPN_STAT = 'G232_11' -- 진행
|
|
|
|
|
- AND CASE WHEN C.TOT_PUB_LIMIT_QTY = 0 THEN 1
|
|
|
|
|
- WHEN C.TOT_PUB_LIMIT_QTY - CC2.CPN_CNT > 0 THEN 1
|
|
|
|
|
- ELSE 0
|
|
|
|
|
- END = 1
|
|
|
|
|
- AND IF(C.NEW_CUST_YN = 'Y', (SELECT COUNT(*) FROM TB_CUSTOMER WHERE CUST_NO = #{custNo} AND REG_DT BETWEEN C.CUST_JOIN_STDT AND C.CUST_JOIN_EDDT), 1) = 1
|
|
|
|
|
- AND IF(C.FIRST_ORD_YN = 'Y', (SELECT COUNT(*) FROM TB_ORDER WHERE CUST_NO = #{custNo} AND ORD_DT BETWEEN C.BUY_STDT AND C.BUY_EDDT), 0) = 0
|
|
|
|
|
- ) A
|
|
|
|
|
- ) Z
|
|
|
|
|
|
|
+ , CASE WHEN A.CNT <![CDATA[<=]]> 0 THEN 0
|
|
|
|
|
+ WHEN A.CNT > (A.DN_ABLE_CNT * A.ONE_PUB_QTY) THEN (A.DN_ABLE_CNT * A.ONE_PUB_QTY)
|
|
|
|
|
+ ELSE A.CNT
|
|
|
|
|
+ END AS DOWNLOAD_CNT
|
|
|
|
|
+ FROM (SELECT #{custNo} AS CUST_NO
|
|
|
|
|
+ , C.CPN_ID
|
|
|
|
|
+ , C.CPN_NM
|
|
|
|
|
+ , C.CUST_PUB_LIMIT_QTY
|
|
|
|
|
+ , C.ONE_PUB_QTY
|
|
|
|
|
+ , IF(C.PD_GB = 'P', C.AVAIL_STDT, NOW()) AS AVAIL_STDT
|
|
|
|
|
+ , IF(C.PD_GB = 'P', C.AVAIL_EDDT, CONCAT(CURRENT_DATE + INTERVAL C.AVAIL_DAYS DAY, ' 23:59:59')) AS AVAIL_EDDT
|
|
|
|
|
+ , C.END_ALIM_YN
|
|
|
|
|
+ , IFNULL(CC.CPN_CNT, 0) AS DN_CNT
|
|
|
|
|
+ , IF(C.CUST_PUB_LIMIT_QTY = 0 OR C.CUST_PUB_LIMIT_QTY - CC.CPN_CNT > 0, 1, 0) AS DN_ABLE_CNT
|
|
|
|
|
+ , IF(C.TOT_PUB_LIMIT_QTY > 0, C.TOT_PUB_LIMIT_QTY - CC2.CPN_CNT, 99999) AS CNT
|
|
|
|
|
+ , (SELECT COUNT(*) FROM TB_CUST_COUPON TCC WHERE CPN_ID = #{cpnId} AND CUST_NO = #{custNo}) AS OWN_COUPON
|
|
|
|
|
+ FROM TB_COUPON C
|
|
|
|
|
+ INNER JOIN TB_COUPON_CUST_GBN CCGB
|
|
|
|
|
+ ON C.CPN_ID = CCGB.CPN_ID
|
|
|
|
|
+ AND CCGB.USABLE_CUST_GB = #{custGb}
|
|
|
|
|
+ INNER JOIN TB_COUPON_CUST_GRADE CCGR
|
|
|
|
|
+ ON C.CPN_ID = CCGR.CPN_ID
|
|
|
|
|
+ AND CCGR.USABLE_CUST_GRADE = #{custGrade}
|
|
|
|
|
+ LEFT OUTER JOIN (SELECT CPN_ID
|
|
|
|
|
+ , CUST_NO
|
|
|
|
|
+ , COUNT(*) AS CPN_CNT
|
|
|
|
|
+ FROM TB_CUST_COUPON
|
|
|
|
|
+ GROUP BY CPN_ID, CUST_NO) CC
|
|
|
|
|
+ ON C.CPN_ID = CC.CPN_ID
|
|
|
|
|
+ AND CC.CUST_NO = #{custNo}
|
|
|
|
|
+ LEFT OUTER JOIN (SELECT CPN_ID
|
|
|
|
|
+ , COUNT(*) AS CPN_CNT
|
|
|
|
|
+ FROM TB_CUST_COUPON
|
|
|
|
|
+ GROUP BY CPN_ID) CC2
|
|
|
|
|
+ ON C.CPN_ID = CC2.CPN_ID
|
|
|
|
|
+ WHERE C.DOWN_ABL_YN = 'N'
|
|
|
|
|
+ AND C.CPN_ID IN (
|
|
|
|
|
+ SELECT PCI.ITEM_VAL
|
|
|
|
|
+ FROM TB_PLAN_CONTENTS_ITEM PCI
|
|
|
|
|
+ WHERE PCI.ITEM_VAL = #{cpnId}
|
|
|
|
|
+ )
|
|
|
|
|
+ AND NOW() BETWEEN C.DOWN_STDT AND C.DOWN_EDDT
|
|
|
|
|
+ AND C.CPN_STAT = 'G232_11' -- 진행
|
|
|
|
|
+ AND CASE WHEN C.TOT_PUB_LIMIT_QTY = 0 THEN 1
|
|
|
|
|
+ WHEN C.TOT_PUB_LIMIT_QTY - CC2.CPN_CNT > 0 THEN 1
|
|
|
|
|
+ ELSE 0
|
|
|
|
|
+ END = 1
|
|
|
|
|
+ AND IF(C.NEW_CUST_YN = 'Y', (SELECT COUNT(*) FROM TB_CUSTOMER WHERE CUST_NO = #{custNo} AND REG_DT BETWEEN C.CUST_JOIN_STDT AND C.CUST_JOIN_EDDT), 1) = 1
|
|
|
|
|
+ AND IF(C.FIRST_ORD_YN = 'Y', (SELECT COUNT(*) FROM TB_ORDER WHERE CUST_NO = #{custNo} AND ORD_DT BETWEEN C.BUY_STDT AND C.BUY_EDDT), 0) = 0
|
|
|
|
|
+ ) A
|
|
|
|
|
+ ) Z
|
|
|
<!-- WHERE Z.DOWNLOAD_CNT <![CDATA[>=]]> 0 -->
|
|
<!-- WHERE Z.DOWNLOAD_CNT <![CDATA[>=]]> 0 -->
|
|
|
</select>
|
|
</select>
|
|
|
|
|
|