|
|
@@ -505,43 +505,43 @@
|
|
|
SELECT GOODS_CD
|
|
|
, 'G100_00' AS CUST_GB
|
|
|
, CURR_PRICE
|
|
|
- , MIN(CURR_PRICE -
|
|
|
+ , MIN(
|
|
|
( CASE WHEN DC_WAY = 'G240_10' THEN
|
|
|
- (CASE WHEN IFNULL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_PVAL THEN MAX_DC_AMT ELSE DC_PVAL END)
|
|
|
+ GREATEST(CURR_PRICE - DC_PVAL ,0)
|
|
|
ELSE
|
|
|
- (CASE WHEN IFNULL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> FLOOR((CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit} THEN MAX_DC_AMT ELSE FLOOR((CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit} END)
|
|
|
+ CURR_PRICE - (FLOOR((CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit})
|
|
|
END) )AS PC_CURR_PRICE
|
|
|
- , MIN(CURR_PRICE -
|
|
|
+ , MIN(
|
|
|
( CASE WHEN DC_WAY = 'G240_10' THEN
|
|
|
- (CASE WHEN IFNULL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_MVAL THEN MAX_DC_AMT ELSE DC_MVAL END)
|
|
|
+ GREATEST(CURR_PRICE - DC_MVAL ,0)
|
|
|
ELSE
|
|
|
- (CASE WHEN IFNULL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> FLOOR((CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit} THEN MAX_DC_AMT ELSE FLOOR((CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit} END)
|
|
|
- END) )AS MO_CURR_PRICE
|
|
|
- , MIN(CURR_PRICE -
|
|
|
+ CURR_PRICE - (FLOOR((CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit})
|
|
|
+ END) )AS MO_CURR_PRICE
|
|
|
+ , MIN(
|
|
|
( CASE WHEN DC_WAY = 'G240_10' THEN
|
|
|
- (CASE WHEN IFNULL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_MVAL THEN MAX_DC_AMT ELSE DC_AVAL END)
|
|
|
+ GREATEST(CURR_PRICE - DC_AVAL ,0)
|
|
|
ELSE
|
|
|
- (CASE WHEN IFNULL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> FLOOR((CURR_PRICE * DC_AVAL / 100) / #{pointUnit}) * #{pointUnit} THEN MAX_DC_AMT ELSE FLOOR((CURR_PRICE * DC_AVAL / 100) / #{pointUnit}) * #{pointUnit} END)
|
|
|
- END) )AS APP_CURR_PRICE
|
|
|
+ CURR_PRICE - (FLOOR((CURR_PRICE * DC_AVAL / 100) / #{pointUnit}) * #{pointUnit})
|
|
|
+ END) )AS MO_CURR_PRICE
|
|
|
, STAFF_CURR_PRICE
|
|
|
- , MIN(STAFF_CURR_PRICE -
|
|
|
+ , MIN(
|
|
|
( CASE WHEN DC_WAY = 'G240_10' THEN
|
|
|
- (CASE WHEN IFNULL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_PVAL THEN MAX_DC_AMT ELSE DC_PVAL END)
|
|
|
+ GREATEST(STAFF_CURR_PRICE - DC_PVAL ,0)
|
|
|
ELSE
|
|
|
- (CASE WHEN IFNULL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> FLOOR((STAFF_CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit} THEN MAX_DC_AMT ELSE FLOOR((STAFF_CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit} END)
|
|
|
+ CURR_PRICE - (FLOOR((STAFF_CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit})
|
|
|
END) )AS STAFF_PC_CURR_PRICE
|
|
|
- , MIN(STAFF_CURR_PRICE -
|
|
|
+ , MIN(
|
|
|
( CASE WHEN DC_WAY = 'G240_10' THEN
|
|
|
- (CASE WHEN IFNULL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_MVAL THEN MAX_DC_AMT ELSE DC_MVAL END)
|
|
|
+ GREATEST(STAFF_CURR_PRICE - DC_MVAL ,0)
|
|
|
ELSE
|
|
|
- (CASE WHEN IFNULL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> FLOOR((STAFF_CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit} THEN MAX_DC_AMT ELSE FLOOR((STAFF_CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit} END)
|
|
|
- END) )AS STAFF_MO_CURR_PRICE
|
|
|
- , MIN(STAFF_CURR_PRICE -
|
|
|
+ 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
|
|
|
- (CASE WHEN IFNULL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_MVAL THEN MAX_DC_AMT ELSE DC_AVAL END)
|
|
|
+ GREATEST(STAFF_CURR_PRICE - DC_AVAL ,0)
|
|
|
ELSE
|
|
|
- (CASE WHEN IFNULL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> FLOOR((STAFF_CURR_PRICE * DC_AVAL / 100) / #{pointUnit}) * #{pointUnit} THEN MAX_DC_AMT ELSE FLOOR((STAFF_CURR_PRICE * DC_AVAL / 100) / #{pointUnit}) * #{pointUnit} END)
|
|
|
- END) )AS STAFF_APP_CURR_PRICE
|
|
|
+ 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
|
|
|
@@ -549,13 +549,8 @@
|
|
|
, CP.DC_PVAL /*PC 할인값*/
|
|
|
, CP.DC_MVAL /*MO 할인값*/
|
|
|
, CP.DC_AVAL /*APP 할인값*/
|
|
|
- , CP.MAX_DC_AMT /*최대할인금액*/
|
|
|
, CP.CURR_PRICE /*전체 판매가*/
|
|
|
- , CP.CURR_PRICE_YN
|
|
|
, CP.STAFF_CURR_PRICE /*임직원판매가*/
|
|
|
- , CP.STAFF_CURR_PRICE_YN
|
|
|
- , CP.AVAIL_EDDT
|
|
|
- -- , CP.USABLE_CUST_GB AS CUST_GB
|
|
|
, CP.GOODS_CD
|
|
|
FROM (
|
|
|
SELECT CP.CPN_ID /*쿠폰ID*/
|
|
|
@@ -564,43 +559,16 @@
|
|
|
, CP.DC_PVAL /*PC할인값*/
|
|
|
, CP.DC_MVAL /*모바일할인값*/
|
|
|
, CP.DC_AVAL /*APP할인값*/
|
|
|
- , CP.MAX_DC_AMT /*최대할인금액*/
|
|
|
, G.CURR_PRICE /*현재판매가*/
|
|
|
- , CASE WHEN BUY_LIMIT_AMT <![CDATA[<=]]> G.CURR_PRICE THEN 'Y'
|
|
|
- ELSE 'N'
|
|
|
- END AS CURR_PRICE_YN
|
|
|
- , G.CURR_PRICE AS STAFF_CURR_PRICE /*임직원판매가*/
|
|
|
- , CASE WHEN BUY_LIMIT_AMT <![CDATA[<=]]> G.CURR_PRICE THEN 'Y'
|
|
|
- ELSE 'N'
|
|
|
- END AS STAFF_CURR_PRICE_YN
|
|
|
- , IF (CP.PD_GB = 'D', DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S'), CP.AVAIL_EDDT) AS AVAIL_EDDT
|
|
|
- -- , CP.USABLE_CUST_GB /*쿠폰사용이 가능한 고객(G100_00:전체, G100_10:일반회원, G100_20:임직원)*/
|
|
|
+ , 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' -- 쿠폰인 진행중인 쿠폰만
|
|
|
- <![CDATA[
|
|
|
- AND NOW() <= IF (CP.PD_GB = 'D', CONCAT(CURRENT_DATE + INTERVAL Cp.AVAIL_DAYS DAY, ' 23:59:59'), CP.AVAIL_EDDT)
|
|
|
- ]]>
|
|
|
- AND NOW() BETWEEN CP.DOWN_STDT AND CP.DOWN_EDDT
|
|
|
+ AND NOW() BETWEEN CP.AVAIL_STDT AND CP.AVAIL_EDDT
|
|
|
AND CP.CPN_TYPE = 'G230_10' /*즉시할인쿠폰*/
|
|
|
AND CP.DC_CD_GB = 'G233_00' -- 일반유형(할인쿠폰구분)
|
|
|
- AND (CASE WHEN 'P' = #{frontGb} THEN CP.DC_PVAL
|
|
|
- WHEN 'M' = #{frontGb} THEN CP.DC_MVAL
|
|
|
- ELSE CP.DC_AVAL END) > 0 -- PC, MOBILE,APP 별로 0 보다 큰 쿠폰
|
|
|
- AND (SELECT COUNT(1)
|
|
|
- FROM TB_COUPON_CUST_GBN
|
|
|
- WHERE CPN_ID = CP.CPN_ID
|
|
|
- AND USABLE_CUST_GB IN (#{usableCustGb}) /*사용가능고객구분 일반회원*/
|
|
|
- ) >= 1
|
|
|
- AND (SELECT COUNT(1)
|
|
|
- FROM TB_COUPON_CUST_GRADE
|
|
|
- WHERE CPN_ID = CP.CPN_ID
|
|
|
- AND USABLE_CUST_GRADE IN ('G110_10', 'G110_20', 'G110_30', 'G110_40', 'G110_50' ) /*전체고객*/
|
|
|
- ) = 5
|
|
|
- AND CP.BUY_LIMIT_AMT <![CDATA[<=]]> G.CURR_PRICE /*최소주문금액*/
|
|
|
- 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) /*총발행제한수*/
|
|
|
AND (
|
|
|
(CP.APPLY_SCOPE = 'A' )
|
|
|
OR /* 적용대상:상품*/
|
|
|
@@ -706,9 +674,9 @@
|
|
|
</sql>
|
|
|
|
|
|
<!-- 상품혜택가 temp 테이블 삭제 -->
|
|
|
- <delete id="deleteGoodsBenefitPriceTemp">
|
|
|
+ <delete id="deleteGoodsBenefitPriceTemp" timeout="600">
|
|
|
/* TsbGoods.deleteGoodsBenefitPriceTemp */
|
|
|
- TRUNCATE TABLE TB_GOODS_BENEFIT_PRICE_TMP
|
|
|
+ DELETE FROM TB_GOODS_BENEFIT_PRICE_TMP
|
|
|
</delete>
|
|
|
|
|
|
|
|
|
@@ -757,24 +725,12 @@
|
|
|
REG_DT = NOW()
|
|
|
, CURR_PRICE = B.CURR_PRICE
|
|
|
, STAFF_CURR_PRICE = B.STAFF_CURR_PRICE
|
|
|
- <if test="usableCustGb != null and usableCustGb == 'G100_00'">
|
|
|
, PC_CURR_PRICE = B.PC_CURR_PRICE
|
|
|
, MO_CURR_PRICE = B.MO_CURR_PRICE
|
|
|
, APP_CURR_PRICE = B.APP_CURR_PRICE
|
|
|
, STAFF_PC_CURR_PRICE = B.STAFF_PC_CURR_PRICE
|
|
|
, STAFF_MO_CURR_PRICE = B.STAFF_MO_CURR_PRICE
|
|
|
, STAFF_APP_CURR_PRICE = B.STAFF_APP_CURR_PRICE
|
|
|
- </if>
|
|
|
- <if test="usableCustGb != null and usableCustGb == 'G100_10'">
|
|
|
- , PC_CURR_PRICE = IF (TB_GOODS_BENEFIT_PRICE_TMP.PC_CURR_PRICE >= B.PC_CURR_PRICE, B.PC_CURR_PRICE, TB_GOODS_BENEFIT_PRICE_TMP.PC_CURR_PRICE)
|
|
|
- , MO_CURR_PRICE = IF (TB_GOODS_BENEFIT_PRICE_TMP.MO_CURR_PRICE >= B.MO_CURR_PRICE, B.MO_CURR_PRICE, TB_GOODS_BENEFIT_PRICE_TMP.MO_CURR_PRICE)
|
|
|
- , APP_CURR_PRICE = IF (TB_GOODS_BENEFIT_PRICE_TMP.APP_CURR_PRICE >= B.APP_CURR_PRICE, B.APP_CURR_PRICE, TB_GOODS_BENEFIT_PRICE_TMP.APP_CURR_PRICE)
|
|
|
- </if>
|
|
|
- <if test="usableCustGb != null and usableCustGb == 'G100_20'">
|
|
|
- , STAFF_PC_CURR_PRICE = IF (TB_GOODS_BENEFIT_PRICE_TMP.STAFF_PC_CURR_PRICE >= B.STAFF_PC_CURR_PRICE, B.STAFF_PC_CURR_PRICE, TB_GOODS_BENEFIT_PRICE_TMP.STAFF_PC_CURR_PRICE)
|
|
|
- , STAFF_MO_CURR_PRICE = IF (TB_GOODS_BENEFIT_PRICE_TMP.STAFF_MO_CURR_PRICE >= B.STAFF_MO_CURR_PRICE, B.STAFF_MO_CURR_PRICE, TB_GOODS_BENEFIT_PRICE_TMP.STAFF_MO_CURR_PRICE)
|
|
|
- , STAFF_APP_CURR_PRICE = IF (TB_GOODS_BENEFIT_PRICE_TMP.STAFF_APP_CURR_PRICE >= B.STAFF_APP_CURR_PRICE, B.STAFF_APP_CURR_PRICE, TB_GOODS_BENEFIT_PRICE_TMP.STAFF_APP_CURR_PRICE)
|
|
|
- </if>
|
|
|
</update>
|
|
|
|
|
|
<!-- 상품혜택가 테이블 삭제 -->
|