Просмотр исходного кода

Merge branch 'develop' into jsshin

jsshin 5 лет назад
Родитель
Сommit
730e2be20e

+ 39 - 0
src/main/java/com/style24/batch/biz/dao/TsbGiftcardDao.java

@@ -0,0 +1,39 @@
+package com.style24.batch.biz.dao;
+
+import java.util.Collection;
+
+import org.springframework.stereotype.Repository;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.GiftCard;
+
+/**
+ * 상품권 Dao
+ *
+ * @author sowon
+ * @since 2021. 05. 20
+ */
+@ShopDs
+@Repository
+public interface TsbGiftcardDao {
+
+	/**
+	 * 상품권 소멸 리스트
+	 *
+	 * @param point
+	 * @return Collection<Giftcard>
+	 * @author sowon
+	 * @since  2021. 05. 20
+	 */
+	Collection<GiftCard> getExpireGiftcardList(GiftCard giftcard);
+
+	/**
+	 * 상품권 hst insert
+	 *
+	 * @param point
+	 * @return 
+	 * @author sowon
+	 * @since  2021. 05. 20
+	 */
+	void saveExpireGiftcardHst(GiftCard giftcard);
+}

+ 3 - 2
src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsGoodsStockJob.java

@@ -65,9 +65,10 @@ public class TsbGoodsWmsGoodsStockJob extends TsbAbstractJob<IfProductSku, IfPro
 			//wms상품재고이력 생성
 			//wms상품재고이력 생성
 			goodsService.createWmsProductSkuHst(jobdate);
 			goodsService.createWmsProductSkuHst(jobdate);
 
 
+//  대용량 테스트 			
 			// TB_IF_PRODUCTSKU 작업
 			// TB_IF_PRODUCTSKU 작업
-			goodsService.deleteIfProductSku();
-
+//			goodsService.deleteIfProductSku();
+//
 //			// TB_IF_PRODUCTSKU  생성
 //			// TB_IF_PRODUCTSKU  생성
 //			Collection<IfProductSku> wmsIfProductSukList = wmsGoodsService.getWmsIfProductSukList();  //테스트 1000건
 //			Collection<IfProductSku> wmsIfProductSukList = wmsGoodsService.getWmsIfProductSukList();  //테스트 1000건
 //
 //

+ 61 - 0
src/main/java/com/style24/batch/biz/job/marketing/TsbExpireGiftcardJob.java

@@ -0,0 +1,61 @@
+package com.style24.batch.biz.job.marketing;
+
+import java.util.Collection;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.gagaframework.web.parameter.GagaMap;
+import com.style24.batch.biz.job.TsbAbstractJob;
+import com.style24.batch.biz.service.TsbGiftcardService;
+import com.style24.batch.support.env.TsbConstants;
+import com.style24.persistence.domain.GiftCard;
+import com.style24.persistence.domain.Point;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Component
+@Slf4j
+public class TsbExpireGiftcardJob extends TsbAbstractJob<Collection<GiftCard>, GagaMap, GagaMap>{
+	
+	@Autowired
+	TsbGiftcardService giftcardService;
+	
+	private int succCnt = 0;
+	private int failCnt = 0;
+
+	@Override
+	public Collection<GiftCard> read() throws Exception {
+		GiftCard giftcard = new GiftCard(); 
+		return giftcardService.getExpireGiftcardList(giftcard);
+	}
+
+	@Override
+	public GagaMap process(Collection<GiftCard> readItem) throws Exception {
+		for (GiftCard giftcard : readItem) {
+			try {
+				giftcard.setRegNo(TsbConstants.REG_NO);
+				giftcard.setUpdNo(TsbConstants.REG_NO);
+				giftcard.setGfcdAmt(giftcard.getRmGfcdAmt()* -1);
+				giftcardService.saveExpireGiftcardHst(giftcard);
+				succCnt++;
+			} catch (Exception e) {
+				failCnt++;
+			}
+		}
+		return null;
+	}
+
+	@Override
+	public GagaMap write(GagaMap convertedItem) throws Exception {
+		return null;
+	}
+
+	@Override
+	public void notify(GagaMap resultItem) throws Exception {
+		super.printResult(succCnt, failCnt);
+	}
+
+	
+	
+}

+ 51 - 0
src/main/java/com/style24/batch/biz/service/TsbGiftcardService.java

