Explorar o código

Merged PR 65: 브랜드그룹전시상태갱신

브랜드그룹전시상태갱신
smlee %!s(int64=4) %!d(string=hai) anos
pai
achega
70a9e47118

+ 14 - 0
src/main/java/com/style24/batch/biz/dao/TsbDisplayDao.java

@@ -260,4 +260,18 @@ public interface TsbDisplayDao {
 	 * @since 2021. 8. 13
 	 */
 	int createMainContentsGoods();
+	
+	/**
+	 * 브랜드 그룹 전시상태 초기화
+	 * @author smlee
+	 * @since 2021. 12. 07
+	 */
+	void updateBrandDisplayYnInit();
+	
+	/**
+	 * 상품의 승인상태로 브랜드 그룹 전시상태 업데이트 
+	 * @author smlee
+	 * @since 2021. 12. 07
+	 */
+	int updateBrandDisplayYn();
 }

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

@@ -750,4 +750,19 @@ public interface TsbGoodsDao {
 	 */
 	int createVwStock();
 
+	/**
+	 * 브랜드 그룹 전시상태 초기화
+	 * @author smlee
+	 * @since 2021. 12. 07
+	 */
+	void updateBrandDisplayYnInit();
+	
+	/**
+	 * 상품의 승인상태로 브랜드 그룹 전시상태 업데이트 
+	 * @author smlee
+	 * @since 2021. 12. 07
+	 */
+	void updateBrandDisplayYn();
+	
+	
 }

+ 47 - 0
src/main/java/com/style24/batch/biz/job/display/TsbBrandGroupDisplayJob.java

@@ -0,0 +1,47 @@
+package com.style24.batch.biz.job.display;
+
+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.TsbDisplayService; 
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 브랜드 그룹 전시여부 - 일배치
+ *
+ * @author smlee
+ * @since 2021. 12. 09
+ */
+@Component
+@Slf4j
+public class TsbBrandGroupDisplayJob extends TsbAbstractJob<String, String, String> {
+
+	@Autowired
+	private TsbDisplayService displayService;
+ 
+
+	@Override
+	public String read() throws Exception {
+		return "OK";
+	}
+
+	@Override
+	public String process(String result) throws Exception {
+		int cnt = displayService.updateBrandDisplayYn();
+		log.info("전시적용된브랜드그룹: 총 {}건", cnt);
+		return result;
+	}
+
+	@Override
+	public String write(String result) throws Exception {
+		return result;
+	}
+
+	@Override
+	public void notify(String result) throws Exception {
+		// Do nothing
+	}
+
+}

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

@@ -1,52 +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. 04
- */
-@Component
-@Slf4j
-public class TsbGoodsSummaryJob 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.createGoodsSummary();
-		return goods;
-	}
-
-	@Override
-	public void notify(Goods goods) throws Exception {
-		super.printResult(succCnt, failCnt);
-	}
-
-}
+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. 04
+ */
+@Component
+@Slf4j
+public class TsbGoodsSummaryJob 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.createGoodsSummary(); 
+		return goods;
+	}
+
+	@Override
+	public void notify(Goods goods) throws Exception {
+		super.printResult(succCnt, failCnt);
+	}
+
+}

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

@@ -1,52 +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. 11. 27
- */
-@Component
-@Slf4j
-public class TsbGoodsTnmJob 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.saveGoodsTnmRsvt();
-		return goods;
-	}
-
-	@Override
-	public void notify(Goods goods) throws Exception {
-		super.printResult(succCnt, failCnt);
-	}
-
+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. 11. 27
+ */
+@Component
+@Slf4j
+public class TsbGoodsTnmJob 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.saveGoodsTnmRsvt();
+		return goods;
+	}
+
+	@Override
+	public void notify(Goods goods) throws Exception {
+		super.printResult(succCnt, failCnt);
+	}
+
 }

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

