Parcourir la source

Merge branch 'eskim' into develop

eskim il y a 5 ans
Parent
commit
3de6f92c46

+ 47 - 0
style24.batch/src/main/java/com/style24/batch/biz/dao/TsbGoodsDao.java

@@ -3,6 +3,7 @@ package com.style24.batch.biz.dao;
 import java.util.Collection;
 import java.util.Collection;
 
 
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.Coupon;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.Goods;
 
 
 /**
 /**
@@ -94,4 +95,50 @@ public interface TsbGoodsDao {
 	 * @since 2020. 11. 27
 	 * @since 2020. 11. 27
 	 */
 	 */
 	void updateGoodsSnm(Goods goods);
 	void updateGoodsSnm(Goods goods);
+
+	/**
+	 * 상품즉시할인가 temp 테이블 삭제
+	 *
+	 * @param
+	 * @author eskim
+	 * @since 2020. 12. 02
+	 */
+	void deleteGoodsBenefitPriceTemp();
+
+	/**
+	 * 상품즉시할인가 temp 적용 변경
+	 *
+	 * @param
+	 * @author eskim
+	 * @since 2020. 12. 02
+	 */
+	void crteateGoodsBenefitPriceTemp(Coupon coupon);
+
+	/**
+	 * 상품즉시할인가 temp 적용 변경
+	 *
+	 * @param
+	 * @author eskim
+	 * @since 2020. 12. 02
+	 */
+	void updateGoodsBenefitPriceTemp(Coupon coupon);
+
+	/**
+	 * 상품즉시할인가 테이블 삭제
+	 *
+	 * @param
+	 * @author eskim
+	 * @since 2020. 12. 02
+	 */
+	void deleteGoodsBenefitPrice();
+
+	/**
+	 * 상품즉시할인가 생성
+	 *
+	 * @param
+	 * @author eskim
+	 * @since 2020. 12. 02
+	 */
+	void createGoodsBenefitPrice();
+
 }
 }

+ 52 - 0
style24.batch/src/main/java/com/style24/batch/biz/job/goods/TsbGoodsBenefitPriceJob.java

@@ -0,0 +1,52 @@
+package com.style24.batch.biz.job.goods;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.style24.batch.biz.job.TsbAbstractJob;
+import com.style24.batch.biz.service.TsbGoodsService;
+import com.style24.persistence.domain.Goods;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 상품 즉시할인가 생성
+ *
+ * @author eskim
+ * @since 2020. 12. 02
+ */
+@Component
+@Slf4j
+public class TsbGoodsBenefitPriceJob extends TsbAbstractJob<Goods, Goods, Goods> {
+
+	@Autowired
+	private TsbGoodsService goodsService;
+
+	private int succCnt = 0;
+	private int failCnt = 0;
+
+	@Override
+	public Goods read() throws Exception {
+
+		Goods goods = new Goods();
+		return goods;
+	}
+
+	@Override
+	public Goods process(Goods goods) throws Exception {
+		return goods;
+	}
+
+	@Override
+	public Goods write(Goods goods) throws Exception {
+
+		goodsService.createGoodsBenefitPrice();
+		return goods;
+	}
+
+	@Override
+	public void notify(Goods goods) throws Exception {
+		super.printResult(succCnt, failCnt);
+	}
+
+}

+ 0 - 1
style24.batch/src/main/java/com/style24/batch/biz/job/goods/TsbGoodsTnmJob.java