@@ -0,0 +1,51 @@
+package com.style24.batch.biz.service;
+
+import com.style24.batch.biz.dao.TsbGiftcardDao;
+import com.style24.persistence.domain.GiftCard;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Collection;
+
+/**
+ * 상품권 Service
+ *
+ * @author sowon
+ * @since 2021. 05. 20
+ */
+@Service
+@Slf4j
+public class TsbGiftcardService {
+
+	@Autowired
+	private TsbGiftcardDao giftcardDao;
+
+	
+	/**
+	 * 상품권 소멸 리스트
+	 *
+	 * @param giftcard
+	 * @return Collection<Giftcard>
+	 * @author sowon
+	 * @since  2021. 05. 20
+	 */
+	@Transactional("shopTxnManager")
+	public Collection<GiftCard> getExpireGiftcardList(GiftCard giftcard){
+		return giftcardDao.getExpireGiftcardList(giftcard);
+	}
+
+	/**
+	 * 상품권 hst insert
+	 *
+	 * @param point
+	 * @return 
+	 * @author sowon
+	 * @since  2021. 05. 20
+	 */
+	@Transactional("shopTxnManager")
+	public void saveExpireGiftcardHst(GiftCard giftcard) {
+		giftcardDao.saveExpireGiftcardHst(giftcard);
+	}
+}

+ 19 - 0
src/main/java/com/style24/batch/biz/task/TsbMarketingTask.java

@@ -5,9 +5,11 @@ 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.dao.TsbGiftcardDao;
 import com.style24.batch.biz.job.marketing.TsbAutoBuyConfirmJob;
 import com.style24.batch.biz.job.marketing.TsbAutoBuyConfirmJob;
 import com.style24.batch.biz.job.marketing.TsbBirthdayCouponNoticeJob;
 import com.style24.batch.biz.job.marketing.TsbBirthdayCouponNoticeJob;
 import com.style24.batch.biz.job.marketing.TsbCartExpirationJob;
 import com.style24.batch.biz.job.marketing.TsbCartExpirationJob;
+import com.style24.batch.biz.job.marketing.TsbExpireGiftcardJob;
 import com.style24.batch.biz.job.marketing.TsbExpirePointJob;
 import com.style24.batch.biz.job.marketing.TsbExpirePointJob;
 import com.style24.batch.biz.job.marketing.TsbReviewGuideJob;
 import com.style24.batch.biz.job.marketing.TsbReviewGuideJob;
 
 
@@ -37,6 +39,9 @@ public class TsbMarketingTask {
 
 
 	@Autowired
 	@Autowired
 	private TsbReviewGuideJob reviewGuideJob;
 	private TsbReviewGuideJob reviewGuideJob;
+	
+	@Autowired
+	private TsbExpireGiftcardJob expireGiftcardJob;
 
 
 	/**
 	/**
 	 * 자동구매확정 포인트 지급
 	 * 자동구매확정 포인트 지급
@@ -105,5 +110,19 @@ public class TsbMarketingTask {
 	public void sendReviewRegisterGuide() throws Exception {
 	public void sendReviewRegisterGuide() throws Exception {
 		reviewGuideJob.runById("cron.marketing.review.guide");
 		reviewGuideJob.runById("cron.marketing.review.guide");
 	}
 	}
+	
+	/**
+	 * 상품권 소멸처리
+	 *
+	 * @throws Exception - 예외처리
+	 * @author sowon
+	 * @since 2021. 05. 20
+	 */
+	//@Scheduled(cron = "${cron.marketing.expire.giftcard}")
+	//@Scheduled(fixedDelay=360000)
+	@Async
+	public void expireGiftcardJob() throws Exception {
+		expireGiftcardJob.runById("cron.marketing.expire.giftcard");
+	}
 
 
 }
 }

+ 44 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsbGiftcard.xml

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.style24.batch.biz.dao.TsbGiftcardDao">
+
+	<select id="getExpireGiftcardList" parameterType="Giftcard" resultType="Giftcard">
+		/*TsbGiftcardDao.getExpireGiftcardList*/
+		SELECT  CG.CUST_NO 
+		      , CG.CUST_GFCD_SQ 
+		      , CG.CHG_GFCD_AMT 
+		      , CG.RM_GFCD_AMT 
+		      , CG.US_GFCD_AMT 
+		      , CG.GFCD_NO 
+		FROM TB_CUST_GIFTCARD CG
+		WHERE USE_EXP_DATE <![CDATA[<]]> DATE_FORMAT(NOW(), '%Y%m%d')
+		AND CG.RM_GFCD_AMT > 0
+	</select>
+	
+	<insert id="saveExpireGiftcardHst" parameterType="Giftcard">
+		/*TsbGiftcardDao.saveExpireGiftcardHst*/
+		INSERT INTO TB_CUST_GIFTCARD_HST
+		( 
+		      CUST_NO
+		    , OCCUR_GB
+		    , OCCUR_DTL_DESC
+		    , GFCD_AMT
+		    , CUST_GFCD_SQ
+		    , REG_NO
+		    , REG_DT
+		    , UPD_NO
+		    , UPD_DT
+		)
+		VALUES(
+		      #{custNo}
+		    , 'G074_14'
+		    , '유효기간만료'
+		    , #{gfcdAmt}
+		    , #{custGfcdSq}
+		    , #{regNo}
+		    , CURRENT_TIMESTAMP
+		    , #{updNo}
+		    , CURRENT_TIMESTAMP
+		)
+	</insert>
+</mapper>