@@ -54,7 +54,7 @@ public class TsbGoodsWmsIncomelotJob extends TsbAbstractJob<GoodsIfIncomelotitem
 	public GoodsIfIncomelotitem write(GoodsIfIncomelotitem goodsIfIncomelotitem) throws Exception {
 
 		jobdate = GagaDateUtil.getOffsetDate(-1);	//전일자
-		//jobdate = "20210828";	//전일자 
+		//jobdate = "20211013";	//전일자 
 
 		//wms 입고 정보 처리
 		goodsService.saveGoodsWmsIncomelot(jobdate);

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

@@ -49,6 +49,7 @@ public class TsbGoodsWmsProductskuJob extends TsbAbstractJob<Collection<GoodsIfP
 		}
 		// wms 입고상품목록 조회 (등록, 수정건 조회)
 		jobdate = GagaDateUtil.getOffsetDate(-1);	//전일자
+		//jobdate = "20211013";	//전일자 
 		Collection<GoodsIfProductsku> wmsIfProductSukList = wmsGoodsService.getWmsProductskuList(jobdate);
 		
 		return wmsIfProductSukList;

+ 3 - 3
src/main/java/com/style24/batch/biz/job/statistics/TsbSalesUploadHsdrJob.java

@@ -38,12 +38,12 @@ public class TsbSalesUploadHsdrJob extends TsbAbstractJob<String, String, String
 
 	@Override
 	public String process(String result) throws Exception {
-		for (int i = 1; i <= 30; i++) {
-			String dtSale = "202109" + GagaStringUtil.getLPadding(String.valueOf(i), 2, "0");
+		//for (int i = 1; i <= 30; i++) {
+			String dtSale = "20211014";
 
 			// 한세드림 매출반영
 			this.uploadSales(HansaeErp.ErpGb.HANSAE_DR.value(), dtSale);
-		}
+		//}
 
 		return "OK";
 	}

+ 17 - 0
src/main/java/com/style24/batch/biz/service/TsbDisplayService.java

@@ -192,4 +192,21 @@ public class TsbDisplayService {
 		// 상품 생성
 		displayDao.createMainContentsGoods();
 	}
+	
+	/**
+	 * 상품의 승인 상태로 브랜드목록 초기화및 전시상태수정
+	 *
+	 * @return
+	 * @author smlee
+	 * @since 2021. 12. 07
+	 */
+	@Transactional("shopTxnManager")	
+	public int updateBrandDisplayYn() {
+		
+		/* 초기화 */
+		displayDao.updateBrandDisplayYnInit();
+		
+		/* 업데이트 */
+		return displayDao.updateBrandDisplayYn();
+	}
 }

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

@@ -918,5 +918,6 @@ public class TsbGoodsService {
 	public void saveGoodsWmsProductsku(GagaMap dataMap) {
 		goodsDao.createIfProductSku(dataMap);
 	}
+
 	
 }

+ 17 - 0
src/main/java/com/style24/batch/biz/task/TsbDisplayTask.java

@@ -10,6 +10,7 @@ import com.style24.batch.biz.job.display.TsbCategoryFilterJob;
 import com.style24.batch.biz.job.display.TsbCategoryStockJob;
 import com.style24.batch.biz.job.display.TsbMainContentsGoodsJob;
 import com.style24.batch.biz.job.display.TsbRecentlyRegGoodsJob;
+import com.style24.batch.biz.job.display.TsbBrandGroupDisplayJob;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -37,6 +38,9 @@ public class TsbDisplayTask {
 
 	@Autowired
 	private TsbMainContentsGoodsJob mainContentsGoodsJob;
+	
+	@Autowired 
+	private TsbBrandGroupDisplayJob brandGroupDisplayJob;
 
 	/**
 	 * 카테고리4SRCH 생성 - 매시 10분마다 0초 기준
@@ -89,4 +93,17 @@ public class TsbDisplayTask {
 		mainContentsGoodsJob.runById("cron.display.main.contents.goods.create");
 		return "OK";
 	}
+	
+	/**
+	 * 브랜드그룹전시여부갱신
+	 * @throws Exception
+	 */
+	//@Scheduled(fixedDelay = 999999999)
+	@Scheduled(cron = "${cron.display.brand.group.display.update}")
+	@Async
+	public String brandGoupDisplayYn() throws Exception {
+		brandGroupDisplayJob.runById("cron.display.brand.group.display.update");
+		return "OK";
+	}
+	
 }