@@ -33,7 +33,6 @@ public class TsbGoodsTnmJob extends TsbAbstractJob<Goods, Goods, Goods> {
 	@Override
 	@Override
 	public Goods read() throws Exception {
 	public Goods read() throws Exception {
 
 
-		log.info(safetyKoreaApi.getKoreaCertifyNo("MNW1BQKP20"));
 		Goods goods = new Goods();
 		Goods goods = new Goods();
 		return goods;
 		return goods;
 	}
 	}

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

@@ -1,5 +1,6 @@
 package com.style24.batch.biz.service;
 package com.style24.batch.biz.service;
 
 
+import java.io.IOException;
 import java.util.Collection;
 import java.util.Collection;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -8,6 +9,8 @@ import org.springframework.transaction.annotation.Transactional;
 
 
 import com.style24.batch.biz.dao.TsbGoodsDao;
 import com.style24.batch.biz.dao.TsbGoodsDao;
 import com.style24.batch.support.env.TsbConstants;
 import com.style24.batch.support.env.TsbConstants;
+import com.style24.core.biz.service.TscEnvsetService;
+import com.style24.persistence.domain.Coupon;
 import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.Goods;
 
 
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -25,6 +28,9 @@ public class TsbGoodsService {
 	@Autowired
 	@Autowired
 	private TsbGoodsDao goodsDao;
 	private TsbGoodsDao goodsDao;
 
 
+	@Autowired
+	private TscEnvsetService envsetService;
+
 	/**
 	/**
 	 * 상품 타이틀예약 작업
 	 * 상품 타이틀예약 작업
 	 *
 	 *
@@ -118,4 +124,45 @@ public class TsbGoodsService {
 			}
 			}
 		}
 		}
 	}
 	}
+
+	/**
+	 * 상품 즉시할인가 생성
+	 *
+	 * @param
+	 * @return
+	 * @author eskim
+	 * @throws IOException
+	 * @since 2020. 12. 02
+	 */
+	@Transactional("shopTxnManager")
+	public void createGoodsBenefitPrice() throws IOException {
+
+		// TB_GOODS_BENEFIT_PRICE_TEMP 삭제
+		goodsDao.deleteGoodsBenefitPriceTemp();
+
+		Coupon coupon = new Coupon();
+		int floorUnit = 100; //envsetService.getPointUnit(TsbConstants.SiteCd.STYLE24.value());  // 나중에 수정해주세용!!!!!!!!!!!!!!!!!!!!
+		coupon.setPointUnit(floorUnit);
+		/*
+		 * 쿠폰적용순선 전체->일반->임직원
+		 */
+		coupon.setUsableCustGb("G100_00"); // 전체
+		// TB_GOODS_BENEFIT_PRICE_TEMP 생성 - 상품쿠폰 전체
+		goodsDao.crteateGoodsBenefitPriceTemp(coupon);
+
+		// TB_GOODS_BENEFIT_PRICE_TEMP 생성 - 상품쿠폰 일반
+		coupon.setUsableCustGb("G100_10"); // 일반
+		goodsDao.updateGoodsBenefitPriceTemp(coupon);
+
+		// TB_GOODS_BENEFIT_PRICE_TEMP 생성 - 상품쿠폰 임직원
+		coupon.setUsableCustGb("G100_20"); // 임직원
+		goodsDao.updateGoodsBenefitPriceTemp(coupon);
+
+		// TB_GOODS_BENEFIT_PRICE 삭제
+		goodsDao.deleteGoodsBenefitPrice();
+
+		// TB_GOODS_BENEFIT_PRICE_TEMP => TB_GOODS_BENEFIT_PRICE
+		goodsDao.createGoodsBenefitPrice();
+
+	}
 }
 }

+ 23 - 6
style24.batch/src/main/java/com/style24/batch/biz/task/TsbGoodsTask.java

@@ -5,6 +5,7 @@ import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
+import com.style24.batch.biz.job.goods.TsbGoodsBenefitPriceJob;
 import com.style24.batch.biz.job.goods.TsbGoodsPriceJob;
 import com.style24.batch.biz.job.goods.TsbGoodsPriceJob;
 import com.style24.batch.biz.job.goods.TsbGoodsSnmJob;
 import com.style24.batch.biz.job.goods.TsbGoodsSnmJob;
 import com.style24.batch.biz.job.goods.TsbGoodsTnmJob;
 import com.style24.batch.biz.job.goods.TsbGoodsTnmJob;