+ 8 - 7
src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml

@@ -1771,6 +1771,7 @@
 		           , PRODUCT_NO
 		           , PRODUCT_NO
 		           , PRODUCT_CODE
 		           , PRODUCT_CODE
 		           , SUM(CURR_STOCK_QTY) AS CURR_STOCK_QTY
 		           , SUM(CURR_STOCK_QTY) AS CURR_STOCK_QTY
+		           , STORE_STOCK_QTY
 		           , IFNULL((SELECT (MAX(DISP_ORD) + 1) AS DISP_ORD 
 		           , IFNULL((SELECT (MAX(DISP_ORD) + 1) AS DISP_ORD 
 		                  FROM TB_OPTION WHERE GOODS_CD = Z.GOODS_CD) , ROW_NUMBER() OVER(PARTITION BY GOODS_CD ORDER BY OPT_CD)) AS DISP_ORD
 		                  FROM TB_OPTION WHERE GOODS_CD = Z.GOODS_CD) , ROW_NUMBER() OVER(PARTITION BY GOODS_CD ORDER BY OPT_CD)) AS DISP_ORD
 		           , ERP_STOCK_LINK_YN
 		           , ERP_STOCK_LINK_YN
@@ -1780,18 +1781,18 @@
 		                , MAX(A.OPTION1) AS OPT_CD1
 		                , MAX(A.OPTION1) AS OPT_CD1
 		                , MAX(A.OPTION2) AS OPT_CD2
 		                , MAX(A.OPTION2) AS OPT_CD2
 		                , MAX(A.SKUMODELNO) AS SKU_MODEL_NO
 		                , MAX(A.SKUMODELNO) AS SKU_MODEL_NO
-		                , MAX(B.PRODUCT_NO) AS PRODUCT_NO
-		                , MAX(B.PRODUCT_CODE) AS PRODUCT_CODE
+		                , MAX(E.PRODUCT_NO) AS PRODUCT_NO
+		                , MAX(E.PRODUCT_CODE) AS PRODUCT_CODE
 		                , ROUND(GREATEST(A.SELLINGSTOCKAMOUNT, 0) * (IFNULL(D.STOCK_APPL_RATE, 0)/100)) AS CURR_STOCK_QTY
 		                , ROUND(GREATEST(A.SELLINGSTOCKAMOUNT, 0) * (IFNULL(D.STOCK_APPL_RATE, 0)/100)) AS CURR_STOCK_QTY
+		                , MAX(E.STORE_STOCK_QTY) AS STORE_STOCK_QTY
 		                , MAX(B.ERP_STOCK_LINK_YN) AS ERP_STOCK_LINK_YN
 		                , MAX(B.ERP_STOCK_LINK_YN) AS ERP_STOCK_LINK_YN
 		                , D.DELV_LOC_CD
 		                , D.DELV_LOC_CD
 		                , D.STOCK_APPL_RATE
 		                , D.STOCK_APPL_RATE
 		           FROM TB_IF_PRODUCTSKU A 
 		           FROM TB_IF_PRODUCTSKU A 
-		           INNER JOIN TB_GOODS B ON A.PRODUCTCODE = B.PRODUCT_CODE 
-		                                 AND B.SELF_GOODS_YN = 'Y'
-		                                 AND B.GOODS_TYPE = 'N'
 		           INNER JOIN TB_OPTION E ON A.SKUCODE = E.OPT_CD
 		           INNER JOIN TB_OPTION E ON A.SKUCODE = E.OPT_CD
