|
|
@@ -54,10 +54,10 @@
|
|
|
FROM (SELECT CR.CPN_ID
|
|
|
, CR.CPN_TARGET
|
|
|
, CASE WHEN CR.CPN_TARGET = 'G260_10' THEN (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = CR.REF_VAL AND GOODS_STAT = 'G008_90')
|
|
|
- WHEN CR.CPN_TARGET = 'G260_11' THEN CASE WHEN (SELECT COUNT(1) FROM VW_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL) > 0 THEN (SELECT CATE1_NM FROM VW_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL LIMIT 1)
|
|
|
- WHEN (SELECT COUNT(1) FROM VW_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL) > 0 THEN (SELECT CONCAT(CATE1_NM, ' > ', CATE2_NM) FROM VW_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL LIMIT 1)
|
|
|
- WHEN (SELECT COUNT(1) FROM VW_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL) > 0 THEN (SELECT CONCAT(CATE1_NM, ' > ', CATE2_NM) FROM VW_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL LIMIT 1)
|
|
|
- WHEN (SELECT COUNT(1) FROM VW_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL) > 0 THEN (SELECT CONCAT(CATE1_NM, ' > ', CATE2_NM) FROM VW_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_11' THEN CASE WHEN (SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL) > 0 THEN (SELECT CATE1_NM FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN (SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL) > 0 THEN (SELECT CONCAT(CATE1_NM, ' > ', CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN (SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL) > 0 THEN (SELECT CONCAT(CATE1_NM, ' > ', CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN (SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL) > 0 THEN (SELECT CONCAT(CATE1_NM, ' > ', CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL LIMIT 1)
|
|
|
END <!-- 카테고리명은 대 > 중 카테고리까지만 노출 20210330 정지혜과장님 확인 -->
|
|
|
WHEN CR.CPN_TARGET = 'G260_12' THEN (SELECT BRAND_KNM FROM TB_BRAND WHERE BRAND_CD = CR.REF_VAL AND USE_YN = 'Y')
|
|
|
WHEN CR.CPN_TARGET = 'G260_13' THEN (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY WHERE SUPPLY_COMP_CD = CR.REF_VAL AND USE_YN = 'Y' AND SUPPLY_STAT = 'G010_30')
|
|
|
@@ -431,146 +431,56 @@
|
|
|
|
|
|
<select id="getMypageCouponList" resultType="Coupon" parameterType="Coupon">
|
|
|
/* TsfCoupon.getMypageCouponList */
|
|
|
- SELECT T.*
|
|
|
- FROM
|
|
|
- (
|
|
|
- SELECT z.*
|
|
|
- FROM
|
|
|
- (
|
|
|
- SELECT TC.CPN_ID
|
|
|
- ,TC.CPN_NM
|
|
|
- ,TC.CPN_DESC
|
|
|
- ,TC.SITE_CD
|
|
|
- ,TC.CPN_TYPE
|
|
|
- ,(CASE TC.APPLY_SCOPE WHEN 'A' THEN '전체'
|
|
|
- WHEN 'I' THEN '개별' END) AS APPLY_SCOPE
|
|
|
- ,(CASE TC.DC_WAY WHEN 'G240_10' THEN '할인금액'
|
|
|
- WHEN 'G240_11' THEN '할인율' END) AS DC_WAY
|
|
|
- ,TC.DC_PVAL
|
|
|
- ,TC.DC_MVAL
|
|
|
- ,TC.DC_AVAL
|
|
|
- ,TC.MAX_DC_AMT
|
|
|
- ,(CASE TC.PD_GB WHEN 'P' THEN '기간'
|
|
|
- WHEN 'D' THEN '일수' END) AS PD_GB
|
|
|
- ,DATE_FORMAT(A.AVAIL_STDT, '%Y-%m-%d') AS AVAIL_STDT
|
|
|
- ,DATE_FORMAT(A.AVAIL_EDDT, '%Y-%m-%d') AS AVAIL_EDDT
|
|
|
- ,TC.AVAIL_DAYS
|
|
|
- ,TC.CUST_PUB_LIMIT_QTY
|
|
|
- ,TC.TOT_PUB_LIMIT_QTY
|
|
|
- ,TC.ONE_PUB_QTY
|
|
|
- ,TC.DN_GB
|
|
|
- ,TC.DOWN_STDT
|
|
|
- ,TC.DOWN_EDDT
|
|
|
- ,TC.BUY_LIMIT_AMT
|
|
|
- ,TC.PLAN_SQ
|
|
|
- ,TC.REISSUANCE
|
|
|
- ,TC.CPN_STAT
|
|
|
- ,TC.END_ALIM_YN
|
|
|
- ,TC.FIRST_ORD_YN
|
|
|
- ,TC.DOWN_ABL_YN
|
|
|
- ,TC.DC_CD_GB
|
|
|
- ,TC.CUST_JOIN_STDT
|
|
|
- ,TC.CUST_JOIN_EDDT
|
|
|
- ,TC.BUY_STDT
|
|
|
- ,TC.BUY_EDDT
|
|
|
- ,TC.NEW_CUST_YN
|
|
|
- ,IF(NOW() BETWEEN TC.AVAIL_STDT AND TC.AVAIL_EDDT , 'Y','N') AS USER_YN
|
|
|
- , A.CUST_NO
|
|
|
- , A.USED_DT
|
|
|
- , A.CNT
|
|
|
- FROM TB_COUPON TC INNER JOIN
|
|
|
- (
|
|
|
- SELECT
|
|
|
- CUST_NO
|
|
|
- , CPN_ID
|
|
|
- , USED_DT
|
|
|
- , COUNT(*) AS CNT
|
|
|
- , AVAIL_STDT
|
|
|
- , AVAIL_EDDT
|
|
|
- FROM TB_CUST_COUPON
|
|
|
- WHERE CUST_NO = #{custNo}
|
|
|
- AND USED_DT IS NULL
|
|
|
- AND NOW() BETWEEN AVAIL_STDT AND AVAIL_EDDT
|
|
|
- GROUP BY
|
|
|
- CUST_NO
|
|
|
- , CPN_ID
|
|
|
- , USED_DT
|
|
|
- , AVAIL_STDT
|
|
|
- , AVAIL_EDDT
|
|
|
- )A ON TC.CPN_ID = A.CPN_ID
|
|
|
- WHERE 1=1
|
|
|
- AND TC.CPN_STAT = 'G232_11' /*쿠폰 상태 - 진행*/
|
|
|
- )Z
|
|
|
- UNION
|
|
|
- SELECT F.*
|
|
|
- FROM
|
|
|
- (
|
|
|
- SELECT TC.CPN_ID
|
|
|
- ,TC.CPN_NM
|
|
|
- ,TC.CPN_DESC
|
|
|
- ,TC.SITE_CD
|
|
|
- ,TC.CPN_TYPE
|
|
|
- ,(CASE TC.APPLY_SCOPE WHEN 'A' THEN '전체'
|
|
|
- WHEN 'I' THEN '개별' END) AS APPLY_SCOPE
|
|
|
- ,(CASE TC.DC_WAY WHEN 'G240_10' THEN '할인금액'
|
|
|
- WHEN 'G240_11' THEN '할인율' END) AS DC_WAY
|
|
|
- ,TC.DC_PVAL
|
|
|
- ,TC.DC_MVAL
|
|
|
- ,TC.DC_AVAL
|
|
|
- ,TC.MAX_DC_AMT
|
|
|
- ,(CASE TC.PD_GB WHEN 'P' THEN '기간'
|
|
|
- WHEN 'D' THEN '일수' END) AS PD_GB
|
|
|
- ,DATE_FORMAT(A.AVAIL_STDT, '%Y-%m-%d') AS AVAIL_STDT
|
|
|
- ,DATE_FORMAT(A.AVAIL_EDDT, '%Y-%m-%d') AS AVAIL_EDDT
|
|
|
- ,TC.AVAIL_DAYS
|
|
|
- ,TC.CUST_PUB_LIMIT_QTY
|
|
|
- ,TC.TOT_PUB_LIMIT_QTY
|
|
|
- ,TC.ONE_PUB_QTY
|
|
|
- ,TC.DN_GB
|
|
|
- ,TC.DOWN_STDT
|
|
|
- ,TC.DOWN_EDDT
|
|
|
- ,TC.BUY_LIMIT_AMT
|
|
|
- ,TC.PLAN_SQ
|
|
|
- ,TC.REISSUANCE
|
|
|
- ,TC.CPN_STAT
|
|
|
- ,TC.END_ALIM_YN
|
|
|
- ,TC.FIRST_ORD_YN
|
|
|
- ,TC.DOWN_ABL_YN
|
|
|
- ,TC.DC_CD_GB
|
|
|
- ,TC.CUST_JOIN_STDT
|
|
|
- ,TC.CUST_JOIN_EDDT
|
|
|
- ,TC.BUY_STDT
|
|
|
- ,TC.BUY_EDDT
|
|
|
- ,TC.NEW_CUST_YN
|
|
|
- ,IF(NOW() BETWEEN TC.AVAIL_STDT AND TC.AVAIL_EDDT , 'Y','N') AS USER_YN
|
|
|
- , A.CUST_NO
|
|
|
- , A.USED_DT
|
|
|
- , A.CNT
|
|
|
- FROM TB_COUPON TC INNER JOIN
|
|
|
- (
|
|
|
- SELECT
|
|
|
- CUST_NO
|
|
|
- , CPN_ID
|
|
|
- , USED_DT
|
|
|
- , COUNT(*) AS CNT
|
|
|
- , AVAIL_STDT
|
|
|
- , AVAIL_EDDT
|
|
|
- FROM TB_CUST_COUPON
|
|
|
- WHERE CUST_NO = #{custNo}
|
|
|
- AND USED_DT IS NULL
|
|
|
- AND AVAIL_EDDT BETWEEN DATE_ADD(NOW(), INTERVAL -3 MONTH) AND AVAIL_EDDT
|
|
|
- GROUP BY
|
|
|
- CUST_NO
|
|
|
- , CPN_ID
|
|
|
- , USED_DT
|
|
|
- , AVAIL_STDT
|
|
|
- , AVAIL_EDDT
|
|
|
- )A ON TC.CPN_ID = A.CPN_ID
|
|
|
- WHERE 1=1
|
|
|
- AND TC.CPN_STAT = 'G232_11' /*쿠폰 상태 - 진행*/
|
|
|
- )F
|
|
|
- )T
|
|
|
- ORDER BY T.USER_YN DESC, T.AVAIL_EDDT
|
|
|
+ SELECT CC.CPN_ID /*쿠폰ID*/
|
|
|
+ , C.CPN_NM /*쿠폰명*/
|
|
|
+ , C.BUY_LIMIT_AMT /*구매제한금액*/
|
|
|
+ , C.MAX_DC_AMT /*최대할인금액*/
|
|
|
+ , CASE WHEN #{frontGb} = 'P' THEN C.DC_PVAL
|
|
|
+ WHEN #{frontGb} = 'M' THEN C.DC_MVAL
|
|
|
+ WHEN #{frontGb} = 'A' THEN C.DC_AVAL
|
|
|
+ END AS DC_VAL /*할인값*/
|
|
|
+ , CASE WHEN C.DC_WAY = 'G240_10' THEN '원'
|
|
|
+ ELSE '%'
|
|
|
+ END AS DC_WAY /*할인방법*/
|
|
|
+ , CONCAT(CASE WHEN C.BUY_LIMIT_AMT = 0 THEN ''
|
|
|
+ ELSE CONCAT(FORMAT(C.BUY_LIMIT_AMT , 0),'원 이상 구매 시 ')
|
|
|
+ END
|
|
|
+ ,CASE WHEN C.MAX_DC_AMT = 0 THEN ''
|
|
|
+ ELSE CONCAT('최대 ',FORMAT(C.MAX_DC_AMT , 0),'원 할인')
|
|
|
+ END) AS USE_CONDITION /*사용조건*/
|
|
|
+ , CASE WHEN C.CUST_PUB_LIMIT_QTY = 0 THEN ''
|
|
|
+ ELSE CONCAT('1인당 최대',C.CUST_PUB_LIMIT_QTY,'매')
|
|
|
+ END AS ISSUE_CONDITION /*발급수량*/
|
|
|
+ , CC.AVAIL_STDT /*유효시작일자*/
|
|
|
+ , CC.AVAIL_EDDT /*유효종료일자*/
|
|
|
+ , CC.CPN_CNT /*보유쿠폰수*/
|
|
|
+ , CC.EXPIRE_YN /*만료여부*/
|
|
|
+ FROM (
|
|
|
+ SELECT CC.CPN_ID
|
|
|
+ , DATE_FORMAT(CC.AVAIL_STDT,'%Y.%m.%d') AS AVAIL_STDT /*유효시작일자*/
|
|
|
+ , DATE_FORMAT(CC.AVAIL_EDDT,'%Y.%m.%d') AS AVAIL_EDDT /*유효종료일자*/
|
|
|
+ , COUNT(*) AS CPN_CNT /*보유쿠폰수*/
|
|
|
+ , MAX(CASE WHEN NOW() > CC.AVAIL_EDDT THEN 'Y'
|
|
|
+ ELSE 'N'
|
|
|
+ END) AS EXPIRE_YN /*만료여부*/
|
|
|
+ FROM TB_CUST_COUPON CC
|
|
|
+ WHERE 1 = 1
|
|
|
+ AND CC.CUST_NO = #{custNo} /**P*/
|
|
|
+ AND CC.USED_DT IS NULL /*사용하지않은쿠폰만*/
|
|
|
+ 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')
|
|
|
+ ) CC
|
|
|
+ , TB_COUPON C
|
|
|
+ WHERE CC.CPN_ID = C.CPN_ID
|
|
|
+ AND C.CPN_STAT = 'G232_11' /*진행중인쿠폰*/
|
|
|
+ AND C.SITE_CD = #{siteCd}
|
|
|
+ <if test="quickYn != null and quickYn != ''">
|
|
|
+ AND CC.CC.EXPIRE_YN = 'N'
|
|
|
+ </if>
|
|
|
+ ORDER BY CC.EXPIRE_YN, CC.AVAIL_EDDT, DC_VAL DESC, MAX_DC_AMT DESC
|
|
|
+ <if test="quickYn != null and quickYn != ''">
|
|
|
+ LIMIT 30
|
|
|
+ </if>
|
|
|
</select>
|
|
|
|
|
|
<select id="getMypageCouponInfo" resultType="Coupon" parameterType="Coupon">
|
|
|
@@ -601,44 +511,228 @@
|
|
|
|
|
|
<select id="getCouponDetailInfo" resultType="Coupon" parameterType="Coupon">
|
|
|
/* TsfCoupon.getCouponDetailInfo -- custNo 변경 예정*/
|
|
|
- SELECT A.CPN_ID
|
|
|
- ,A.CPN_NM
|
|
|
- ,A.CPN_DESC
|
|
|
- ,A.SITE_CD
|
|
|
- ,A.AF_LINK_CD
|
|
|
- ,A.CPN_TYPE
|
|
|
- ,A.APPLY_SCOPE
|
|
|
- ,A.DC_WAY
|
|
|
- ,A.DC_PVAL
|
|
|
- ,A.DC_MVAL
|
|
|
- ,A.DC_AVAL
|
|
|
- ,A.MAX_DC_AMT
|
|
|
- ,A.PD_GB
|
|
|
- ,DATE_FORMAT(A.AVAIL_STDT,'%Y-%m-%d') AS AVAIL_STDT
|
|
|
- ,DATE_FORMAT(A.AVAIL_EDDT,'%Y-%m-%d') AS AVAIL_EDDT
|
|
|
- ,A.AVAIL_DAYS
|
|
|
- ,A.CUST_PUB_LIMIT_QTY
|
|
|
- ,A.TOT_PUB_LIMIT_QTY
|
|
|
- ,A.ONE_PUB_QTY
|
|
|
- ,A.DN_GB
|
|
|
- ,A.DOWN_STDT
|
|
|
- ,A.DOWN_EDDT
|
|
|
- ,A.BUY_LIMIT_AMT
|
|
|
- ,A.PLAN_SQ
|
|
|
- ,A.REISSUANCE
|
|
|
- ,A.CPN_STAT
|
|
|
- ,A.END_ALIM_YN
|
|
|
- ,A.FIRST_ORD_YN
|
|
|
- ,A.DOWN_ABL_YN
|
|
|
- ,A.DC_CD_GB
|
|
|
- ,A.CUST_JOIN_STDT
|
|
|
- ,A.CUST_JOIN_EDDT
|
|
|
- ,A .BUY_STDT
|
|
|
- ,A.BUY_EDDT
|
|
|
- ,A.NEW_CUST_YN
|
|
|
- FROM TB_COUPON A
|
|
|
- WHERE 1=1
|
|
|
- AND A.CPN_ID = #{cpnId}
|
|
|
+ SELECT Z.CPN_ID /*쿠폰ID*/
|
|
|
+ , Z.CPN_NM /*쿠폰명*/
|
|
|
+ , Z.BUY_LIMIT_AMT /*구매제한금액*/
|
|
|
+ , Z.MAX_DC_AMT /*최대할인금액*/
|
|
|
+ , Z.DC_VAL /*할인값*/
|
|
|
+ , Z.DC_WAY /*할인방법*/
|
|
|
+ , Z.USE_CONDITION /*사용조건*/
|
|
|
+ , Z.ISSUE_CONDITION /*발급조건*/
|
|
|
+ , Z.AVAIL_STDT /*유효시작일자*/
|
|
|
+ , Z.AVAIL_EDDT /*유효종료일자*/
|
|
|
+ , Z.CPN_CNT /*보유쿠폰수*/
|
|
|
+ , Z.EXPIRE_YN /*만료여부*/
|
|
|
+ , GROUP_CONCAT(Z.TGT_CONDITION) AS TGT_CONDITION
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ WITH TAB_COUPON AS (
|
|
|
+ SELECT CC.CPN_ID /*쿠폰ID*/
|
|
|
+ , C.CPN_NM /*쿠폰명*/
|
|
|
+ , C.BUY_LIMIT_AMT /*구매제한금액*/
|
|
|
+ , C.MAX_DC_AMT /*최대할인금액*/
|
|
|
+ , CASE WHEN #{frontGb} = 'P' THEN C.DC_PVAL
|
|
|
+ WHEN #{frontGb} = 'M' THEN C.DC_MVAL
|
|
|
+ WHEN #{frontGb} = 'A' THEN C.DC_AVAL
|
|
|
+ END AS DC_VAL /*할인값*/
|
|
|
+ , CASE WHEN C.DC_WAY = 'G240_10' THEN '원'
|
|
|
+ ELSE '%'
|
|
|
+ END AS DC_WAY /*할인방법*/
|
|
|
+ , CONCAT(CASE WHEN C.BUY_LIMIT_AMT = 0 THEN ''
|
|
|
+ ELSE CONCAT(FORMAT(C.BUY_LIMIT_AMT , 0),'원 이상 구매 시 ')
|
|
|
+ END
|
|
|
+ ,CASE WHEN C.MAX_DC_AMT = 0 THEN ''
|
|
|
+ ELSE CONCAT('최대 ',FORMAT(C.MAX_DC_AMT , 0),'원 할인')
|
|
|
+ END) AS USE_CONDITION /*사용조건*/
|
|
|
+ , CASE WHEN C.CUST_PUB_LIMIT_QTY = 0 THEN ''
|
|
|
+ ELSE CONCAT('1인당 최대',C.CUST_PUB_LIMIT_QTY,'매')
|
|
|
+ END AS ISSUE_CONDITION /*발급조건*/
|
|
|
+ , CC.AVAIL_STDT /*유효시작일자*/
|
|
|
+ , CC.AVAIL_EDDT /*유효종료일자*/
|
|
|
+ , CC.CPN_CNT /*보유쿠폰수*/
|
|
|
+ , CC.EXPIRE_YN /*만료여부*/
|
|
|
+ FROM (
|
|
|
+ SELECT CC.CPN_ID
|
|
|
+ , DATE_FORMAT(CC.AVAIL_STDT,'%Y.%m.%d %H:%i') AS AVAIL_STDT /*유효시작일자*/
|
|
|
+ , DATE_FORMAT(CC.AVAIL_EDDT,'%Y.%m.%d %H:%i') AS AVAIL_EDDT /*유효종료일자*/
|
|
|
+ , COUNT(*) AS CPN_CNT /*보유쿠폰수*/
|
|
|
+ , MAX(CASE WHEN NOW() > CC.AVAIL_EDDT THEN 'Y'
|
|
|
+ ELSE 'N'
|
|
|
+ END) AS EXPIRE_YN /*만료여부*/
|
|
|
+ FROM TB_CUST_COUPON CC
|
|
|
+ WHERE 1 = 1
|
|
|
+ AND CC.CUST_NO = #{custNo}
|
|
|
+ AND CC.USED_DT IS NULL /*사용하지않은쿠폰만*/
|
|
|
+ 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')
|
|
|
+ ) CC
|
|
|
+ , TB_COUPON C
|
|
|
+ WHERE CC.CPN_ID = C.CPN_ID
|
|
|
+ AND C.CPN_STAT = 'G232_11' /*진행중인쿠폰*/
|
|
|
+ AND C.SITE_CD = #{siteCd}
|
|
|
+ )
|
|
|
+ , TAB_COUPON_REFVAL1 AS (
|
|
|
+ SELECT CR.CPN_ID
|
|
|
+ , CR.CPN_TARGET
|
|
|
+ , CASE WHEN CR.CPN_TARGET = 'G260_10' /*상품*/ THEN (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = CR.REF_VAL AND GOODS_STAT = 'G008_90')
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_11' /*카테고리*/ THEN
|
|
|
+ CASE WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL),0) > 0 THEN (SELECT CATE1_NM FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ END
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_12' /*브랜드*/ THEN (SELECT BRAND_KNM FROM TB_BRAND WHERE BRAND_CD = CR.REF_VAL AND USE_YN = 'Y')
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_13' /*업체*/ THEN (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY WHERE SUPPLY_COMP_CD = CR.REF_VAL AND USE_YN = 'Y' AND SUPPLY_STAT = 'G010_30')
|
|
|
+ END AS REF_VAL
|
|
|
+ , RANK() OVER(PARTITION BY CR.CPN_ID, CR.CPN_TARGET ORDER BY REF_VAL) AS RK
|
|
|
+ FROM TAB_COUPON C
|
|
|
+ , TB_COUPON_REFVAL CR
|
|
|
+ WHERE C.CPN_ID = CR.CPN_ID
|
|
|
+ AND CR.CPN_TARGET != 'G260_14' /*제외상품아닌넘*/
|
|
|
+ )
|
|
|
+ , TAB_COUPON_REFVAL2 AS (
|
|
|
+ SELECT CPN_ID
|
|
|
+ , CPN_TARGET
|
|
|
+ , GROUP_CONCAT(REF_VAL ORDER BY RK ASC SEPARATOR '/' ) AS REF_VAL
|
|
|
+ , (SELECT COUNT(*)
|
|
|
+ FROM TAB_COUPON_REFVAL1
|
|
|
+ WHERE CPN_ID = CR.CPN_ID
|
|
|
+ AND CPN_TARGET = CR.CPN_TARGET) AS CNT
|
|
|
+ FROM TAB_COUPON_REFVAL1 CR
|
|
|
+ WHERE 1 = 1
|
|
|
+ AND (
|
|
|
+ (CPN_TARGET != 'G260_12' AND RK = 1) /*브랜드 외는 1개만 노출*/
|
|
|
+ OR
|
|
|
+ (CPN_TARGET = 'G260_12' AND RK <![CDATA[<=]]> 2) /*브랜드만 2개 노출*/
|
|
|
+ )
|
|
|
+ GROUP BY CPN_ID, CPN_TARGET
|
|
|
+ )
|
|
|
+ SELECT C.CPN_ID /*쿠폰ID*/
|
|
|
+ , C.CPN_NM /*쿠폰명*/
|
|
|
+ , C.BUY_LIMIT_AMT /*구매제한금액*/
|
|
|
+ , C.MAX_DC_AMT /*최대할인금액*/
|
|
|
+ , C.DC_VAL /*할인값*/
|
|
|
+ , C.DC_WAY /*할인방법*/
|
|
|
+ , C.USE_CONDITION /*사용조건*/
|
|
|
+ , C.ISSUE_CONDITION /*발급조건*/
|
|
|
+ , C.AVAIL_STDT /*유효시작일자*/
|
|
|
+ , C.AVAIL_EDDT /*유효종료일자*/
|
|
|
+ , C.CPN_CNT /*보유쿠폰수*/
|
|
|
+ , C.EXPIRE_YN /*만료여부*/
|
|
|
+ , CONCAT(CR.REF_VAL,CASE WHEN CR.CPN_TARGET = 'G260_10' AND CR.CNT > 1 THEN ' 외'
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_11' AND CR.CNT > 1 THEN ' 외'
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_12' AND CR.CNT > 2 THEN ' 외'
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_13' AND CR.CNT > 1 THEN ' 외'
|
|
|
+ ELSE ''
|
|
|
+ END) AS TGT_CONDITION /*대상조건*/
|
|
|
+ FROM TAB_COUPON C
|
|
|
+ , TAB_COUPON_REFVAL2 CR
|
|
|
+ WHERE C.CPN_ID = CR.CPN_ID
|
|
|
+ AND C.CPN_ID = #{cpnId}
|
|
|
+ ORDER BY C.EXPIRE_YN, C.AVAIL_EDDT
|
|
|
+ )Z
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getPlanCouponDetailInfo" resultType="Coupon" parameterType="Coupon">
|
|
|
+ /* TsfCoupon.getPlanCouponDetailInfo */
|
|
|
+ SELECT Z.CPN_ID /*쿠폰ID*/
|
|
|
+ , Z.CPN_NM /*쿠폰명*/
|
|
|
+ , Z.BUY_LIMIT_AMT /*구매제한금액*/
|
|
|
+ , Z.MAX_DC_AMT /*최대할인금액*/
|
|
|
+ , Z.DC_VAL /*할인값*/
|
|
|
+ , Z.DC_WAY /*할인방법*/
|
|
|
+ , Z.USE_CONDITION /*사용조건*/
|
|
|
+ , Z.ISSUE_CONDITION /*발급조건*/
|
|
|
+ , Z.AVAIL_STDT
|
|
|
+ , Z.AVAIL_EDDT
|
|
|
+ , GROUP_CONCAT(Z.TGT_CONDITION) AS TGT_CONDITION
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ WITH TAB_COUPON AS (
|
|
|
+ SELECT C.CPN_ID /*쿠폰ID*/
|
|
|
+ , C.CPN_NM /*쿠폰명*/
|
|
|
+ , C.BUY_LIMIT_AMT /*구매제한금액*/
|
|
|
+ , C.MAX_DC_AMT /*최대할인금액*/
|
|
|
+ , DATE_FORMAT(C.AVAIL_STDT,'%Y.%m.%d %H:%i') AS AVAIL_STDT
|
|
|
+ , DATE_FORMAT(C.AVAIL_EDDT,'%Y.%m.%d %H:%i') AS AVAIL_EDDT
|
|
|
+ , CASE WHEN #{frontGb} = 'P' THEN C.DC_PVAL
|
|
|
+ WHEN #{frontGb} = 'M' THEN C.DC_MVAL
|
|
|
+ WHEN #{frontGb} = 'A' THEN C.DC_AVAL
|
|
|
+ END AS DC_VAL /*할인값*/
|
|
|
+ , CASE WHEN C.DC_WAY = 'G240_10' THEN '원'
|
|
|
+ ELSE '%'
|
|
|
+ END AS DC_WAY /*할인방법*/
|
|
|
+ , CONCAT(CASE WHEN C.BUY_LIMIT_AMT = 0 THEN ''
|
|
|
+ ELSE CONCAT(FORMAT(C.BUY_LIMIT_AMT , 0),'원 이상 구매 시 ')
|
|
|
+ END
|
|
|
+ ,CASE WHEN C.MAX_DC_AMT = 0 THEN ''
|
|
|
+ ELSE CONCAT('최대 ',FORMAT(C.MAX_DC_AMT , 0),'원 할인')
|
|
|
+ END) AS USE_CONDITION /*사용조건*/
|
|
|
+ , CASE WHEN C.CUST_PUB_LIMIT_QTY = 0 THEN ''
|
|
|
+ ELSE CONCAT('1인당 최대',C.CUST_PUB_LIMIT_QTY,'매')
|
|
|
+ END AS ISSUE_CONDITION /*발급조건*/
|
|
|
+ FROM TB_COUPON C
|
|
|
+ WHERE C.CPN_STAT = 'G232_11' /*진행중인쿠폰*/
|
|
|
+ AND C.SITE_CD = #{siteCd}
|
|
|
+ )
|
|
|
+ , TAB_COUPON_REFVAL1 AS (
|
|
|
+ SELECT CR.CPN_ID
|
|
|
+ , CR.CPN_TARGET
|
|
|
+ , CASE WHEN CR.CPN_TARGET = 'G260_10' /*상품*/ THEN (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = CR.REF_VAL AND GOODS_STAT = 'G008_90')
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_11' /*카테고리*/ THEN
|
|
|
+ CASE WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL),0) > 0 THEN (SELECT CATE1_NM FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL LIMIT 1)
|
|
|
+ END
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_12' /*브랜드*/ THEN (SELECT BRAND_KNM FROM TB_BRAND WHERE BRAND_CD = CR.REF_VAL AND USE_YN = 'Y')
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_13' /*업체*/ THEN (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY WHERE SUPPLY_COMP_CD = CR.REF_VAL AND USE_YN = 'Y' AND SUPPLY_STAT = 'G010_30')
|
|
|
+ END AS REF_VAL
|
|
|
+ , RANK() OVER(PARTITION BY CR.CPN_ID, CR.CPN_TARGET ORDER BY REF_VAL) AS RK
|
|
|
+ FROM TAB_COUPON C
|
|
|
+ , TB_COUPON_REFVAL CR
|
|
|
+ WHERE C.CPN_ID = CR.CPN_ID
|
|
|
+ AND CR.CPN_TARGET != 'G260_14' /*제외상품아닌넘*/
|
|
|
+ )
|
|
|
+ , TAB_COUPON_REFVAL2 AS (
|
|
|
+ SELECT CPN_ID
|
|
|
+ , CPN_TARGET
|
|
|
+ , GROUP_CONCAT(REF_VAL ORDER BY RK ASC SEPARATOR '/' ) AS REF_VAL
|
|
|
+ , (SELECT COUNT(*)
|
|
|
+ FROM TAB_COUPON_REFVAL1
|
|
|
+ WHERE CPN_ID = CR.CPN_ID
|
|
|
+ AND CPN_TARGET = CR.CPN_TARGET) AS CNT
|
|
|
+ FROM TAB_COUPON_REFVAL1 CR
|
|
|
+ WHERE 1 = 1
|
|
|
+ AND (
|
|
|
+ (CPN_TARGET != 'G260_12' AND RK = 1) /*브랜드 외는 1개만 노출*/
|
|
|
+ OR
|
|
|
+ (CPN_TARGET = 'G260_12' AND RK <![CDATA[<=]]> 2) /*브랜드만 2개 노출*/
|
|
|
+ )
|
|
|
+ GROUP BY CPN_ID, CPN_TARGET
|
|
|
+ )
|
|
|
+ SELECT C.CPN_ID /*쿠폰ID*/
|
|
|
+ , C.CPN_NM /*쿠폰명*/
|
|
|
+ , C.BUY_LIMIT_AMT /*구매제한금액*/
|
|
|
+ , C.MAX_DC_AMT /*최대할인금액*/
|
|
|
+ , C.DC_VAL /*할인값*/
|
|
|
+ , C.DC_WAY /*할인방법*/
|
|
|
+ , C.USE_CONDITION /*사용조건*/
|
|
|
+ , C.ISSUE_CONDITION /*발급조건*/
|
|
|
+ , C.AVAIL_STDT
|
|
|
+ , C.AVAIL_EDDT
|
|
|
+ , CONCAT(CR.REF_VAL,CASE WHEN CR.CPN_TARGET = 'G260_10' AND CR.CNT > 1 THEN ' 외'
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_11' AND CR.CNT > 1 THEN ' 외'
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_12' AND CR.CNT > 2 THEN ' 외'
|
|
|
+ WHEN CR.CPN_TARGET = 'G260_13' AND CR.CNT > 1 THEN ' 외'
|
|
|
+ ELSE ''
|
|
|
+ END) AS TGT_CONDITION /*대상조건*/
|
|
|
+ FROM TAB_COUPON C
|
|
|
+ , TAB_COUPON_REFVAL2 CR
|
|
|
+ WHERE C.CPN_ID = CR.CPN_ID
|
|
|
+ AND C.CPN_ID = #{cpnId}
|
|
|
+ )Z
|
|
|
+
|
|
|
</select>
|
|
|
|
|
|
<!-- 기획전 다운가능 쿠폰 정보 조회 -->
|