@@ -29,6 +30,9 @@ public class TsbGoodsTask {
 	@Autowired
 	@Autowired
 	private TsbGoodsSnmJob goodsSnmJob;
 	private TsbGoodsSnmJob goodsSnmJob;
 
 
+	@Autowired
+	private TsbGoodsBenefitPriceJob goodsBenefitPriceJob;
+
 	/**
 	/**
 	 * 초 분 시 일 월 주(년)
 	 * 초 분 시 일 월 주(년)
 	 * 0 0 12 * * ?" : 아무 요일, 매월, 매일 12:00:00
 	 * 0 0 12 * * ?" : 아무 요일, 매월, 매일 12:00:00
@@ -56,11 +60,11 @@ public class TsbGoodsTask {
 	 *
 	 *
 	 * @throws Exception
 	 * @throws Exception
 	 */
 	 */
-	@Scheduled(cron = "${cron.goods.goodsTnmJob}")
+	@Scheduled(cron = "${cron.goods.titlename.reserve}")
 	//@Scheduled(fixedDelay = 3500000)
 	//@Scheduled(fixedDelay = 3500000)
 	@Async
 	@Async
 	public void tsbGoodsTnmJob() throws Exception {
 	public void tsbGoodsTnmJob() throws Exception {
-		goodsTnmJob.run("상품 타이틀예약 적용");
+		goodsTnmJob.runById("cron.goods.titlename.reserve");
 	}
 	}
 
 
 	/**
 	/**
@@ -68,11 +72,11 @@ public class TsbGoodsTask {
 	 *
 	 *
 	 * @throws Exception
 	 * @throws Exception
 	 */
 	 */
-	@Scheduled(cron = "${cron.goods.goodsPriceJob}")
+	@Scheduled(cron = "${cron.goods.price.reserve}")
 	//@Scheduled(fixedDelay = 3500000)
 	//@Scheduled(fixedDelay = 3500000)
 	@Async
 	@Async
 	public void tsbGoodsPriceJob() throws Exception {
 	public void tsbGoodsPriceJob() throws Exception {
-		goodsPriceJob.run("상품 가격예약 적용");
+		goodsPriceJob.runById("cron.goods.price.reserve");
 	}
 	}
 
 
 	/**
 	/**
@@ -80,11 +84,24 @@ public class TsbGoodsTask {
 	 *
 	 *
 	 * @throws Exception
 	 * @throws Exception
 	 */
 	 */
-	@Scheduled(cron = "${cron.goods.goodsSnmJob}")
+	@Scheduled(cron = "${cron.goods.search.keyword}")
 	//@Scheduled(fixedDelay = 3500000)
 	//@Scheduled(fixedDelay = 3500000)
 	@Async
 	@Async
 	public void tsbGoodsSnmJob() throws Exception {
 	public void tsbGoodsSnmJob() throws Exception {
-		goodsSnmJob.run("상품 검색어 적용");
+		goodsSnmJob.runById("cron.goods.search.keyword");
 	}
 	}
 
 
+	/**
+	 * 상품 즉시할인가 생성
+	 *
+	 * @throws Exception
+	 * @author eskim
+	 * @since 2020. 12. 02.
+	 */
+	@Scheduled(cron = "${cron.goods.benefit.price}")
+	//@Scheduled(fixedDelay = 3500000)
+	@Async
+	public void tsbGoodsBenefitPriceJob() throws Exception {
+		goodsBenefitPriceJob.runById("cron.goods.benefit.price");
+	}
 }
 }

+ 15 - 0
style24.batch/src/main/java/com/style24/batch/support/env/TsbConstants.java

@@ -31,4 +31,19 @@ public class TsbConstants {
 		}
 		}
 	}
 	}
 
 
+	// 사이트코드
+		public enum SiteCd {
+			STYLE24("G000_10");
+
+			private String value;
+
+			private SiteCd(String value) {
+				this.value = value;
+			}
+
+			public String value() {
+				return value;
+			}
+		}
+
 }
 }

+ 48 - 0
style24.batch/src/main/java/com/style24/persistence/domain/Coupon.java

@@ -0,0 +1,48 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * 쿠폰 Domain
+ *
+ * @author eskim
+ * @since 2020. 12. 02
+ */
+@SuppressWarnings("serial")
+@Data
+public class Coupon extends TscBaseDomain {
+
+	private String cpnId;
+	private String cpnNm;
+	private String siteCd;
+	private String afLinkCd;
+	private String usableCustGb;
+	private String usableCustGrade;
+	private String cpnType;
+	private String applyScope;
+	private String dcWay;
+	private int dcPval;
+	private int dcMval;
+	private int dcAval;
+	private int maxDcAmt;
+	private String pdGb;
+	private String availStdt;
+	private String availEddt;
+	private int availDays;
+	private int custPubLimitQty;
+	private int totPubLimitQty;
+	private int onePubQty;
+	private String dnGb;
+	private String downStdt;
+	private String downEddt;
+	private int buyLimitAmt;
+	private int planSq;
+	private String reissuance;
+	private String cpnStat;
+	private String endAlimYn;
+
+	private int pointUnit;
+
+}

+ 3 - 3
style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbBatch.xml

@@ -4,7 +4,7 @@
 	
 	
 	<!-- 배치명 조회 -->
 	<!-- 배치명 조회 -->
 	<select id="getBatchName" parameterType="String" resultType="String">
 	<select id="getBatchName" parameterType="String" resultType="String">
-		/* TsbBatch.createGoodsHst */
+		/* TsbBatch.getBatchName */
 		SELECT BATCH_NM
 		SELECT BATCH_NM
 		FROM   TB_BATCH
 		FROM   TB_BATCH
 		WHERE  BATCH_ID = #{batchId}
 		WHERE  BATCH_ID = #{batchId}
@@ -14,7 +14,7 @@
 	<!-- 배치로그 생성 -->
 	<!-- 배치로그 생성 -->
 	<insert id="createBatchLog" parameterType="BatchLog" keyProperty="batchLogSq">
 	<insert id="createBatchLog" parameterType="BatchLog" keyProperty="batchLogSq">
 		/* TsbBatch.createBatchLog */
 		/* TsbBatch.createBatchLog */