-		                                  AND A.PRODUCTCODE = E.PRODUCT_CODE
+		                                  AND A.PRODUCTNO = E.PRODUCT_NO
+		           INNER JOIN TB_GOODS B ON E.GOODS_CD = B.GOODS_CD
+		                                 AND B.SELF_GOODS_YN = 'Y'
 		           INNER JOIN TB_STOCK_SYNC_BASE C ON B.BRAND_CD = C.BRAND_CD
 		           INNER JOIN TB_STOCK_SYNC_BASE C ON B.BRAND_CD = C.BRAND_CD
 		                                           AND C.STOCK_SYNC_YN = 'Y'
 		                                           AND C.STOCK_SYNC_YN = 'Y'
 		           INNER JOIN TB_DELIVERY_LOC D ON B.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
 		           INNER JOIN TB_DELIVERY_LOC D ON B.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
@@ -1800,7 +1801,7 @@
 		           WHERE 1 = 1
 		           WHERE 1 = 1
 		           GROUP BY B.GOODS_CD, A.SKUCODE, D.DELV_LOC_CD, D.STOCK_APPL_RATE
 		           GROUP BY B.GOODS_CD, A.SKUCODE, D.DELV_LOC_CD, D.STOCK_APPL_RATE
 		           ) Z
 		           ) Z
-		       GROUP BY GOODS_CD, OPT_CD, ERP_STOCK_LINK_YN
+		       GROUP BY GOODS_CD, OPT_CD, OPT_CD1 , OPT_CD2, SKU_MODEL_NO, PRODUCT_NO, PRODUCT_CODE, STORE_STOCK_QTY, ERP_STOCK_LINK_YN
 		      ) Y
 		      ) Y
 	</insert>
 	</insert>
 	
 	

+ 1 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsbOrder.xml

@@ -10,7 +10,7 @@
 		INNER  JOIN TB_PAYMENT PAY
 		INNER  JOIN TB_PAYMENT PAY
 		ON     OD.ORD_NO = PAY.ORD_NO
 		ON     OD.ORD_NO = PAY.ORD_NO
 		WHERE  OD.ORD_DTL_STAT = 'G013_10'
 		WHERE  OD.ORD_DTL_STAT = 'G013_10'
-		AND    PAY.PAY_STAT = 'G016_00'
+		AND    PAY.PAY_STAT = 'G016_10'
 		AND    PAY.PG_GB = 'KCP'
 		AND    PAY.PG_GB = 'KCP'
 		AND    PAY.PAY_MEANS = 'G014_20'
 		AND    PAY.PAY_MEANS = 'G014_20'
 		AND    PAY.VA_DEADLINE <![CDATA[ < ]]> NOW()
 		AND    PAY.VA_DEADLINE <![CDATA[ < ]]> NOW()

+ 1 - 0
src/main/java/com/style24/persistence/mybatis/wms/TsbWmsGoods.xml

@@ -231,6 +231,7 @@
 		INNER JOIN iSTYLE24_WmsIf.dbo.TB_IF_PRODUCT B ON A.BRANDNO  = B.BRANDNO 
 		INNER JOIN iSTYLE24_WmsIf.dbo.TB_IF_PRODUCT B ON A.BRANDNO  = B.BRANDNO 
 		INNER JOIN iSTYLE24_WmsIf.dbo.TB_IF_PRODUCTSKU C ON B.PRODUCTNO  = C.PRODUCTNO 
 		INNER JOIN iSTYLE24_WmsIf.dbo.TB_IF_PRODUCTSKU C ON B.PRODUCTNO  = C.PRODUCTNO 
 		WHERE P.DISTRIBUTIONCD = '자사'
 		WHERE P.DISTRIBUTIONCD = '자사'
+		-- AND B.PRODUCTNO  IN (16561091 ,16561090)   -- 테스트용
 	</select>
 	</select>
 	
 	
 </mapper>
 </mapper>

+ 1 - 0
src/main/resources/config/application-locd.yml

@@ -138,6 +138,7 @@ cron:
         expire.point : 2 22 2 29 2 ?            # 포인트 소멸
         expire.point : 2 22 2 29 2 ?            # 포인트 소멸
         cart.expiration : 2 22 2 29 2 ?         # 만료기간 지난 장바구니 삭제
         cart.expiration : 2 22 2 29 2 ?         # 만료기간 지난 장바구니 삭제
         review.guide: 2 22 2 29 2 ?             # 상품평등록안내 발송 (일배치)
         review.guide: 2 22 2 29 2 ?             # 상품평등록안내 발송 (일배치)
+        expire.giftcard : 2 22 2 29 2 ?         # 포인트 소멸
 
 
     # 주문
     # 주문
     order:
     order: