|
|
@@ -489,6 +489,7 @@
|
|
|
<sql id="getGoodsBenefitList_sql">
|
|
|
WITH CTE AS (
|
|
|
SELECT CPN_REFVAL_SQ
|
|
|
+ , CP.CPN_ID
|
|
|
FROM TB_COUPON CP
|
|
|
INNER JOIN TB_COUPON_REFVAL CPR
|
|
|
ON CP.CPN_ID = CPR.CPN_ID
|
|
|
@@ -576,18 +577,19 @@
|
|
|
, G1.GOODS_CD
|
|
|
FROM CTE CP
|
|
|
INNER JOIN TB_COUPON_REFVAL CPR1
|
|
|
- ON CP.CPN_REFVAL_SQ = CPR1.CPN_REFVAL_SQ
|
|
|
+ ON CP.CPN_ID = CPR1.CPN_ID
|
|
|
INNER JOIN TB_GOODS G1
|
|
|
ON CPR1.REF_VAL = G1.BRAND_CD
|
|
|
AND CPR1.CPN_TARGET = 'G260_12'
|
|
|
INNER JOIN TB_COUPON_REFVAL CPR2
|
|
|
- ON CP.CPN_REFVAL_SQ = CPR2.CPN_REFVAL_SQ
|
|
|
+ ON CP.CPN_ID = CPR2.CPN_ID
|
|
|
INNER JOIN TB_GOODS G2
|
|
|
ON CPR2.REF_VAL = G2.SUPPLY_COMP_CD
|
|
|
AND CPR2.CPN_TARGET = 'G260_13'
|
|
|
WHERE 1=1
|
|
|
AND IFNULL(CPR1.REF_FORMAL_GB, G1.FORMAL_GB) = G1.FORMAL_GB
|
|
|
AND CPR1.CPN_ID = CPR2.CPN_ID
|
|
|
+ AND G1.GOODS_CD = G2.GOODS_CD
|
|
|
)
|
|
|
SELECT GOODS_CD
|
|
|
, 'G100_00' AS CUST_GB
|
|
|
@@ -663,184 +665,12 @@
|
|
|
, CUST_GB
|
|
|
</sql>
|
|
|
|
|
|
- <!-- 상품 혜택가 목록 -->
|
|
|
- <sql id="getGoodsBenefitList_sql_org">
|
|
|
- SELECT GOODS_CD
|
|
|
- , 'G100_00' AS CUST_GB
|
|
|
- , CURR_PRICE
|
|
|
- , MIN(
|
|
|
- ( CASE WHEN DC_WAY = 'G240_10' THEN
|
|
|
- GREATEST(CURR_PRICE - DC_PVAL ,0)
|
|
|
- ELSE
|
|
|
- CURR_PRICE - (FLOOR((CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit})
|
|
|
- END) )AS PC_CURR_PRICE
|
|
|
- , MIN(
|
|
|
- ( CASE WHEN DC_WAY = 'G240_10' THEN
|
|
|
- GREATEST(CURR_PRICE - DC_MVAL ,0)
|
|
|
- ELSE
|
|
|
- CURR_PRICE - (FLOOR((CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit})
|
|
|
- END) )AS MO_CURR_PRICE
|
|
|
- , MIN(
|
|
|
- ( CASE WHEN DC_WAY = 'G240_10' THEN
|
|
|
- GREATEST(CURR_PRICE - DC_AVAL ,0)
|
|
|
- ELSE
|
|
|
- CURR_PRICE - (FLOOR((CURR_PRICE * DC_AVAL / 100) / #{pointUnit}) * #{pointUnit})
|
|
|
- END) )AS MO_CURR_PRICE
|
|
|
- , STAFF_CURR_PRICE
|
|
|
- , MIN(
|
|
|
- ( CASE WHEN DC_WAY = 'G240_10' THEN
|
|
|
- GREATEST(STAFF_CURR_PRICE - DC_PVAL ,0)
|
|
|
- ELSE
|
|
|
- CURR_PRICE - (FLOOR((STAFF_CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit})
|
|
|
- END) )AS STAFF_PC_CURR_PRICE
|
|
|
- , MIN(
|
|
|
- ( CASE WHEN DC_WAY = 'G240_10' THEN
|
|
|
- GREATEST(STAFF_CURR_PRICE - DC_MVAL ,0)
|
|
|
- ELSE
|
|
|
- CURR_PRICE - (FLOOR((STAFF_CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit})
|
|
|
- END) )AS STAFF_MO_CURR_PRICE
|
|
|
- , MIN(
|
|
|
- ( CASE WHEN DC_WAY = 'G240_10' THEN
|
|
|
- GREATEST(STAFF_CURR_PRICE - DC_AVAL ,0)
|
|
|
- ELSE
|
|
|
- CURR_PRICE - (FLOOR((STAFF_CURR_PRICE * DC_AVAL / 100) / #{pointUnit}) * #{pointUnit})
|
|
|
- END) )AS STAFF_APP_CURR_PRICE
|
|
|
- FROM (
|
|
|
- SELECT CP.CPN_ID
|
|
|
- , CP.CPN_NM
|
|
|
- , CP.DC_WAY /*할인방식*/
|
|
|
- , CP.DC_PVAL /*PC 할인값*/
|
|
|
- , CP.DC_MVAL /*MO 할인값*/
|
|
|
- , CP.DC_AVAL /*APP 할인값*/
|
|
|
- , CP.CURR_PRICE /*전체 판매가*/
|
|
|
- , CP.STAFF_CURR_PRICE /*임직원판매가*/
|
|
|
- , CP.GOODS_CD
|
|
|
- FROM (
|
|
|
- SELECT CP.CPN_ID /*쿠폰ID*/
|
|
|
- , CP.CPN_NM /*쿠폰명*/
|
|
|
- , CP.DC_WAY /*할인방식*/
|
|
|
- , CP.DC_PVAL /*PC할인값*/
|
|
|
- , CP.DC_MVAL /*모바일할인값*/
|
|
|
- , CP.DC_AVAL /*APP할인값*/
|
|
|
- , G.CURR_PRICE /*현재판매가*/
|
|
|
- , G.CURR_PRICE AS STAFF_CURR_PRICE /*현재판매가*/
|
|
|
- , G.GOODS_CD
|
|
|
- FROM TB_GOODS G
|
|
|
- , TB_COUPON CP
|
|
|
- WHERE CP.SITE_CD = 'G000_10'
|
|
|
- AND CP.CPN_STAT = 'G232_11' -- 쿠폰인 진행중인 쿠폰만
|
|
|
- AND NOW() BETWEEN CP.AVAIL_STDT AND CP.AVAIL_EDDT
|
|
|
- AND CP.CPN_TYPE = 'G230_10' /*즉시할인쿠폰*/
|
|
|
- AND CP.DC_CD_GB = 'G233_00' -- 일반유형(할인쿠폰구분)
|
|
|
- AND (
|
|
|
- (CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
|
|
|
- WHERE CPN_ID = CP.CPN_ID
|
|
|
- AND CPN_TARGET = 'G260_10'
|
|
|
- AND DEL_YN = 'N'
|
|
|
- AND REF_VAL = G.GOODS_CD
|
|
|
- ) > 0
|
|
|
- )
|
|
|
- OR /* 적용대상:카테고리*/
|
|
|
- (CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
|
|
|
- WHERE CPN_ID = CP.CPN_ID
|
|
|
- AND CPN_TARGET = 'G260_11'
|
|
|
- AND DEL_YN = 'N'
|
|
|
- AND IFNULL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
|
|
|
- AND IFNULL(REF_BRAND_CD,G.BRAND_CD) = G.BRAND_CD
|
|
|
- AND REF_VAL IN (SELECT DISTINCT X.CATE_NO
|
|
|
- FROM
|
|
|
- (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,
|
|
|
- (
|
|
|
- SELECT A.CATE_NO, A.GOODS_CD
|
|
|
- FROM TB_CATE_GOODS A
|
|
|
- WHERE GOODS_CD = G.GOODS_CD
|
|
|
- ) Y
|
|
|
- WHERE X.LEAF_CATE_NO = Y.CATE_NO
|
|
|
- )
|
|
|
- ) >0
|
|
|
- )
|
|
|
- OR /* 적용대상:브랜드*/
|
|
|
- (CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
|
|
|
- WHERE CPN_ID = CP.CPN_ID
|
|
|
- AND CPN_TARGET = 'G260_12'
|
|
|
- AND DEL_YN = 'N'
|
|
|
- AND REF_VAL = G.BRAND_CD
|
|
|
- AND IFNULL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
|
|
|
- ) >0
|
|
|
- )
|
|
|
- OR /* 적용대상:공급업체*/
|
|
|
- (CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
|
|
|
- WHERE CPN_ID = CP.CPN_ID
|
|
|
- AND CPN_TARGET = 'G260_13'
|
|
|
- AND DEL_YN = 'N'
|
|
|
- AND REF_VAL = G.SUPPLY_COMP_CD
|
|
|
- /*AND IFNULL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB*/
|
|
|
- ) >0
|
|
|
- )
|
|
|
- )
|
|
|
- AND 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 = 'G260_14' /* 제외상품*/
|
|
|
- )
|
|
|
- AND NOT EXISTS (
|
|
|
- SELECT 1
|
|
|
- FROM TB_COUPON_BAN_GOODS
|
|
|
- WHERE GOODS_CD = G.GOODS_CD
|
|
|
- AND DEL_YN = 'N'
|
|
|
- )
|
|
|
- ) CP
|
|
|
- ) Y
|
|
|
- GROUP BY GOODS_CD ,CURR_PRICE, STAFF_CURR_PRICE, CUST_GB
|
|
|
- </sql>
|
|
|
-
|
|
|
<!-- 상품혜택가 temp 테이블 삭제 -->
|
|
|
<delete id="deleteGoodsBenefitPriceTemp" timeout="600">
|
|
|
/* TsbGoods.deleteGoodsBenefitPriceTemp */
|
|
|
DELETE FROM TB_GOODS_BENEFIT_PRICE_TMP
|
|
|
</delete>
|
|
|
|
|
|
-
|
|
|
<!-- 상품혜택가 temp 적용 등록 -->
|
|
|
<insert id="crteateGoodsBenefitPriceTemp" parameterType="Coupon" timeout="600">
|
|
|
/* TsbGoods.crteateGoodsBenefitPriceTemp */
|
|
|
@@ -2688,7 +2518,9 @@
|
|
|
, BENEFIT_GB
|
|
|
)
|
|
|
WITH CTE AS (
|
|
|
- SELECT CP.CPN_ID , CP.BUY_LIMIT_AMT, CPR.CPN_REFVAL_SQ
|
|
|
+ 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' /*전시사이트*/
|
|
|
@@ -2777,13 +2609,13 @@
|
|
|
, G1.GOODS_CD
|
|
|
FROM CTE CP
|
|
|
INNER JOIN TB_COUPON_REFVAL CPR1
|
|
|
- ON CP.CPN_REFVAL_SQ = CPR1.CPN_REFVAL_SQ
|
|
|
+ ON CP.CPN_ID = CPR1.CPN_ID
|
|
|
INNER JOIN TB_GOODS G1
|
|
|
ON CPR1.REF_VAL = G1.BRAND_CD
|
|
|
AND CPR1.CPN_TARGET = 'G260_12'
|
|
|
AND CP.BUY_LIMIT_AMT <![CDATA[<=]]> G1.CURR_PRICE /*최소주문금액*/
|
|
|
INNER JOIN TB_COUPON_REFVAL CPR2
|
|
|
- ON CP.CPN_REFVAL_SQ = CPR2.CPN_REFVAL_SQ
|
|
|
+ ON CP.CPN_ID = CPR2.CPN_ID
|
|
|
INNER JOIN TB_GOODS G2
|
|
|
ON CPR2.REF_VAL = G2.SUPPLY_COMP_CD
|
|
|
AND CPR2.CPN_TARGET = 'G260_13'
|
|
|
@@ -2791,6 +2623,7 @@
|
|
|
WHERE 1=1
|
|
|
AND IFNULL(CPR1.REF_FORMAL_GB, G1.FORMAL_GB) = G1.FORMAL_GB
|
|
|
AND CPR1.CPN_ID = CPR2.CPN_ID
|
|
|
+ AND G1.GOODS_CD = G2.GOODS_CD
|
|
|
)
|
|
|
SELECT G.GOODS_CD
|
|
|
, '10' AS BENEFIT_GB /*쿠폰할인*/
|