Kaynağa Gözat

Merge remote-tracking branch 'origin/develop' into xodud1202

xodud1202 5 yıl önce
ebeveyn
işleme
ece07dae09

+ 3 - 3
src/main/java/com/style24/batch/biz/service/TsbGoodsService.java

@@ -180,9 +180,9 @@ public class TsbGoodsService {
 //		coupon.setUsableCustGb("G100_10"); // 일반
 //		goodsDao.updateGoodsBenefitPriceTemp(coupon);
 
-		// TB_GOODS_BENEFIT_PRICE_TEMP 생성 - 상품쿠폰 임직원
-		coupon.setUsableCustGb("G100_20"); // 임직원
-		goodsDao.updateGoodsBenefitPriceTemp(coupon);
+//		// TB_GOODS_BENEFIT_PRICE_TEMP 생성 - 상품쿠폰 임직원
+//		coupon.setUsableCustGb("G100_20"); // 임직원
+//		goodsDao.updateGoodsBenefitPriceTemp(coupon);
 
 		// TB_GOODS_BENEFIT_PRICE 삭제
 		goodsDao.deleteGoodsBenefitPrice();

+ 26 - 70
src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml

@@ -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>
 	
 	<!-- 상품혜택가  테이블 삭제 -->