+ 18 - 0
src/main/java/com/style24/batch/biz/web/TsbDisplayController.java

@@ -12,6 +12,7 @@ import com.style24.batch.biz.job.display.TsbCategoryFilterJob;
 import com.style24.batch.biz.job.display.TsbCategoryStockJob;
 import com.style24.batch.biz.job.display.TsbMainContentsGoodsJob;
 import com.style24.batch.biz.job.display.TsbRecentlyRegGoodsJob;
+import com.style24.batch.biz.job.display.TsbBrandGroupDisplayJob;
 import com.style24.core.support.controller.TscBaseController;
 
 import lombok.extern.slf4j.Slf4j;
@@ -42,6 +43,9 @@ public class TsbDisplayController extends TscBaseController {
 
 	@Autowired
 	private TsbMainContentsGoodsJob mainContentsGoodsJob;
+	
+	@Autowired 
+	private TsbBrandGroupDisplayJob brandGroupDisplayJob;
 
 	/**
 	 * 카테고리4SRCH 생성 - 매시 10분마다 0초 기준
@@ -97,4 +101,18 @@ public class TsbDisplayController extends TscBaseController {
 		mainContentsGoodsJob.runById("cron.display.main.contents.goods.create");
 		return "OK";
 	}
+	
+
+	/**
+	 * 브랜드그룹전시여부갱신 
+	 * @throws Exception
+	 */
+	@GetMapping("/brand/group/display/update")
+	@ResponseBody
+	public String brandGoupDisplayYn() throws Exception {
+		brandGroupDisplayJob.runById("cron.display.brand.group.display.update");
+		return "OK";
+	}
+		
+	
 }

+ 25 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsbDisplay.xml

@@ -4320,4 +4320,29 @@
 						,'SMM009', 'SMM011', 'STAB001', 'STAB002', 'SCM003')
 					)
 	</insert>
+	
+	<!-- 상품 승인상태로 브랜드전시초기화  -->
+	<update id="updateBrandDisplayYnInit">
+	/* TsbDisplay.updateBrandDisplayYnInit */ 
+	UPDATE  tb_brand_group BG 
+	SET BG.DISP_YN = 'N' ;
+	</update>
+
+
+	<!-- 상품 승인상태로 브랜드전시체크  -->
+	<update id="updateBrandDisplayYn">
+	/* TsbDisplay.updateBrandDisplayYn */
+	 	WITH EXIST_BRAND AS (
+           SELECT DISTINCT BRAND_CD 
+           FROM   TB_GOODS G
+           WHERE  1=1
+           AND    G.GOODS_STAT = 'G008_90'		
+	)
+			
+	UPDATE  tb_brand_group BG
+	INNER JOIN  TB_BRAND B ON BG.BRAND_GROUP_NO = b.BRAND_GROUP_NO 
+	INNER JOIN EXIST_BRAND EB ON B.BRAND_CD = EB.BRAND_CD
+	SET BG.DISP_YN = 'Y' ;
+	</update>
+	
 </mapper>

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

@@ -102,6 +102,7 @@ cron:
         #category.filter.create: 0 45 * * * *     #카테고리별 검색필터 생성 (1시간 1회). 사용안함
         recently.reg.goods.create: 0 45 * * * *  #최근등록된 상품 100개 생성
         main.contents.goods.create: 0 5 * * * *  #몰 메인 컨텐츠 상품생성 (1시간 1회)
+        brand.group.display.update: 0 15 3 * * *  #브랜드 그룹 전시상태갱신 (1일 1회)
 
     # 주문
     order: