|
|
@@ -2616,9 +2616,211 @@
|
|
|
TRUNCATE TABLE TB_GOODS_BENEFIT_TMP
|
|
|
</delete>
|
|
|
|
|
|
+ <!-- 상품혜택임시- 쿠폰할인 생성(적용범위 개별) -->
|
|
|
+ <insert id="createTemporaryGoodsBenefitScopeCouponDiscount" timeout="600">
|
|
|
+ /* TsbGoods.createTemporaryGoodsBenefitScopeCouponDiscount */
|
|
|
+ INSERT INTO TB_GOODS_BENEFIT_TMP (
|
|
|
+ GOODS_CD
|
|
|
+ , BENEFIT_GB
|
|
|
+ )
|
|
|
+ WITH CTE AS (
|
|
|
+ SELECT CP.CPN_ID , CP.BUY_LIMIT_AMT, CPR.CPN_REFVAL_SQ
|
|
|
+ FROM TB_COUPON CP
|
|
|
+ INNER JOIN TB_COUPON_REFVAL CPR ON CP.CPN_ID=CPR.CPN_ID
|
|
|
+ WHERE CP.SITE_CD = 'G000_10' /*전시사이트*/
|
|
|
+ AND CP.CPN_STAT = 'G232_11' /*쿠폰인 진행중인 쿠폰만*/
|
|
|
+ AND CP.DOWN_ABL_YN = 'Y' /*상품상세 다운로드 가능여부*/
|
|
|
+ AND NOW() <![CDATA[<=]]> IF(CP.PD_GB = 'D',DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 1 DAY),'%Y-%m-%d %H:%i:%S'),CP.AVAIL_EDDT)
|
|
|
+ AND NOW() BETWEEN CP.DOWN_STDT AND CP.DOWN_EDDT
|
|
|
+ AND CP.CPN_TYPE IN ('G230_11','G230_20','G230_30') /*상품쿠폰,주문서쿠폰,배송비쿠폰*/
|
|
|
+ AND CP.DC_CD_GB = 'G233_00' -- 일반유형(할인쿠폰구분)
|
|
|
+ AND (SELECT COUNT(1)
|
|
|
+ FROM TB_COUPON_CUST_GBN
|
|
|
+ WHERE CPN_ID = CP.CPN_ID
|
|
|
+ AND USABLE_CUST_GB IN ('G100_10') /*사용가능고객구분:일반*/
|
|
|
+ ) >= 1
|
|
|
+ AND CP.APPLY_SCOPE = 'I' -- 개별
|
|
|
+ AND CP.DC_PVAL > 0
|
|
|
+ AND IF(CP.TOT_PUB_LIMIT_QTY = 0,9999999999,CP.TOT_PUB_LIMIT_QTY) > (SELECT COUNT(1)
|
|
|
+ FROM TB_CUST_COUPON
|
|
|
+ WHERE CPN_ID = CP.CPN_ID
|
|
|
+ ) /*총발행제한수*/
|
|
|
+ )
|
|
|
+ , CTE_DETAIL AS (
|
|
|
+
|
|
|
+ SELECT CP.CPN_REFVAL_SQ, CPR.CPN_ID, CPR.REF_VAL, G.GOODS_CD GKEY, G.GOODS_CD
|
|
|
+ FROM CTE CP
|
|
|
+ INNER JOIN TB_COUPON_REFVAL CPR ON CP.CPN_REFVAL_SQ=CPR.CPN_REFVAL_SQ
|
|
|
+ INNER JOIN TB_GOODS G ON CPR.REF_VAL=G.GOODS_CD AND CP.BUY_LIMIT_AMT <![CDATA[<=]]> G.CURR_PRICE /*최소주문금액*/
|
|
|
+ WHERE CPR.CPN_TARGET = 'G260_10'
|
|
|
+
|
|
|
+ UNION
|
|
|
+
|
|
|
+ /* 적용대상:카테고리*/
|
|
|
+ SELECT CP.CPN_REFVAL_SQ, CPR.CPN_ID, CPR.REF_VAL, G.GOODS_CD GKEY, G.GOODS_CD
|
|
|
+ FROM CTE CP
|
|
|
+ INNER JOIN TB_COUPON_REFVAL CPR ON CP.CPN_REFVAL_SQ=CPR.CPN_REFVAL_SQ
|
|
|
+ INNER JOIN
|
|
|
+ (SELECT LEAF_CATE_NO
|
|
|
+ , CATE_LVL
|
|
|
+ , CATE_NO
|
|
|
+ FROM (
|
|
|
+ SELECT LEAF_CATE_NO ,
|
|
|
+ CASE WHEN X = 1 THEN 'CATE1_NO' -- 컬럼과 매핑(컬럼명)
|
|
|
+ WHEN X = 2 THEN 'CATE2_NO'
|
|
|
+ WHEN X = 3 THEN 'CATE3_NO'
|
|
|
+ WHEN X = 4 THEN 'CATE4_NO'
|
|
|
+ ELSE 'CATE5_NO'
|
|
|
+ END CATE_LVL,
|
|
|
+ CASE WHEN X = 1 THEN CATE1_NO -- 컬럼과 매핑(컬럼 데이터)
|
|
|
+ WHEN X = 2 THEN CATE2_NO
|
|
|
+ WHEN X = 3 THEN CATE3_NO
|
|
|
+ WHEN X = 4 THEN CATE4_NO
|
|
|
+ ELSE CATE5_NO
|
|
|
+ END CATE_NO
|
|
|
+ FROM (
|
|
|
+ ( SELECT LEAF_CATE_NO
|
|
|
+ , CATE1_NO
|
|
|
+ , CATE2_NO
|
|
|
+ , CATE3_NO
|
|
|
+ , CATE4_NO
|
|
|
+ , CATE5_NO
|
|
|
+ FROM TB_CATE_4SRCH
|
|
|
+ WHERE SITE_CD = 'G000_10'
|
|
|
+ AND CATE_TYPE = 'G031_10') A, -- 상품타입
|
|
|
+ (SELECT 1 AS X -- UNPIVOT 컬럼 수 만큼 선언
|
|
|
+ UNION ALL SELECT 2 AS X
|
|
|
+ UNION ALL SELECT 3 AS X
|
|
|
+ UNION ALL SELECT 4 AS X
|
|
|
+ UNION ALL SELECT 5 AS X
|
|
|
+ ) B
|
|
|
+ )
|
|
|
+ ORDER BY LEAF_CATE_NO, CATE_LVL
|
|
|
+ ) K
|
|
|
+ WHERE CATE_NO IS NOT NULL
|
|
|
+ ) X ON CPR.REF_VAL=X.CATE_NO
|
|
|
+ INNER JOIN TB_CATE_GOODS Y ON X.LEAF_CATE_NO = Y.CATE_NO
|
|
|
+ INNER JOIN TB_GOODS G ON G.GOODS_CD=Y.GOODS_CD AND CP.BUY_LIMIT_AMT <![CDATA[<=]]> G.CURR_PRICE /*최소주문금액*/
|
|
|
+ WHERE CPR.CPN_TARGET = 'G260_11'
|
|
|
+ AND IFNULL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
|
|
|
+ AND IFNULL(REF_BRAND_CD,G.BRAND_CD) = G.BRAND_CD
|
|
|
+
|
|
|
+ UNION
|
|
|
+
|
|
|
+ /* 적용대상:브랜드*/
|
|
|
+ SELECT CP.CPN_REFVAL_SQ, CPR.CPN_ID, CPR.REF_VAL, G.BRAND_CD GKEY, G.GOODS_CD
|
|
|
+ FROM CTE CP
|
|
|
+ INNER JOIN TB_COUPON_REFVAL CPR ON CP.CPN_REFVAL_SQ=CPR.CPN_REFVAL_SQ
|
|
|
+ INNER JOIN TB_GOODS G ON CPR.REF_VAL=G.BRAND_CD AND CP.BUY_LIMIT_AMT <![CDATA[<=]]> G.CURR_PRICE /*최소주문금액*/
|
|
|
+ WHERE CPR.CPN_TARGET = 'G260_12'
|
|
|
+ AND IFNULL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
|
|
|
+
|
|
|
+ UNION
|
|
|
+
|
|
|
+ /* 적용대상:공급업체*/
|
|
|
+ SELECT CP.CPN_REFVAL_SQ, CPR.CPN_ID, CPR.REF_VAL, G.SUPPLY_COMP_CD GKEY, G.GOODS_CD
|
|
|
+ FROM CTE CP
|
|
|
+ INNER JOIN TB_COUPON_REFVAL CPR ON CP.CPN_REFVAL_SQ=CPR.CPN_REFVAL_SQ
|
|
|
+ INNER JOIN TB_GOODS G ON CPR.REF_VAL=G.SUPPLY_COMP_CD AND CP.BUY_LIMIT_AMT <![CDATA[<=]]> G.CURR_PRICE /*최소주문금액*/
|
|
|
+ WHERE CPR.CPN_TARGET = 'G260_13'
|
|
|
+ )
|
|
|
+ SELECT G.GOODS_CD
|
|
|
+ , '10' AS BENEFIT_GB /*쿠폰할인*/
|
|
|
+ FROM (
|
|
|
+ SELECT CP.CPN_ID
|
|
|
+ ,G.GOODS_CD
|
|
|
+ FROM CTE_DETAIL CC
|
|
|
+ INNER JOIN TB_GOODS G ON CC.GOODS_CD = G.GOODS_CD
|
|
|
+ INNER JOIN TB_COUPON CP ON CC.CPN_ID = CP.CPN_ID
|
|
|
+ WHERE NOT EXISTS (
|
|
|
+ SELECT 1
|
|
|
+ FROM TB_COUPON_REFVAL SCPR
|
|
|
+ WHERE SCPR.CPN_ID = CP.CPN_ID
|
|
|
+ AND SCPR.REF_VAL = G.GOODS_CD
|
|
|
+ AND SCPR.DEL_YN = 'N' /*삭제안된넘*/
|
|
|
+ AND SCPR.CPN_TARGET = '40' /* 제외상품*/
|
|
|
+ )
|
|
|
+ AND NOT EXISTS (
|
|
|
+ SELECT 1
|
|
|
+ FROM TB_COUPON_BAN_GOODS
|
|
|
+ WHERE GOODS_CD = G.GOODS_CD
|
|
|
+ AND DEL_YN = 'N'
|
|
|
+ )
|
|
|
+ AND NOT EXISTS (
|
|
|
+ SELECT 1
|
|
|
+ FROM TB_GOODS_BENEFIT_TMP
|
|
|
+ WHERE GOODS_CD = G.GOODS_CD
|
|
|
+ AND BENEFIT_GB = '10'
|
|
|
+ )
|
|
|
+ ) G
|
|
|
+ GROUP BY G.GOODS_CD
|
|
|
+ HAVING COUNT(*) <![CDATA[>]]> 0
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <!-- 상품혜택임시- 쿠폰할인 생성(적용범위 전체) -->
|
|
|
+ <insert id="createTemporaryGoodsBenefitAllCouponDiscount" timeout="600">
|
|
|
+ /* TsbGoods.createTemporaryGoodsBenefitAllCouponDiscount */
|
|
|
+ INSERT INTO TB_GOODS_BENEFIT_TMP (
|
|
|
+ GOODS_CD
|
|
|
+ , BENEFIT_GB
|
|
|
+ )
|
|
|
+ WITH CTE AS (
|
|
|
+ SELECT CPN_ID , BUY_LIMIT_AMT
|
|
|
+ FROM TB_COUPON CP
|
|
|
+ WHERE CP.SITE_CD = 'G000_10' /*전시사이트*/
|
|
|
+ AND CP.CPN_STAT = 'G232_11' /*쿠폰인 진행중인 쿠폰만*/
|
|
|
+ AND CP.DOWN_ABL_YN = 'Y' /*상품상세 다운로드 가능여부*/
|
|
|
+ AND NOW() <![CDATA[<=]]> IF(CP.PD_GB = 'D',DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 1 DAY),'%Y-%m-%d %H:%i:%S'),CP.AVAIL_EDDT)
|
|
|
+ AND NOW() BETWEEN CP.DOWN_STDT AND CP.DOWN_EDDT
|
|
|
+ AND CP.CPN_TYPE IN ('G230_11','G230_20','G230_30') /*상품쿠폰,주문서쿠폰,배송비쿠폰*/
|
|
|
+ AND CP.DC_CD_GB = 'G233_00' -- 일반유형(할인쿠폰구분)
|
|
|
+ AND (SELECT COUNT(1)
|
|
|
+ FROM TB_COUPON_CUST_GBN
|
|
|
+ WHERE CPN_ID = CP.CPN_ID
|
|
|
+ AND USABLE_CUST_GB IN ('G100_10') /*사용가능고객구분:일반*/
|
|
|
+ ) >= 1
|
|
|
+ AND CP.APPLY_SCOPE = 'A' -- 전체
|
|
|
+ AND CP.DC_PVAL > 0
|
|
|
+ AND IF(CP.TOT_PUB_LIMIT_QTY = 0,9999999999,CP.TOT_PUB_LIMIT_QTY) > (SELECT COUNT(1)
|
|
|
+ FROM TB_CUST_COUPON
|
|
|
+ WHERE CPN_ID = CP.CPN_ID
|
|
|
+ ) /*총발행제한수*/
|
|
|
+ )
|
|
|
+ , CTE_DETAIL AS (
|
|
|
+ SELECT CP.CPN_ID, G.GOODS_CD
|
|
|
+ FROM CTE CP
|
|
|
+ INNER JOIN TB_GOODS G ON CP.BUY_LIMIT_AMT <![CDATA[<=]]> G.CURR_PRICE /*최소주문금액*/
|
|
|
+ )
|
|
|
+ SELECT G.GOODS_CD
|
|
|
+ , '10' AS BENEFIT_GB /*쿠폰할인*/
|
|
|
+ FROM (
|
|
|
+ SELECT CP.CPN_ID
|
|
|
+ ,G.GOODS_CD
|
|
|
+ FROM CTE_DETAIL CP
|
|
|
+ INNER JOIN TB_GOODS G ON CP.GOODS_CD = G.GOODS_CD
|
|
|
+ WHERE NOT EXISTS (
|
|
|
+ SELECT 1
|
|
|
+ FROM TB_COUPON_REFVAL SCPR
|
|
|
+ WHERE SCPR.CPN_ID = CP.CPN_ID
|
|
|
+ AND SCPR.REF_VAL = G.GOODS_CD
|
|
|
+ AND SCPR.DEL_YN = 'N' /*삭제안된넘*/
|
|
|
+ AND SCPR.CPN_TARGET = '40' /* 제외상품*/
|
|
|
+ )
|
|
|
+ AND NOT EXISTS (
|
|
|
+ SELECT 1
|
|
|
+ FROM TB_COUPON_BAN_GOODS
|
|
|
+ WHERE GOODS_CD = G.GOODS_CD
|
|
|
+ AND DEL_YN = 'N'
|
|
|
+ )
|
|
|
+
|
|
|
+ ) G
|
|
|
+ GROUP BY G.GOODS_CD
|
|
|
+ HAVING COUNT(*) > 0
|
|
|
+ </insert>
|
|
|
+
|
|
|
<!-- 상품혜택임시-쿠폰할인 생성 -->
|
|
|
- <insert id="createTemporaryGoodsBenefitCouponDiscount" timeout="600">
|
|
|
- /* TsbGoods.createTemporaryGoodsBenefitCouponDiscount */
|
|
|
+ <insert id="createTemporaryGoodsBenefitCouponDiscount_org" timeout="600">
|
|
|
+ /* TsbGoods.createTemporaryGoodsBenefitCouponDiscount_org */
|
|
|
INSERT INTO TB_GOODS_BENEFIT_TMP (
|
|
|
GOODS_CD
|
|
|
, BENEFIT_GB
|
|
|
@@ -2633,6 +2835,7 @@
|
|
|
AND NOW() <![CDATA[<=]]> IF(CP.PD_GB = 'D',DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 1 DAY),'%Y-%m-%d %H:%i:%S'),CP.AVAIL_EDDT)
|
|
|
AND NOW() BETWEEN CP.DOWN_STDT AND CP.DOWN_EDDT
|
|
|
AND CP.CPN_TYPE IN ('G230_11','G230_20','G230_30') /*상품쿠폰,주문서쿠폰,배송비쿠폰*/
|
|
|
+ AND CP.DC_CD_GB = 'G233_00' -- 일반유형(할인쿠폰구분)
|
|
|
AND (SELECT COUNT(1)
|
|
|
FROM TB_COUPON_CUST_GBN
|
|
|
WHERE CPN_ID = CP.CPN_ID
|