-		INSERT INTO TB_BATCH (
+		INSERT INTO TB_BATCH_LOG (
 		       BATCH_LOG_SQ
 		       BATCH_LOG_SQ
 		     , BATCH_ID
 		     , BATCH_ID
 		     , BATCH_STDT
 		     , BATCH_STDT
@@ -35,7 +35,7 @@
 	<!-- 배치로그 종료 처리 -->
 	<!-- 배치로그 종료 처리 -->
 	<update id="updateBatchLog" parameterType="Integer">
 	<update id="updateBatchLog" parameterType="Integer">
 		/* TsbBatch.updateBatchLog */
 		/* TsbBatch.updateBatchLog */
-		UPDATE TB_BATCH
+		UPDATE TB_BATCH_LOG
 		SET    BATCH_EDDT = NOW()
 		SET    BATCH_EDDT = NOW()
 		     , BATCH_STAT = 'F'
 		     , BATCH_STAT = 'F'
 		WHERE  BATCH_LOG_SQ = #{batchLogSq}
 		WHERE  BATCH_LOG_SQ = #{batchLogSq}

+ 231 - 0
style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml

@@ -479,4 +479,235 @@
 		WHERE GOODS_CD = #{goodsCd}
 		WHERE GOODS_CD = #{goodsCd}
 	</update>
 	</update>
 		
 		
+	<!-- 상품 혜택가 목록 -->
+	<sql id="getGoodsBenefitList_sql">
+		SELECT GOODS_CD
+		       , CUST_GB
+		       , CURR_PRICE
+		       , MIN(CURR_PRICE - 
+		           ( CASE WHEN DC_WAY = 'G240_10' THEN
+		                 (CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_PVAL THEN MAX_DC_AMT ELSE DC_PVAL END)
+		            ELSE
+		                 (CASE WHEN NVL(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)
+		            END) )AS PC_PRICE
+		       , MIN(CURR_PRICE - 
+		           ( CASE WHEN DC_WAY = 'G240_10' THEN
+		                 (CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_MVAL THEN MAX_DC_AMT ELSE DC_MVAL END)
+		            ELSE
+		                 (CASE WHEN NVL(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_PRICE
+		       , STAFF_CURR_PRICE
+		       , MIN(STAFF_CURR_PRICE - 
+		           ( CASE WHEN DC_WAY = 'V' THEN
+		                 (CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_PVAL THEN MAX_DC_AMT ELSE DC_PVAL END)
+		            ELSE
+		                 (CASE WHEN NVL(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)
+		            END) )AS STAFF_PC_PRICE
+		       , MIN(STAFF_CURR_PRICE - 
+		           ( CASE WHEN DC_WAY = 'G240_10' THEN
+		                 (CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_MVAL THEN MAX_DC_AMT ELSE DC_MVAL END)
+		            ELSE
+		                 (CASE WHEN NVL(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_PRICE
+		FROM   (
+		        SELECT CP.CPN_ID
+		             , CP.CPN_NM
+		             , CP.DC_WAY                                              /*할인방식*/
+		             , CP.DC_PVAL                                             /*PC 할인값*/
+		             , CP.DC_MVAL                                             /*MO 할인값*/
+		             , 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*/
+		                     , CP.CPN_NM    /*쿠폰명*/
+		                     , CP.DC_WAY    /*할인방식*/
+		                     , CP.DC_PVAL   /*PC할인값*/
+		                     , CP.DC_MVAL   /*모바일할인값*/
+		                     , 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.GOODS_CD
+		                FROM   TB_GOODS G
+		                     , TB_COUPON CP
+		                WHERE  CP.SITE_CD = '10'
+		                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.DN_GB = 'G058_10' /* 자동다운로드(결제시)다운로드*/
+		                AND    CP.CPN_TYPE = 'G230_10' /*즉시할인쿠폰*/
+		                AND    CP.USABLE_CUST_GB  = #{usableCustGb}
+		                AND    CP.USABLE_CUST_GRADE  = 'G100_00' /* 사용가능고객등급이 일반만*/
+		                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
+		                        (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 NVL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
+		                                                   AND NVL(REF_BRAND_CD,G.BRAND_CD) = G.BRAND_CD
+		                                                   AND REF_VAL IN (SELECT CATE_CD
+		                                                                   FROM TB_CATEGORY_GOODS
+		                                                                   WHERE GOODS_CD = 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_12' /* 적용대상:브랜드*/
+		                                                   AND DEL_YN = 'N'
+		                                                   AND REF_VAL = G.BRAND_CD
+		                                                   AND NVL(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 NVL(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 = '40' /* 제외상품*/
+		                               )
+		                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">
+		/* TsbGoods.deleteGoodsBenefitPriceTemp */
+		TRUNCATE TABLE TB_GOODS_BENEFIT_PRICE_TEMP
+	</delete>
+	
+	
+	<!-- 상품혜택가 temp 적용 등록 -->
+	<insert id="crteateGoodsBenefitPriceTemp"  parameterType="Coupon"  timeout="600">
+		/* TsbGoods.crteateGoodsBenefitPriceTemp */
+		INSERT INTO TB_GOODS_BENEFIT_PRICE_TEMP (
+		     GOODS_CD
+		   , CUST_GB
+		   , CURR_PRICE
+		   , PC_CURR_PRICE
+		   , MO_CURR_PRICE
+		   , STAFF_CURR_PRICE
+		   , STAFF_PC_CURR_PRICE
+		   , STAFF_MO_CURR_PRICE
+		   )
+		    <include refid="getGoodsBenefitList_sql"/>
+	</insert>
+	
+	<!-- 상품혜택가 temp 적용 변경 -->
+	<update id="updateGoodsBenefitPriceTemp"  parameterType="Coupon"  timeout="600">
+		/* TsbGoods.updateGoodsBenefitPriceTemp */
+		INSERT TB_GOODS_BENEFIT_PRICE_TEMP (
+		         GOODS_CD
+		       , CUST_GB
+		       , CURR_PRICE
+		       , PC_CURR_PRICE
+		       , MO_CURR_PRICE
+		       , STAFF_CURR_PRICE
+		       , STAFF_PC_CURR_PRICE
+		       , STAFF_MO_CURR_PRICE
+		       , REG_DT
+		  )
+		  (
+		       SELECT C.*, NOW() FROM (
+		           SELECT (
+		           <include refid="getGoodsBenefitList_sql"/>
+		           ) C
+		        ) B
+		       
+		  )
+		ON DUPLICATE KEY UPDATE
+		     REG_DT = NOW()
+		   , CURR_PRICE = B.CURR_PRICE
+		   , STAFF_CURR_PRICE = B.STAFF_CURR_PRICE
+		    <if test="custGb != null and custGb == 'G100_00'">
+		   , PC_CURR_PRICE = B.PC_CURR_PRICE
+		   , MO_CURR_PRICE = B.MO_CURR_PRICE
+		   , STAFF_PC_CURR_PRICE = B.STAFF_PC_CURR_PRICE
+		   , STAFF_MO_CURR_PRICE = B.STAFF_MO_CURR_PRICE
+		    </if>
+		    <if test="custGb != null and custGb == 'G100_10'">
+		   , PC_CURR_PRICE = CASE WHEN B.PC_CURR_PRICE <![CDATA[<=]]> PC_CURR_PRICE THEN B.PC_CURR_PRICE
+		                     ELSE PC_CURR_PRICE END
+		   , MO_CURR_PRICE = CASE WHEN B.MO_CURR_PRICE <![CDATA[<=]]> MO_CURR_PRICE THEN B.MO_CURR_PRICE
+		                     ELSE MO_CURR_PRICE END
+		    </if>
+		    <if test="custGb != null and custGb == 'G100_20'">
+		   , STAFF_PC_CURR_PRICE = CASE WHEN B.STAFF_PC_CURR_PRICE <![CDATA[<=]]> STAFF_PC_CURR_PRICE THEN B.STAFF_PC_CURR_PRICE
+		                           ELSE STAFF_PC_CURR_PRICE END
+		   , STAFF_MO_CURR_PRICE = CASE WHEN B.STAFF_MO_CURR_PRICE <![CDATA[<=]]> STAFF_MO_CURR_PRICE THEN B.STAFF_MO_CURR_PRICE
+		                           ELSE STAFF_MO_CURR_PRICE END
+		    </if>
+	</update>
+	
+	<!-- 상품혜택가  테이블 삭제 -->
+	<delete id="deleteGoodsBenefitPrice">
+		/* TsbGoods.deleteGoodsBenefitPrice */
+		DELETE TB_GOODS_BENEFIT_PRICE
+	</delete>
+	
+	<!-- 상품혜택가 생성 -->
+	<insert id="createGoodsBenefitPrice"  timeout="300">
+		/* TsbGoods.createGoodsBenefitPrice */
+		INSERT INTO TB_GOODS_BENEFIT_PRICE
+		    ( GOODS_CD
+		    , CUST_GB
+		    , CURR_PRICE
+		    , PC_CURR_PRICE
+		    , MO_CURR_PRICE
+		    , STAFF_CURR_PRICE
+		    , STAFF_PC_CURR_PRICE
+		    , STAFF_MO_CURR_PRICE
+		    , REG_DT
+		    )
+		SELECT GOODS_CD
+		     , CUST_GB
+		     , CURR_PRICE
+		     , PC_CURR_PRICE
+		     , MO_CURR_PRICE
+		     , STAFF_CURR_PRICE
+		     , STAFF_PC_CURR_PRICE
+		     , STAFF_MO_CURR_PRICE
+		     , NOW()
+		FROM TB_GOODS_BENEFIT_PRICE_TEMP
+	</insert>
+		
 </mapper>
 </mapper>

+ 4 - 3
style24.batch/src/main/resources/config/application-locd.yml

@@ -42,6 +42,7 @@ cron:
         
         
     #상품
     #상품
     goods:
     goods:
-        goodsTnmJob: 2 22 2 29 2 ?
-        goodsPriceJob: 2 22 2 29 2 ?
-        goodsSnmJob: 2 22 2 29 2 ?
+        titlename.reserve: 2 22 2 29 2 ?
+        price.reserve: 2 22 2 29 2 ?
+        search.keyword: 2 22 2 29 2 ?
+        benefit.price: 2 22 2 29 2 ?