Bladeren bron

수정 중

jsshin 5 jaren geleden
bovenliggende
commit
6738a99918
21 gewijzigde bestanden met toevoegingen van 1177 en 501 verwijderingen
  1. 1 0
      .gitignore
  2. 1 5
      src/main/java/com/style24/batch/biz/job/marketing/TsbCartExpirationJob.java
  3. 103 26
      src/main/java/com/style24/batch/biz/task/TsbCustomerTask.java
  4. 41 168
      src/main/java/com/style24/batch/biz/task/TsbDeliveryTask.java
  5. 7 7
      src/main/java/com/style24/batch/biz/task/TsbDisplayTask.java
  6. 70 52
      src/main/java/com/style24/batch/biz/task/TsbGoodsTask.java
  7. 0 128
      src/main/java/com/style24/batch/biz/task/TsbMarketingTask.java
  8. 24 8
      src/main/java/com/style24/batch/biz/task/TsbOrderTask.java
  9. 0 66
      src/main/java/com/style24/batch/biz/task/TsbSocialTask.java
  10. 7 8
      src/main/java/com/style24/batch/biz/task/TsbStatisticsTask.java
  11. 132 0
      src/main/java/com/style24/batch/biz/task/TsbWithdrawTask.java
  12. 216 1
      src/main/java/com/style24/batch/biz/web/TsbCustomerController.java
  13. 116 1
      src/main/java/com/style24/batch/biz/web/TsbDeliveryController.java
  14. 49 1
      src/main/java/com/style24/batch/biz/web/TsbDisplayController.java
  15. 244 0
      src/main/java/com/style24/batch/biz/web/TsbGoodsController.java
  16. 0 23
      src/main/java/com/style24/batch/biz/web/TsbMarketingController.java
  17. 58 1
      src/main/java/com/style24/batch/biz/web/TsbOrderController.java
  18. 2 2
      src/main/java/com/style24/batch/biz/web/TsbStatisticsController.java
  19. 4 4
      src/main/java/com/style24/batch/support/env/TsbConstants.java
  20. 14 0
      src/main/java/com/style24/persistence/mybatis/shop/TsbCustomer.xml
  21. 88 0
      src/main/resources/config/application.yml

+ 1 - 0
.gitignore

@@ -14,3 +14,4 @@ target/
 ### MacOS ###
 .DS_Store
 META-INF/context.xml
+/src/test/

+ 1 - 5
src/main/java/com/style24/batch/biz/job/marketing/TsbCartExpirationJob.java

@@ -2,17 +2,13 @@ package com.style24.batch.biz.job.marketing;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
 import com.style24.batch.biz.job.TsbAbstractJob;
 import com.style24.batch.biz.service.TsbCartService;
-import com.style24.batch.biz.service.TsbGoodsService;
-import com.style24.batch.biz.task.TsbMarketingTask;
 import com.style24.core.biz.dao.TscEnvsetDao;
 import com.style24.core.support.env.TscConstants;
 import com.style24.persistence.domain.Envset;
-import com.style24.persistence.domain.Goods;
 import com.style24.persistence.domain.Order;
 
 import lombok.extern.slf4j.Slf4j;
@@ -53,7 +49,7 @@ public class TsbCartExpirationJob extends TsbAbstractJob<Order, Order, Order> {
 		env = envsetDao.getEnvset(env);
 
 		// 값이 없을 경우 삭제되어야함
-		if(!StringUtils.isEmpty(env.getStrSetVal1())) {
+		if (!StringUtils.isEmpty(env.getStrSetVal1())) {
 			limitDays = Integer.parseInt(env.getStrSetVal1());
 		} else {
 			throw new IllegalArgumentException("장바구니 보관 기간이 존재하지 않습니다.");

+ 103 - 26
src/main/java/com/style24/batch/biz/task/TsbCustomerTask.java

@@ -12,6 +12,11 @@ import com.style24.batch.biz.job.customer.TsbMarketingAgreementNoticeJob;
 import com.style24.batch.biz.job.customer.TsbNetpathyMailJob;
 import com.style24.batch.biz.job.customer.TsbPrivacyPolicyNoticeJob;
 import com.style24.batch.biz.job.customer.TsbSecedeProcessJob;
+import com.style24.batch.biz.job.marketing.TsbAutoBuyConfirmJob;
+import com.style24.batch.biz.job.marketing.TsbBirthdayCouponNoticeJob;
+import com.style24.batch.biz.job.marketing.TsbExpireGiftcardJob;
+import com.style24.batch.biz.job.marketing.TsbExpirePointJob;
+import com.style24.batch.biz.job.marketing.TsbReviewGuideJob;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -45,6 +50,21 @@ public class TsbCustomerTask {
 	@Autowired
 	TsbNetpathyMailJob netpathyJob;
 
+	@Autowired
+	private TsbAutoBuyConfirmJob autoBuyConfirmJob;
+
+	@Autowired
+	private TsbBirthdayCouponNoticeJob birthdayCouponNoticeJob;
+
+	@Autowired
+	private TsbExpirePointJob expirePointJob;
+
+	@Autowired
+	private TsbExpireGiftcardJob expireGiftcardJob;
+
+	@Autowired
+	private TsbReviewGuideJob reviewGuideJob;
+
 	/**
 	 * 휴면전환 예정 대상 메일 발송
 	 *
@@ -52,11 +72,10 @@ public class TsbCustomerTask {
 	 * @author jsshin
 	 * @since 2021. 03. 08
 	 */
-//	@Scheduled(cron = "${cron.customer.dormant.schedule}")
-//	@Scheduled(fixedDelay=360000)
+	@Scheduled(cron = "${cron.customer.dormant.create}")
 	@Async
-	public void dormantScheduleJob() throws Exception {
-		dormantScheduleJob.runById("cron.customer.dormant.schedule");
+	public void dormantCustomerCreateJob() throws Exception {
+		dormantScheduleJob.runById("cron.customer.dormant.create");
 	}
 
 	/**
@@ -66,10 +85,9 @@ public class TsbCustomerTask {
 	 * @author jsshin
 	 * @since 2021. 03. 08
 	 */
-//	@Scheduled(cron = "${cron.customer.dormant.transform}")
-//	@Scheduled(fixedDelay=360000)
+	@Scheduled(cron = "${cron.customer.dormant.transform}")
 	@Async
-	public void dormantTransformJob() throws Exception {
+	public void dormantCustomerTransformJob() throws Exception {
 		dormantTransformJob.runById("cron.customer.dormant.transform");
 	}
 
@@ -80,11 +98,10 @@ public class TsbCustomerTask {
 	 * @author jsshin
 	 * @since 2021. 03. 08
 	 */
-//	@Scheduled(cron = "${cron.customer.secede.process}")
-//	@Scheduled(fixedDelay=360000)
+	@Scheduled(cron = "${cron.customer.secede.transform}")
 	@Async
-	public void secedeProcessJob() throws Exception {
-		secedeProcessJob.runById("cron.customer.secede.process");
+	public void secedeCustomerTransformJob() throws Exception {
+		secedeProcessJob.runById("cron.customer.secede.transform");
 	}
 
 	/**
@@ -94,11 +111,10 @@ public class TsbCustomerTask {
 	 * @author jsshin
 	 * @since 2021. 05. 06
 	 */
-//	@Scheduled(cron = "${cron.customer.privacy.policy.notice}")
-//	@Scheduled(fixedDelay=360000)
+	@Scheduled(cron = "${cron.customer.privacy.info.notify}")
 	@Async
-	public void privacyPolicyNoticeJob() throws Exception {
-		privacyPolicyNoticeJob.runById("cron.customer.privacy.policy.notice");
+	public void privacyInfoNotifyJob() throws Exception {
+		privacyPolicyNoticeJob.runById("cron.customer.privacy.info.notify");
 	}
 
 	/**
@@ -108,11 +124,10 @@ public class TsbCustomerTask {
 	 * @author jsshin
 	 * @since 2021. 05. 06
 	 */
-//	@Scheduled(cron = "${cron.customer.marketing.agreement.notice}")
-//	@Scheduled(fixedDelay=360000)
+	@Scheduled(cron = "${cron.customer.marketing.info.notify}")
 	@Async
-	public void marketingAgreementNoticeJob() throws Exception {
-		marketingAgreementNoticeJob.runById("cron.customer.marketing.agreement.notice");
+	public void marketingInfoNotifyJob() throws Exception {
+		marketingAgreementNoticeJob.runById("cron.customer.marketing.info.notify");
 	}
 
 	/**
@@ -122,10 +137,9 @@ public class TsbCustomerTask {
 	 * @author jsshin
 	 * @since 2021. 05. 06
 	 */
-//	@Scheduled(cron = "${cron.customer.grade.change}")
-//	@Scheduled(fixedDelay=360000)
+	@Scheduled(cron = "${cron.customer.grade.change}")
 	@Async
-	public void gradeChangeJob() throws Exception {
+	public void customerGradeChangeJob() throws Exception {
 		gradeChangeJob.runById("cron.customer.grade.change");
 	}
 
@@ -135,11 +149,74 @@ public class TsbCustomerTask {
 	 * @author gagamel
 	 * @since 2021. 5. 10
 	 */
-//	@Scheduled(cron = "${cron.customer.netpathy.sync}")
-//	@Scheduled(fixedDelay = 360000)
+	@Scheduled(cron = "${cron.customer.netpathy.mail.sync}")
+	@Async
+	public void customerInfoNetpathyMailSyncJob() throws Exception {
+		netpathyJob.runById("cron.customer.netpathy.mail.sync");
+	}
+
+	/**
+	 * 자동구매확정 포인트 지급
+	 *
+	 * @throws Exception - 예외처리
+	 * @author jsshin
+	 * @since 2021. 04. 23
+	 */
+	@Scheduled(cron = "${cron.customer.auto.buy.confirm}")
+	@Async
+	public void autoBuyConfirmJob() throws Exception {
+		autoBuyConfirmJob.runById("cron.customer.auto.buy.confirm");
+	}
+
+	/**
+	 * 생일쿠폰 다운로드 안내
+	 *
+	 * @throws Exception - 예외처리
+	 * @author jsshin
+	 * @since 2021. 05. 10
+	 */
+	@Scheduled(cron = "${cron.customer.birth.coupon.notify}")
+	@Async
+	public void birthCouponNotifyJob() throws Exception {
+		birthdayCouponNoticeJob.runById("cron.customer.birth.coupon.notify");
+	}
+
+	/**
+	 * 포인트 소멸처리
+	 *
+	 * @throws Exception - 예외처리
+	 * @author sowon
+	 * @since 2021. 04. 26
+	 */
+	@Scheduled(cron = "${cron.customer.point.expire}")
+	@Async
+	public void pointExpireJob() throws Exception {
+		expirePointJob.runById("cron.customer.point.expire");
+	}
+
+	/**
+	 * 상품권 소멸처리
+	 *
+	 * @throws Exception - 예외처리
+	 * @author sowon
+	 * @since 2021. 05. 20
+	 */
+	@Scheduled(cron = "${cron.customer.giftcard.expire}")
+	@Async
+	public void giftcardExpireJob() throws Exception {
+		expireGiftcardJob.runById("cron.customer.giftcard.expire");
+	}
+
+	/**
+	 * 상품평등록안내발송 처리
+	 * @throws Exception - 예외처리
+	 * @author gagamel
+	 * @since 2021. 5. 17
+	 */
+	@Scheduled(cron = "${cron.customer.review.register.notify}")
 	@Async
-	public void syncronizeNetpathyMailCustomerInfo() throws Exception {
-		netpathyJob.runById("cron.customer.netpathy.sync");
+	public void customerReviewRegisterNotifyJob() throws Exception {
+		reviewGuideJob.runById("cron.customer.review.register.notify");
 	}
 
 }

+ 41 - 168
src/main/java/com/style24/batch/biz/task/TsbDeliveryTask.java

@@ -9,20 +9,9 @@ import com.style24.batch.biz.job.delivery.TsbDailyDeliveryZoneJob;
 import com.style24.batch.biz.job.delivery.TsbDeliveryExcRcvJob;
 import com.style24.batch.biz.job.delivery.TsbDeliveryOrderJob;
 import com.style24.batch.biz.job.delivery.TsbDeliveryOrderRsltJob;
-import com.style24.batch.biz.job.delivery.TsbWithdrawExcRcvJob;
-import com.style24.batch.biz.job.delivery.TsbWithdrawExcRsltJob;
-import com.style24.batch.biz.job.delivery.TsbWithdrawRsltJob;
 import com.style24.batch.biz.job.delivery.TsbInvoiceNoRcvJob;
-import com.style24.batch.biz.job.delivery.TsbShopGoodsStockJob;
-import com.style24.batch.biz.job.delivery.TsbWithdrawRequestJob;
-import com.style24.batch.biz.job.delivery.TsbCjWithdrawInvoiceJob;
-import com.style24.batch.biz.job.delivery.TsbCjWithdrawInvoiceStatJob;
-import com.style24.batch.biz.job.delivery.TsbSweetTrackerJob;
 import com.style24.batch.biz.job.delivery.TsbSoldoutCancelJob;
-
-
-
-
+import com.style24.batch.biz.job.delivery.TsbSweetTrackerJob;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -40,45 +29,22 @@ public class TsbDeliveryTask {
 
 	@Autowired
 	private TsbDeliveryOrderJob deliveryOrderJob;
-	
-	@Autowired
-	private TsbWithdrawExcRcvJob withdrawExcRcvJob;
-	
-	@Autowired
-	private TsbWithdrawExcRsltJob withdrawExcRsltJob;	
-	
+
 	@Autowired
 	private TsbDeliveryExcRcvJob deliveryExcRcvJob;
-	
+
 	@Autowired
 	private TsbDeliveryOrderRsltJob deliveryOrderRsltJob;
-	
-	@Autowired
-	private TsbWithdrawRsltJob withdrawRsltJob;
 
 	@Autowired
 	private TsbInvoiceNoRcvJob tsbInvoiceNoRcvJob;
-	
-	@Autowired
-	private TsbShopGoodsStockJob tsbShopGoodsStockJob;
-	
-	@Autowired
-	private TsbWithdrawRequestJob tsbWithdrawRequestJob;
-	
-	@Autowired
-	private TsbCjWithdrawInvoiceJob tsbCjWithdrawInvoiceJob;
-	
-	@Autowired
-	private TsbCjWithdrawInvoiceStatJob tsbCjWithdrawInvoiceStatJob;
-	
+
 	@Autowired
 	private TsbSweetTrackerJob tsbSweetTrackerJob;
-	
+
 	@Autowired
 	private TsbSoldoutCancelJob tsbSoldoutCancelJob;
-	
-	
-	
+
 	/**
 	 * 초 분 시 일 월 주(년)
 	 * 0 0 12 * * ?"             : 아무 요일, 매월, 매일 12:00:00
@@ -106,169 +72,76 @@ public class TsbDeliveryTask {
 	 *
 	 * @throws Exception
 	 */
-	//@Scheduled(cron = "${cron.delivery.tsbDailyDeliveryZoneJob}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.delivery.shot.deliveryzone.refresh}")
 	@Async
-	public void tsbDailyDeliveryZoneJob() throws Exception {
-		dailyDeliveryZoneJob.run("cron.delivery.tsbDailyDeliveryZoneJob");
+	public void shotDeliveryZoneRefreshJob() throws Exception {
+		dailyDeliveryZoneJob.run("cron.delivery.shot.deliveryzone.refresh");
 	}
-	
 
 	/**
 	 * 출고처지정 및 배송(출고)지시   : 분배치 10분??
 	 *
 	 * @throws Exception
 	 */
-	//@Scheduled(cron = "${cron.delivery.tsbDeliveryOrderJob}")
-//	@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.delivery.loc.assign}")
 	@Async
-	public void tsbDeliveryOrderJob() throws Exception {
-		deliveryOrderJob.run("cron.delivery.tsbDeliveryOrderJob");
-	}
-	
-	/**
-	 * 출고예외 수신
-	 *
-	 * @throws Exception
-	 */
-	//@Scheduled(cron = "${cron.delivery.tsbDeliveryExcRcvJob}")
-	//@Scheduled(fixedDelay = 3500000)
-	@Async 
-	public void tsbDeliveryExcRcvJob() throws Exception {
-		deliveryExcRcvJob.run("cron.delivery.tsbDeliveryExcRcvJob");
+	public void deliveryLocAssignJob() throws Exception {
+		deliveryOrderJob.run("cron.delivery.loc.assign");
 	}
-		
-	/**
-	 * wms 송장번호 수신  
-	 *
-	 * @throws Exception
-	 */
-	//@Scheduled(cron = "${cron.delivery.tsbInvoiceNoRcvJob}")
-	//@Scheduled(fixedDelay = 3500000)
-	@Async 
-	public void tsbInvoiceNoRcvJob() throws Exception {
-		tsbInvoiceNoRcvJob.run("cron.delivery.tsbInvoiceNoRcvJob");
-	}
-	
+
 	/**
-	 * 출고결과 수신
+	 * WMS 출고예외 수신
 	 *
 	 * @throws Exception
 	 */
-	//@Scheduled(cron = "${cron.delivery.tsbDeliveryOrderRsltJob}")
-	//@Scheduled(fixedDelay = 3500000)
-	@Async 
-	public void tsbDeliveryOrderRsltJob() throws Exception {
-		deliveryOrderRsltJob.run("cron.delivery.tsbDeliveryOrderRsltJob");
+	@Scheduled(cron = "${cron.delivery.wms.outgoing.exception.receive}")
+	@Async
+	public void wmsOutgoingExceptionReceiveJob() throws Exception {
+		deliveryExcRcvJob.run("cron.delivery.wms.outgoing.exception.receive");
 	}
-	
-	/**
-	 * WMS 회수요청
-	 *
-	 * @throws Exception
-	 */
-	//@Scheduled(cron = "${cron.delivery.tsbWithdrawRequestJob}")
-	//@Scheduled(fixedDelay = 3500000)
-	@Async 
-	public void tsbWithdrawRequestJob() throws Exception {
-		tsbWithdrawRequestJob.run("cron.delivery.tsbWithdrawRequestJob");
-	}	
-	
-	/**
-	 * CJ 회수송장번호 수신
-	 *
-	 * @throws Exception
-	 */
-	//@Scheduled(cron = "${cron.delivery.tsbCjWithdrawInvoiceJob}")
-	//@Scheduled(fixedDelay = 3500000)
-	@Async 
-	public void tsbCjWithdrawInvoiceJob() throws Exception {
-		tsbCjWithdrawInvoiceJob.run("cron.delivery.tsbCjWithdrawInvoiceJob");
-	}	
-	
-	/**
-	 * CJ 회수상태 수신
-	 *
-	 * @throws Exception
-	 */
-	//@Scheduled(cron = "${cron.delivery.tsbCjWithdrawInvoiceStatJob}")
-	//@Scheduled(fixedDelay = 3500000)
-	@Async 
-	public void tsbCjWithdrawInvoiceStatJob() throws Exception {
-		tsbCjWithdrawInvoiceStatJob.run("cron.delivery.tsbCjWithdrawInvoiceStatJob");
-	}	
-	
+
 	/**
-	 * 회수예외 수신
+	 * WMS 출고결과 수신
 	 *
 	 * @throws Exception
 	 */
-	//@Scheduled(cron = "${cron.delivery.tsbWithdrawExcRcvJob}")
-	//@Scheduled(fixedDelay = 3500000)
-	@Async 
-	public void tsbWithdrawExcRcvJob() throws Exception {
-		withdrawExcRcvJob.run("cron.delivery.tsbWithdrawExcRcvJob");
+	@Scheduled(cron = "${cron.delivery.wms.outgoing.result.receive}")
+	@Async
+	public void wmsOutgoingResultReceiveJob() throws Exception {
+		deliveryOrderRsltJob.run("cron.delivery.wms.outgoing.result.receive");
 	}
-	
+
 	/**
-	 * 회수예외 결과
+	 * WMS 송장번호 수신  
 	 *
 	 * @throws Exception
 	 */
-	//@Scheduled(cron = "${cron.delivery.tsbWithdrawExcRsltJob}")
-	//@Scheduled(fixedDelay = 3500000)
-	@Async 
-	public void tsbWithdrawExcRsltJob() throws Exception {
-		withdrawExcRsltJob.run("cron.delivery.tsbWithdrawExcRsltJob");
+	@Scheduled(cron = "${cron.delivery.wms.invoice.receive}")
+	@Async
+	public void wmsInvoiceReceiveJob() throws Exception {
+		tsbInvoiceNoRcvJob.run("cron.delivery.wms.invoice.receive");
 	}
-	
-	
-	/**
-	 * 회수결과 수신
-	 *
-	 * @throws Exception
-	 */
-	//@Scheduled(cron = "${cron.delivery.tsbWithdrawRsltJob}")
-	//@Scheduled(fixedDelay = 3500000)
-	@Async 
-	public void tsbWithdrawRsltJob() throws Exception {
-		withdrawRsltJob.run("cron.delivery.tsbWithdrawRsltJob");
-	}	
-	
+
 	/**
-	 * 매장상품재고 수신 
+	 * 스윗트래커  배송 추적 요청
 	 *
 	 * @throws Exception
 	 */
-	//@Scheduled(cron = "${cron.delivery.tsbShopGoodsStockJob}")
-	//@Scheduled(fixedDelay = 3500000)
-	@Async 
-	public void tsbShopGoodsStockJob() throws Exception {
-		tsbShopGoodsStockJob.run("cron.delivery.tsbShopGoodsStockJob");
+	@Scheduled(cron = "${cron.delivery.sweettracker.invoice.retrieve}")
+	@Async
+	public void sweettrackerInvoiceRetrieveJob() throws Exception {
+		tsbSweetTrackerJob.run("cron.delivery.sweettracker.invoice.retrieve");
 	}
-	
+
 	/**
 	 * 자동품절취소
 	 *
 	 * @throws Exception
 	 */
-	//@Scheduled(cron = "${cron.delivery.tsbShopGoodsStockJob}")
-	//@Scheduled(fixedDelay = 3500000)
-	@Async 
-	public void tsbSoldoutCancelJob() throws Exception {
-		tsbSoldoutCancelJob.run("cron.delivery.tsbShopGoodsStockJob");
+	@Scheduled(cron = "${cron.delivery.auto.soldout.cancel}")
+	@Async
+	public void autoSoldoutCancelJob() throws Exception {
+		tsbSoldoutCancelJob.run("cron.delivery.auto.soldout.cancel");
 	}
 
-	/**
-	 * 스윗트래커  배송 추적 요청
-	 *
-	 * @throws Exception
-	 */
-	//@Scheduled(cron = "${cron.delivery.tsbSweetTrackerJob}")
-	//@Scheduled(fixedDelay = 3500000)
-	@Async 
-	public void tsbSweetTrackerJob() throws Exception {
-		tsbSweetTrackerJob.run("cron.delivery.tsbSweetTrackerJob");
-	}	
-	
 }

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

@@ -36,7 +36,7 @@ public class TsbDisplayTask {
 	 */
 	@Scheduled(cron = "${cron.display.category.refresh}")
 	@Async
-	public void createCate4SrchJob() throws Exception {
+	public void cate4SrchRefreshJob() throws Exception {
 		cate4SrchJob.runById("cron.display.category.refresh");
 	}
 
@@ -44,20 +44,20 @@ public class TsbDisplayTask {
 	 * 카테고리별 재고 생성
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.display.category.stock}")
+	@Scheduled(cron = "${cron.display.category.stock.create}")
 	@Async
-	public void createCategoryStock() throws Exception {
-		cateStockJob.runById("cron.display.category.stock");
+	public void categoryStockCreateJob() throws Exception {
+		cateStockJob.runById("cron.display.category.stock.create");
 	}
 
 	/**
 	 * 카테고리별 검색 필터 생성
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.display.category.filter}")
+	@Scheduled(cron = "${cron.display.category.filter.create}")
 	@Async
-	public void createCategoryFilter() throws Exception {
-		cateFilterJob.runById("cron.display.category.filter");
+	public void categoryFilterCreateJob() throws Exception {
+		cateFilterJob.runById("cron.display.category.filter.create");
 	}
 
 }

+ 70 - 52
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.stereotype.Component;
 
+import com.style24.batch.biz.job.delivery.TsbShopGoodsStockJob;
 import com.style24.batch.biz.job.goods.TsbGoodsBenefitJob;
 import com.style24.batch.biz.job.goods.TsbGoodsBenefitPriceJob;
 import com.style24.batch.biz.job.goods.TsbGoodsEpNaverGoods;
@@ -19,6 +20,7 @@ import com.style24.batch.biz.job.goods.TsbGoodsWmsGoodsJob;
 import com.style24.batch.biz.job.goods.TsbGoodsWmsGoodsStockJob;
 import com.style24.batch.biz.job.goods.TsbGoodsWmsIncomelotJob;
 import com.style24.batch.biz.job.goods.TsbGoodsWmsMeasurementJob;
+import com.style24.batch.biz.job.social.TsbSocialGoodsJob;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -73,6 +75,12 @@ public class TsbGoodsTask {
 	@Autowired
 	private TsbGoodsBenefitJob goodsBenefitJob;
 
+	@Autowired
+	private TsbShopGoodsStockJob tsbShopGoodsStockJob;
+
+	@Autowired
+	private TsbSocialGoodsJob socialGoodsJob;
+
 	/**
 	 * 초 분 시 일 월 주(년)
 	 * 0 0 12 * * ?" : 아무 요일, 매월, 매일 12:00:00
@@ -100,11 +108,10 @@ public class TsbGoodsTask {
 	 *
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.goods.titlename.reserve}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.goods.reserve.titlename.apply}")
 	@Async
-	public void tsbGoodsTnmJob() throws Exception {
-		goodsTnmJob.runById("cron.goods.titlename.reserve");
+	public void reserveTitlenameApplyJob() throws Exception {
+		goodsTnmJob.runById("cron.goods.reserve.titlename.apply");
 	}
 
 	/**
@@ -112,11 +119,10 @@ public class TsbGoodsTask {
 	 *
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.goods.price.reserve}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.goods.reserve.price.apply}")
 	@Async
-	public void tsbGoodsPriceJob() throws Exception {
-		goodsPriceJob.runById("cron.goods.price.reserve");
+	public void reservePriceApplyJob() throws Exception {
+		goodsPriceJob.runById("cron.goods.reserve.price.apply");
 	}
 
 	/**
@@ -124,11 +130,10 @@ public class TsbGoodsTask {
 	 *
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.goods.search.keyword}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.goods.keyword.create}")
 	@Async
-	public void tsbGoodsSnmJob() throws Exception {
-		goodsSnmJob.runById("cron.goods.search.keyword");
+	public void keywordCreateJob() throws Exception {
+		goodsSnmJob.runById("cron.goods.keyword.create");
 	}
 
 	/**
@@ -138,11 +143,10 @@ public class TsbGoodsTask {
 	 * @author eskim
 	 * @since 2020. 12. 02.
 	 */
-	@Scheduled(cron = "${cron.goods.benefit.price}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.goods.benefit.price.create}")
 	@Async
-	public void tsbGoodsBenefitPriceJob() throws Exception {
-		goodsBenefitPriceJob.runById("cron.goods.benefit.price");
+	public void benefitPriceCreateJob() throws Exception {
+		goodsBenefitPriceJob.runById("cron.goods.benefit.price.create");
 	}
 
 	/**
@@ -150,11 +154,10 @@ public class TsbGoodsTask {
 	 *
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.goods.relate.score}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.goods.relgoods.scoring}")
 	@Async
-	public void tsbGoodsRelateScoreJob() throws Exception {
-		goodsRelateScoreJob.runById("cron.goods.relate.score");
+	public void relationGoodsScoringJob() throws Exception {
+		goodsRelateScoreJob.runById("cron.goods.relgoods.scoring");
 	}
 
 	/**
@@ -162,11 +165,10 @@ public class TsbGoodsTask {
 	 *
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.goods.summary}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.goods.summary.create}")
 	@Async
-	public void tsbGoodsSummaryJob() throws Exception {
-		goodsSummaryJob.run("cron.goods.summary");
+	public void summaryCreateJob() throws Exception {
+		goodsSummaryJob.run("cron.goods.summary.create");
 	}
 
 	/**
@@ -186,11 +188,10 @@ public class TsbGoodsTask {
 	 *
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.goods.wms.measurement}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.goods.wms.measurement.receive}")
 	@Async
-	public void tsbGoodsWmsMeasurementJob() throws Exception {
-		goodsWmsMeasurementJob.runById("cron.goods.wms.measurement");
+	public void wmsMeasurementReceiveJob() throws Exception {
+		goodsWmsMeasurementJob.runById("cron.goods.wms.measurement.receive");
 	}
 
 	/**
@@ -198,11 +199,10 @@ public class TsbGoodsTask {
 	 *
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.goods.wms.incomelot}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.goods.wms.incomelot.receive}")
 	@Async
-	public void tsbGoodsWmsIncomelotJob() throws Exception {
-		goodsWmsIncomelotJob.runById("cron.goods.wms.incomelot");
+	public void wmsIncomelotReceiveJob() throws Exception {
+		goodsWmsIncomelotJob.runById("cron.goods.wms.incomelot.receive");
 	}
 
 	/**
@@ -210,11 +210,10 @@ public class TsbGoodsTask {
 	 *
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.goods.wms.brandprovider}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.goods.wms.brandprovider.send}")
 	@Async
-	public void tsbGoodsWmsBrandproviderJob() throws Exception {
-		goodsWmsBrandproviderJob.runById("cron.goods.wms.brandprovider");
+	public void wmsBrandproviderSendJob() throws Exception {
+		goodsWmsBrandproviderJob.runById("cron.goods.wms.brandprovider.send");
 	}
 
 	/**
@@ -222,11 +221,10 @@ public class TsbGoodsTask {
 	 *
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.goods.wms.goods}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.goods.wms.goods.send}")
 	@Async
-	public void tsbGoodsWmsGoodsJob() throws Exception {
-		goodsWmsGoodsJob.runById("cron.goods.wms.goods");
+	public void wmsGoodsSendJob() throws Exception {
+		goodsWmsGoodsJob.runById("cron.goods.wms.goods.send");
 	}
 
 	/**
@@ -234,33 +232,53 @@ public class TsbGoodsTask {
 	 *
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.goods.wms.goods.stock}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.goods.wms.stock.receive}")
 	@Async
-	public void tsbGoodsWmsGoodsStockJob() throws Exception {
-		goodsWmsGoodsStockJob.runById("cron.goods.wms.goods.stock");
+	public void wmsStockReceiveJob() throws Exception {
+		goodsWmsGoodsStockJob.runById("cron.goods.wms.stock.receive");
 	}
 
 	/**
-	 * EP 네이버 상품 생성 주기 : 시간배치 - 01분
+	 * 네이버EP 전체상품 생성 주기 : 시간배치 - 01분
 	 *
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.goods.ep.naver.goods}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.goods.ep.naver.all.goods.create}")
 	@Async
-	public void tsbGoodsEpNaverGoods() throws Exception {
-		goodsEpNaverGoods.runById("cron.goods.ep.naver.goods");
+	public void naverEpAllGoodsCreateJob() throws Exception {
+		goodsEpNaverGoods.runById("cron.goods.ep.naver.all.goods.create");
 	}
 
 	/**
 	 * 상품혜택(쿠폰할인, 무료배송, 사은품, 신상) 생성
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.goods.benefit}")
+	@Scheduled(cron = "${cron.goods.benefit.create}")
+	@Async
+	public void benefitCreateJob() throws Exception {
+		goodsBenefitJob.runById("cron.goods.benefit.create");
+	}
+
+	/**
+	 * 매장상품재고 수신
+	 *
+	 * @throws Exception
+	 */
+	@Scheduled(cron = "${cron.goods.shop.stock.receive}")
+	@Async
+	public void shopGoodsStockReceiveJob() throws Exception {
+		tsbShopGoodsStockJob.run("cron.goods.shop.stock.receive");
+	}
+
+	/**
+	 * 소셜 상품 적용 : 시간배치 - 매시 00분
+	 *
+	 * @throws Exception
+	 */
+	@Scheduled(cron = "${cron.goods.social.price.apply}")
 	@Async
-	public void createGoodsBenefit() throws Exception {
-		goodsBenefitJob.runById("cron.goods.benefit");
+	public void socialPriceApplyJob() throws Exception {
+		socialGoodsJob.runById("cron.goods.social.price.apply");
 	}
 
 }

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

@@ -1,128 +0,0 @@
-package com.style24.batch.biz.task;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.scheduling.annotation.Scheduled;
-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.TsbBirthdayCouponNoticeJob;
-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.TsbReviewGuideJob;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- *
- * 마케팅 Task
- * @author jsshin
- * @since 2021. 04. 22
- */
-@Component
-@Slf4j
-public class TsbMarketingTask {
-
-	@Autowired
-	private TsbAutoBuyConfirmJob autoBuyConfirmJob;
-
-	@Autowired
-	private TsbCartExpirationJob cartExpirationJob;
-
-	@Autowired
-	private TsbExpirePointJob expirePointJob;
-
-	@Autowired
-	private TsbBirthdayCouponNoticeJob birthdayCouponNoticeJob;
-
-	@Autowired
-	private TsbReviewGuideJob reviewGuideJob;
-	
-	@Autowired
-	private TsbExpireGiftcardJob expireGiftcardJob;
-
-	/**
-	 * 자동구매확정 포인트 지급
-	 *
-	 * @throws Exception - 예외처리
-	 * @author jsshin
-	 * @since 2021. 04. 23
-	 */
-	@Scheduled(cron = "${cron.marketing.auto.buy.confirm}")
-	// @Scheduled(fixedDelay=360000)
-	@Async
-	public void autoBuyConfirmJob() throws Exception {
-		autoBuyConfirmJob.runById("cron.marketing.auto.buy.confirm");
-	}
-
-	/**
-	 * 생일쿠폰 다운로드 안내
-	 *
-	 * @throws Exception - 예외처리
-	 * @author jsshin
-	 * @since 2021. 05. 10
-	 */
-	@Scheduled(cron = "${cron.marketing.birthday.coupon.notice}")
-//	@Scheduled(fixedDelay=360000)
-	@Async
-	public void birthdayCouponNoticeJob() throws Exception {
-		birthdayCouponNoticeJob.runById("cron.marketing.birthday.coupon.notice");
-	}
-
-	/**
-	 * 포인트 소멸처리
-	 *
-	 * @throws Exception - 예외처리
-	 * @author sowon
-	 * @since 2021. 04. 26
-	 */
-	//@Scheduled(cron = "${cron.marketing.expire.point}")
-//	@Scheduled(fixedDelay=360000)
-	@Async
-	public void expirePointJob() throws Exception {
-		expirePointJob.runById("cron.marketing.expire.point");
-	}
-
-	/**
-	 * 장바구니 30일 초과 만료 데이터 삭제
-	 *
-	 * @throws Exception - 예외처리
-	 * @author xodud1202
-	 * @since 2021. 05. 03
-	 */
-	@Scheduled(cron = "${cron.marketing.cart.expiration}")
-	//@Scheduled(fixedDelay=360000)
-	@Async
-	public void expireCartExpirationJob() throws Exception {
-		cartExpirationJob.runById("cron.marketing.cart.expiration");
-	}
-
-	/**
-	 * 상품평등록안내발송 처리
-	 * @throws Exception - 예외처리
-	 * @author gagamel
-	 * @since 2021. 5. 17
-	 */
-	@Scheduled(cron = "${cron.marketing.review.guide}")
-	@Async
-	public void sendReviewRegisterGuide() throws Exception {
-		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");
-	}
-
-}

+ 24 - 8
src/main/java/com/style24/batch/biz/task/TsbOrderTask.java

@@ -5,6 +5,7 @@ import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import com.style24.batch.biz.job.marketing.TsbCartExpirationJob;
 import com.style24.batch.biz.job.order.TsbOrderDepositExpirationJob;
 import com.style24.batch.biz.job.order.TsbOrderGiftExpirationJob;
 
@@ -20,12 +21,28 @@ import lombok.extern.slf4j.Slf4j;
 @Slf4j
 public class TsbOrderTask {
 
+	@Autowired
+	private TsbCartExpirationJob cartExpirationJob;
+
 	@Autowired
 	private TsbOrderDepositExpirationJob orderDepositExpirationJob;
 
 	@Autowired
 	private TsbOrderGiftExpirationJob orderGiftExpirationJob;
 
+	/**
+	 * 장바구니 30일 초과 만료 데이터 삭제
+	 *
+	 * @throws Exception - 예외처리
+	 * @author xodud1202
+	 * @since 2021. 05. 03
+	 */
+	@Scheduled(cron = "${cron.order.cart.deadline.expire}")
+	@Async
+	public void cartDeadlineExpireJob() throws Exception {
+		cartExpirationJob.runById("cron.order.cart.deadline.expire");
+	}
+
 	/**
 	 * 무통장입금 입금 기한 만료 데이터 취소
 	 *
@@ -33,11 +50,10 @@ public class TsbOrderTask {
 	 * @author xodud1202
 	 * @since 2021. 05. 03
 	 */
-	@Scheduled(cron = "${cron.order.deposit.expiration}")
-	//@Scheduled(fixedDelay=360000)
+	@Scheduled(cron = "${cron.order.deposit.deadline.expire}")
 	@Async
-	public void expireOrderDepositExpirationJob() throws Exception {
-		orderDepositExpirationJob.runById("cron.order.deposit.expiration");
+	public void depositDeadlineExpireJob() throws Exception {
+		orderDepositExpirationJob.runById("cron.order.deposit.deadline.expire");
 	}
 
 	/**
@@ -47,10 +63,10 @@ public class TsbOrderTask {
 	 * @author xodud1202
 	 * @since 2021. 05. 03
 	 */
-	@Scheduled(cron = "${cron.order.gift.expiration}")
-	//@Scheduled(fixedDelay=360000)
+	@Scheduled(cron = "${cron.order.gift.deadline.expire}")
 	@Async
-	public void expireOrderGiftExpirationJob() throws Exception {
-		orderGiftExpirationJob.runById("cron.order.gift.expiration");
+	public void giftDeadlineExpireJob() throws Exception {
+		orderGiftExpirationJob.runById("cron.order.gift.deadline.expire");
 	}
+
 }

+ 0 - 66
src/main/java/com/style24/batch/biz/task/TsbSocialTask.java

@@ -1,66 +0,0 @@
-package com.style24.batch.biz.task;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import com.style24.batch.biz.job.social.TsbSocialGoodsJob;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 소셜관리(핫딜) Task
- * @author sowon
- * @since 2021. 3. 10
- */
-@Component
-@Slf4j
-public class TsbSocialTask {
-
-	@Autowired
-	private TsbSocialGoodsJob socialGoodsJob;
-	
-	/**
-	 * 직배송수수료매출 ERP 전송 배치(매일 2시 실행)
-	 * 초 분 시 일 월 주(년)
-	 * 0 0 12 * * ?" : 아무 요일, 매월, 매일 12:00:00
-	 * 0 15 10 ? * *" : 모든 요일, 매월, 아무 날이나 10:15:00
-	 * 0 15 10 * * ?" : 아무 요일, 매월, 매일 10:15:00
-	 * 0 15 10 * * ? *" : 모든 연도, 아무 요일, 매월, 매일 10:15
-	 * 0 15 10 * * ? : 2005" 2005년 아무 요일이나 매월, 매일 10:15
-	 * 0 * 14 * * ?" : 아무 요일, 매월, 매일, 14시 매분 0초
-	 * 0 0/5 14 * * ?" : 아무 요일, 매월, 매일, 14시 매 5분마다 0초
-	 * 0 0/5 14,18 * * ?" : 아무 요일, 매월, 매일, 14시, 18시 매 5분마다 0초
-	 * 0 0-5 14 * * ?" : 아무 요일, 매월, 매일, 14:00 부터 매 14:05까지 매 분 0초
-	 * 0 10,44 14 ? 3 WED" : 3월의 매 주 수요일, 아무 날짜나 14:10:00, 14:44:00
-	 * 0 15 10 ? * MON-FRI" : 월~금, 매월, 아무 날이나 10:15:00
-	 * 0 15 10 15 * ?" : 아무 요일, 매월 15일 10:15:00
-	 * 0 15 10 L * ?" : 아무 요일, 매월 마지막 날 10:15:00
-	 * 0 15 10 ? * 6L" : 매월 마지막 금요일 아무 날이나 10:15:00
-	 * 0 15 10 ? * 6L 2002-2005" : 2002년부터 2005년까지 매월 마지막 금요일 아무 날이나 10:15:00
-	 * 0 15 10 ? * 6#3" : 매월 3번째 금요일 아무 날이나 10:15:00
-	 * 
-	 * @throws Exception
-	 */
-
-	/**************************
-	 * 소셜배치 목록
-	 ************************** ** 일배치 목록
-	 * ** 시간배치 목록
-	 * - TsbGoodsStockJob : 소셜 상품 적용 : 매시 00분
-	 */
-
-	/**
-	 * 소셜 상품 적용 : 시간배치 - 매시 00분
-	 *
-	 * @throws Exception
-	 */
-	@Scheduled(cron = "${cron.social.socialGoodsJob}") // * 0 15 10 * * ?" : 아무 요일, 매월, 매일 10:15:00 // 매시 5분 0 5 * * * *
-	//@Scheduled(fixedDelay=360000)
-	@Async
-	public void tsbSocialGoodsJob() throws Exception {
-		socialGoodsJob.runById("cron.social.socialGoodsJob");
-		//socialGoodsJob.run("소셜 상품 적용");
-	}
-}

+ 7 - 8
src/main/java/com/style24/batch/biz/task/TsbStatisticsTask.java

@@ -52,11 +52,10 @@ public class TsbStatisticsTask {
 	 *
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.statistics.inflow}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.statistics.aflink.inflow.create}")
 	@Async
-	public void tsbInflowStaticsJob() throws Exception {
-		inflowStatisticsJob.runById("cron.statistics.inflow");
+	public void aflinkInflowCreateJob() throws Exception {
+		inflowStatisticsJob.runById("cron.statistics.aflink.inflow.create");
 	}
 
 	/**
@@ -64,10 +63,10 @@ public class TsbStatisticsTask {
 	 *
 	 * @throws Exception
 	 */
-	@Scheduled(cron = "${cron.statistics.inflow.yesterday}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(cron = "${cron.statistics.aflink.inflow.yesterday.create}")
 	@Async
-	public void tsbInflowYesterdayStaticsJob() throws Exception {
-		inflowYesterdayStatisticsJob.runById("cron.statistics.inflow.yesterday");
+	public void aflinkInflowYesterdayCreateJob() throws Exception {
+		inflowYesterdayStatisticsJob.runById("cron.statistics.aflink.inflow.yesterday.create");
 	}
+
 }

+ 132 - 0
src/main/java/com/style24/batch/biz/task/TsbWithdrawTask.java

@@ -0,0 +1,132 @@
+package com.style24.batch.biz.task;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import com.style24.batch.biz.job.delivery.TsbCjWithdrawInvoiceJob;
+import com.style24.batch.biz.job.delivery.TsbCjWithdrawInvoiceStatJob;
+import com.style24.batch.biz.job.delivery.TsbWithdrawExcRcvJob;
+import com.style24.batch.biz.job.delivery.TsbWithdrawExcRsltJob;
+import com.style24.batch.biz.job.delivery.TsbWithdrawRequestJob;
+import com.style24.batch.biz.job.delivery.TsbWithdrawRsltJob;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 회수 Task
+ * @author moon
+ * @since 2020. 12. 08
+ */
+@Component
+@Slf4j
+public class TsbWithdrawTask {
+
+	@Autowired
+	private TsbWithdrawExcRcvJob withdrawExcRcvJob;
+
+	@Autowired
+	private TsbWithdrawExcRsltJob withdrawExcRsltJob;
+
+	@Autowired
+	private TsbWithdrawRsltJob withdrawRsltJob;
+
+	@Autowired
+	private TsbWithdrawRequestJob tsbWithdrawRequestJob;
+
+	@Autowired
+	private TsbCjWithdrawInvoiceJob tsbCjWithdrawInvoiceJob;
+
+	@Autowired
+	private TsbCjWithdrawInvoiceStatJob tsbCjWithdrawInvoiceStatJob;
+
+	/**
+	 * 초 분 시 일 월 주(년)
+	 * 0 0 12 * * ?"             : 아무 요일, 매월, 매일 12:00:00
+	 * 0 15 10 ? * *"            : 모든 요일, 매월, 아무 날이나 10:15:00
+	 * 0 15 10 * * ?"            : 아무 요일, 매월, 매일 10:15:00
+	 * 0 15 10 * * ? *"          : 모든 연도, 아무 요일, 매월, 매일 10:15
+	 * 0 15 10 * * ?             : 2005" 2005년 아무 요일이나 매월, 매일 10:15
+	 * 0 * 14 * * ?"             : 아무 요일, 매월, 매일, 14시 매분 0초
+	 * 0 0/5 14 * * ?"           : 아무 요일, 매월, 매일, 14시 매 5분마다 0초
+	 * 0 0/5 14,18 * * ?"        : 아무 요일, 매월, 매일, 14시, 18시 매 5분마다 0초
+	 * 0 0-5 14 * * ?"           : 아무 요일, 매월, 매일, 14:00 부터 매 14:05까지 매 분 0초
+	 * 0 10,44 14 ? 3 WED"       : 3월의 매 주 수요일, 아무 날짜나 14:10:00, 14:44:00
+	 * 0 15 10 ? * MON-FRI"      : 월~금, 매월, 아무 날이나 10:15:00
+	 * 0 15 10 15 * ?"           : 아무 요일, 매월 15일 10:15:00
+	 * 0 15 10 L * ?"            : 아무 요일, 매월 마지막 날 10:15:00
+	 * 0 15 10 ? * 6L"           : 매월 마지막 금요일 아무 날이나 10:15:00
+	 * 0 15 10 ? * 6L 2002-2005" : 2002년부터 2005년까지 매월 마지막 금요일 아무 날이나 10:15:00
+	 * 0 15 10 ? * 6#3"          : 매월 3번째 금요일 아무 날이나 10:15:00
+	 *
+	 * @throws Exception
+	 */
+
+	/**
+	 * WMS 회수요청
+	 *
+	 * @throws Exception
+	 */
+	@Scheduled(cron = "${cron.withdraw.wms.request}")
+	@Async
+	public void withdrawWmsRequestJob() throws Exception {
+		tsbWithdrawRequestJob.run("cron.withdraw.wms.request");
+	}
+
+	/**
+	 * WMS 회수입고예외 수신
+	 *
+	 * @throws Exception
+	 */
+	@Scheduled(cron = "${cron.withdraw.wms.ingoing.exception.receive}")
+	@Async
+	public void withdrawWmsIngoingExceptionReceiveJob() throws Exception {
+		withdrawExcRcvJob.run("cron.withdraw.wms.ingoing.exception.receive");
+	}
+
+	/**
+	 * WMS 회수입고예외결과 수신
+	 *
+	 * @throws Exception
+	 */
+	@Scheduled(cron = "${cron.withdraw.wms.ingoing.exception.result.receive}")
+	@Async
+	public void withdrawWmsIngoingExceptionResultReceiveJob() throws Exception {
+		withdrawExcRsltJob.run("cron.withdraw.wms.ingoing.exception.result.receive");
+	}
+
+	/**
+	 * WMS 회수입고결과 수신
+	 *
+	 * @throws Exception
+	 */
+	@Scheduled(cron = "${cron.withdraw.wms.ingoing.result.receive}")
+	@Async
+	public void withdrawWmsIngoingResultReceiveJob() throws Exception {
+		withdrawRsltJob.run("cron.withdraw.wms.ingoing.result.receive");
+	}
+
+	/**
+	 * CJ 회수송장번호 수신
+	 *
+	 * @throws Exception
+	 */
+	@Scheduled(cron = "${cron.withdraw.cj.invoice.receive}")
+	@Async
+	public void withdrawCjInvoiceReceiveJob() throws Exception {
+		tsbCjWithdrawInvoiceJob.run("cron.withdraw.cj.invoice.receive");
+	}
+
+	/**
+	 * CJ 회수상태 수신
+	 *
+	 * @throws Exception
+	 */
+	@Scheduled(cron = "${cron.withdraw.cj.status.receive}")
+	@Async
+	public void withdrawCjStatusJob() throws Exception {
+		tsbCjWithdrawInvoiceStatJob.run("cron.withdraw.cj.status.receive");
+	}
+
+}

+ 216 - 1
src/main/java/com/style24/batch/biz/web/TsbCustomerController.java

@@ -1,9 +1,24 @@
 package com.style24.batch.biz.web;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 
+import com.style24.batch.biz.job.customer.TsbDormantScheduleJob;
+import com.style24.batch.biz.job.customer.TsbDormantTransformJob;
+import com.style24.batch.biz.job.customer.TsbGradeChangeJob;
+import com.style24.batch.biz.job.customer.TsbMarketingAgreementNoticeJob;
+import com.style24.batch.biz.job.customer.TsbNetpathyMailJob;
+import com.style24.batch.biz.job.customer.TsbPrivacyPolicyNoticeJob;
+import com.style24.batch.biz.job.customer.TsbSecedeProcessJob;
+import com.style24.batch.biz.job.marketing.TsbAutoBuyConfirmJob;
+import com.style24.batch.biz.job.marketing.TsbBirthdayCouponNoticeJob;
+import com.style24.batch.biz.job.marketing.TsbExpireGiftcardJob;
+import com.style24.batch.biz.job.marketing.TsbExpirePointJob;
+import com.style24.batch.biz.job.marketing.TsbReviewGuideJob;
 import com.style24.core.support.controller.TscBaseController;
 
 import lombok.extern.slf4j.Slf4j;
@@ -15,9 +30,209 @@ import lombok.extern.slf4j.Slf4j;
  * @since 2021. 5. 24
  */
 @Controller
-@RequestMapping("/goods")
+@RequestMapping("/customer")
 @CrossOrigin(origins = "${domain.admin}")
 @Slf4j
 public class TsbCustomerController extends TscBaseController {
 
+	@Autowired
+	TsbDormantScheduleJob dormantScheduleJob;
+
+	@Autowired
+	TsbDormantTransformJob dormantTransformJob;
+
+	@Autowired
+	TsbSecedeProcessJob secedeProcessJob;
+
+	@Autowired
+	TsbPrivacyPolicyNoticeJob privacyPolicyNoticeJob;
+
+	@Autowired
+	TsbMarketingAgreementNoticeJob marketingAgreementNoticeJob;
+
+	@Autowired
+	TsbGradeChangeJob gradeChangeJob;
+
+	@Autowired
+	TsbNetpathyMailJob netpathyJob;
+
+	@Autowired
+	private TsbAutoBuyConfirmJob autoBuyConfirmJob;
+
+	@Autowired
+	private TsbBirthdayCouponNoticeJob birthdayCouponNoticeJob;
+
+	@Autowired
+	private TsbExpirePointJob expirePointJob;
+
+	@Autowired
+	private TsbExpireGiftcardJob expireGiftcardJob;
+
+	@Autowired
+	private TsbReviewGuideJob reviewGuideJob;
+
+	/**
+	 * 휴면전환 예정 대상 메일 발송
+	 * @throws Exception
+	 * @author jsshin
+	 * @since 2021. 03. 08
+	 */
+	@GetMapping("/dormant/create")
+	@ResponseBody
+	public String createDormantCustomer() throws Exception {
+		dormantScheduleJob.runById("cron.customer.dormant.create");
+		return "OK";
+	}
+
+	/**
+	 * 휴면전환 처리
+	 * @throws Exception - 예외처리
+	 * @author jsshin
+	 * @since 2021. 03. 08
+	 */
+	@GetMapping("/dormant/transform")
+	@ResponseBody
+	public String transformDormantCustomer() throws Exception {
+		dormantTransformJob.runById("cron.customer.dormant.transform");
+		return "OK";
+	}
+
+	/**
+	 * 탈퇴회원 처리
+	 *
+	 * @throws Exception - 예외처리
+	 * @author jsshin
+	 * @since 2021. 03. 08
+	 */
+	@GetMapping("/secede/transform")
+	@ResponseBody
+	public String transformSecedeCustomer() throws Exception {
+		secedeProcessJob.runById("cron.customer.secede.transform");
+		return "OK";
+	}
+
+	/**
+	 * 개인정보 이용내역 안내 발송
+	 *
+	 * @throws Exception - 예외처리
+	 * @author jsshin
+	 * @since 2021. 05. 06
+	 */
+	@GetMapping("/privacy/info/notify")
+	@ResponseBody
+	public String notifyCustomerPrivacyInfo() throws Exception {
+		privacyPolicyNoticeJob.runById("cron.customer.privacy.info.notify");
+		return "OK";
+	}
+
+	/**
+	 * 마케팅 정보 수신동의 내역 안내 발송
+	 *
+	 * @throws Exception - 예외처리
+	 * @author jsshin
+	 * @since 2021. 05. 06
+	 */
+	@GetMapping("/marketing/info/notify")
+	@ResponseBody
+	public String notifyCustomerMarketingInfo() throws Exception {
+		marketingAgreementNoticeJob.runById("cron.customer.marketing.info.notify");
+		return "OK";
+	}
+
+	/**
+	 * 회원등급 변경
+	 *
+	 * @throws Exception - 예외처리
+	 * @author jsshin
+	 * @since 2021. 05. 06
+	 */
+	@GetMapping("/grade/change")
+	@ResponseBody
+	public String changeCustomerGrade() throws Exception {
+		gradeChangeJob.runById("cron.customer.grade.change");
+		return "OK";
+	}
+
+	/**
+	 * 넷퍼시메일솔루션에 회원정보 연동
+	 * @throws Exception - 예외처리
+	 * @author gagamel
+	 * @since 2021. 5. 10
+	 */
+	@GetMapping("/netpathy/mail/sync")
+	@ResponseBody
+	public String syncronizeCustomerInfoToNepathyMail() throws Exception {
+		netpathyJob.runById("cron.customer.netpathy.mail.sync");
+		return "OK";
+	}
+
+	/**
+	 * 자동구매확정 포인트 지급
+	 *
+	 * @throws Exception - 예외처리
+	 * @author jsshin
+	 * @since 2021. 04. 23
+	 */
+	@GetMapping("/auto/buy/confirm")
+	@ResponseBody
+	public String confirmAutoBuy() throws Exception {
+		autoBuyConfirmJob.runById("cron.customer.auto.buy.confirm");
+		return "OK";
+	}
+
+	/**
+	 * 생일쿠폰 다운로드 안내
+	 *
+	 * @throws Exception - 예외처리
+	 * @author jsshin
+	 * @since 2021. 05. 10
+	 */
+	@GetMapping("/birth/coupon/notify")
+	@ResponseBody
+	public String notifyBirthCoupon() throws Exception {
+		birthdayCouponNoticeJob.runById("cron.customer.birth.coupon.notify");
+		return "OK";
+	}
+
+	/**
+	 * 포인트 소멸처리
+	 *
+	 * @throws Exception - 예외처리
+	 * @author sowon
+	 * @since 2021. 04. 26
+	 */
+	@GetMapping("/point/expire")
+	@ResponseBody
+	public String expirePoint() throws Exception {
+		expirePointJob.runById("cron.customer.point.expire");
+		return "OK";
+	}
+
+	/**
+	 * 상품권 소멸처리
+	 *
+	 * @throws Exception - 예외처리
+	 * @author sowon
+	 * @since 2021. 05. 20
+	 */
+	@GetMapping("/giftcard/expire")
+	@ResponseBody
+	public String expireGiftcard() throws Exception {
+		expireGiftcardJob.runById("cron.customer.giftcard.expire");
+		return "OK";
+	}
+
+	/**
+	 * 상품평등록안내발송 처리
+	 * @throws Exception - 예외처리
+	 * @author gagamel
+	 * @since 2021. 5. 17
+	 */
+	@GetMapping("/review/register/notify")
+	@ResponseBody
+	public String notifyReviewRegister() throws Exception {
+		reviewGuideJob.runById("cron.customer.review.register.notify");
+		return "OK";
+	}
+
 }

+ 116 - 1
src/main/java/com/style24/batch/biz/web/TsbDeliveryController.java

@@ -1,9 +1,19 @@
 package com.style24.batch.biz.web;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 
+import com.style24.batch.biz.job.delivery.TsbDailyDeliveryZoneJob;
+import com.style24.batch.biz.job.delivery.TsbDeliveryExcRcvJob;
+import com.style24.batch.biz.job.delivery.TsbDeliveryOrderJob;
+import com.style24.batch.biz.job.delivery.TsbDeliveryOrderRsltJob;
+import com.style24.batch.biz.job.delivery.TsbInvoiceNoRcvJob;
+import com.style24.batch.biz.job.delivery.TsbSoldoutCancelJob;
+import com.style24.batch.biz.job.delivery.TsbSweetTrackerJob;
 import com.style24.core.support.controller.TscBaseController;
 
 import lombok.extern.slf4j.Slf4j;
@@ -15,9 +25,114 @@ import lombok.extern.slf4j.Slf4j;
  * @since 2021. 5. 24
  */
 @Controller
-@RequestMapping("/goods")
+@RequestMapping("/delivery")
 @CrossOrigin(origins = "${domain.admin}")
 @Slf4j
 public class TsbDeliveryController extends TscBaseController {
 
+	@Autowired
+	private TsbDailyDeliveryZoneJob dailyDeliveryZoneJob;
+
+	@Autowired
+	private TsbDeliveryOrderJob deliveryOrderJob;
+
+	@Autowired
+	private TsbDeliveryExcRcvJob deliveryExcRcvJob;
+
+	@Autowired
+	private TsbDeliveryOrderRsltJob deliveryOrderRsltJob;
+
+	@Autowired
+	private TsbInvoiceNoRcvJob tsbInvoiceNoRcvJob;
+
+	@Autowired
+	private TsbSweetTrackerJob tsbSweetTrackerJob;
+
+	@Autowired
+	private TsbSoldoutCancelJob tsbSoldoutCancelJob;
+
+	/**
+	 * 총알배송 권역정보   : 일배치  오전 11시
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/shot/deliveryzone/refresh")
+	@ResponseBody
+	public String shotDeliveryZoneRefreshJob() throws Exception {
+		dailyDeliveryZoneJob.run("cron.delivery.shot.deliveryzone.refresh");
+		return "OK";
+	}
+
+	/**
+	 * 출고처지정 및 배송(출고)지시   : 분배치 10분??
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/loc/assign")
+	@ResponseBody
+	public String deliveryLocAssignJob() throws Exception {
+		deliveryOrderJob.run("cron.delivery.loc.assign");
+		return "OK";
+	}
+
+	/**
+	 * WMS 출고예외 수신
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/wms/outgoing/exception/receive")
+	@ResponseBody
+	public String wmsOutgoingExceptionReceiveJob() throws Exception {
+		deliveryExcRcvJob.run("cron.delivery.wms.outgoing.exception.receive");
+		return "OK";
+	}
+
+	/**
+	 * WMS 출고결과 수신
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/wms/outgoing/result/receive")
+	@ResponseBody
+	public String wmsOutgoingResultReceiveJob() throws Exception {
+		deliveryOrderRsltJob.run("cron.delivery.wms.outgoing.result.receive");
+		return "OK";
+	}
+
+	/**
+	 * WMS 송장번호 수신  
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/wms/invoice/receive")
+	@ResponseBody
+	public String wmsInvoiceReceiveJob() throws Exception {
+		tsbInvoiceNoRcvJob.run("cron.delivery.wms.invoice.receive");
+		return "OK";
+	}
+
+	/**
+	 * 스윗트래커  배송 추적 요청
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/sweettracker/invoice/retrieve")
+	@ResponseBody
+	public String sweettrackerInvoiceRetrieveJob() throws Exception {
+		tsbSweetTrackerJob.run("cron.delivery.sweettracker.invoice.retrieve");
+		return "OK";
+	}
+
+	/**
+	 * 자동품절취소
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/auto/soldout/cancel")
+	@ResponseBody
+	public String autoSoldoutCancelJob() throws Exception {
+		tsbSoldoutCancelJob.run("cron.delivery.auto.soldout.cancel");
+		return "OK";
+	}
+
 }

+ 49 - 1
src/main/java/com/style24/batch/biz/web/TsbDisplayController.java

@@ -1,9 +1,15 @@
 package com.style24.batch.biz.web;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 
+import com.style24.batch.biz.job.display.TsbCategory4SrchJob;
+import com.style24.batch.biz.job.display.TsbCategoryFilterJob;
+import com.style24.batch.biz.job.display.TsbCategoryStockJob;
 import com.style24.core.support.controller.TscBaseController;
 
 import lombok.extern.slf4j.Slf4j;
@@ -15,9 +21,51 @@ import lombok.extern.slf4j.Slf4j;
  * @since 2021. 5. 24
  */
 @Controller
-@RequestMapping("/goods")
+@RequestMapping("/display")
 @CrossOrigin(origins = "${domain.admin}")
 @Slf4j
 public class TsbDisplayController extends TscBaseController {
 
+	@Autowired
+	private TsbCategory4SrchJob cate4SrchJob;
+
+	@Autowired
+	private TsbCategoryStockJob cateStockJob;
+
+	@Autowired
+	private TsbCategoryFilterJob cateFilterJob;
+
+	/**
+	 * 카테고리4SRCH 생성 - 매시 10분마다 0초 기준
+	 * @throws Exception
+	 */
+	@GetMapping("/category/refresh")
+	@ResponseBody
+	public String refreshCate4Srch() throws Exception {
+		cate4SrchJob.runById("cron.display.category.refresh");
+		return "OK";
+	}
+
+	/**
+	 * 카테고리별 재고 생성
+	 * @throws Exception
+	 */
+	@GetMapping("/category/stock/create")
+	@ResponseBody
+	public String createCategoryStock() throws Exception {
+		cateStockJob.runById("cron.display.category.stock.create");
+		return "OK";
+	}
+
+	/**
+	 * 카테고리별 검색 필터 생성
+	 * @throws Exception
+	 */
+	@GetMapping("/category/filter/create")
+	@ResponseBody
+	public String createCategoryFilter() throws Exception {
+		cateFilterJob.runById("cron.display.category.filter.create");
+		return "OK";
+	}
+
 }

+ 244 - 0
src/main/java/com/style24/batch/biz/web/TsbGoodsController.java

@@ -1,9 +1,27 @@
 package com.style24.batch.biz.web;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 
+import com.style24.batch.biz.job.delivery.TsbShopGoodsStockJob;
+import com.style24.batch.biz.job.goods.TsbGoodsBenefitJob;
+import com.style24.batch.biz.job.goods.TsbGoodsBenefitPriceJob;
+import com.style24.batch.biz.job.goods.TsbGoodsEpNaverGoods;
+import com.style24.batch.biz.job.goods.TsbGoodsPriceJob;
+import com.style24.batch.biz.job.goods.TsbGoodsRelateScoreJob;
+import com.style24.batch.biz.job.goods.TsbGoodsSnmJob;
+import com.style24.batch.biz.job.goods.TsbGoodsSummaryJob;
+import com.style24.batch.biz.job.goods.TsbGoodsTnmJob;
+import com.style24.batch.biz.job.goods.TsbGoodsWmsBrandproviderJob;
+import com.style24.batch.biz.job.goods.TsbGoodsWmsGoodsJob;
+import com.style24.batch.biz.job.goods.TsbGoodsWmsGoodsStockJob;
+import com.style24.batch.biz.job.goods.TsbGoodsWmsIncomelotJob;
+import com.style24.batch.biz.job.goods.TsbGoodsWmsMeasurementJob;
+import com.style24.batch.biz.job.social.TsbSocialGoodsJob;
 import com.style24.core.support.controller.TscBaseController;
 
 import lombok.extern.slf4j.Slf4j;
@@ -20,4 +38,230 @@ import lombok.extern.slf4j.Slf4j;
 @Slf4j
 public class TsbGoodsController extends TscBaseController {
 
+	@Autowired
+	private TsbGoodsTnmJob goodsTnmJob;
+
+	@Autowired
+	private TsbGoodsPriceJob goodsPriceJob;
+
+	@Autowired
+	private TsbGoodsSnmJob goodsSnmJob;
+
+	@Autowired
+	private TsbGoodsBenefitPriceJob goodsBenefitPriceJob;
+
+	@Autowired
+	private TsbGoodsRelateScoreJob goodsRelateScoreJob;
+
+	@Autowired
+	private TsbGoodsSummaryJob goodsSummaryJob;
+
+	@Autowired
+	private TsbGoodsWmsMeasurementJob goodsWmsMeasurementJob;
+
+	@Autowired
+	private TsbGoodsWmsIncomelotJob goodsWmsIncomelotJob;
+
+	@Autowired
+	private TsbGoodsWmsBrandproviderJob goodsWmsBrandproviderJob;
+
+	@Autowired
+	private TsbGoodsWmsGoodsJob goodsWmsGoodsJob;
+
+	@Autowired
+	private TsbGoodsWmsGoodsStockJob goodsWmsGoodsStockJob;
+
+	@Autowired
+	private TsbGoodsEpNaverGoods goodsEpNaverGoods;
+
+	@Autowired
+	private TsbGoodsBenefitJob goodsBenefitJob;
+
+	@Autowired
+	private TsbShopGoodsStockJob tsbShopGoodsStockJob;
+
+	@Autowired
+	private TsbSocialGoodsJob socialGoodsJob;
+
+	/**
+	 * 상품 타이틀예약 적용 주기 : 시간배치 - 매시 1분 (소셜과 시간 중복)
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/reserve/titlename/apply")
+	@ResponseBody
+	public String applyReserveTitlename() throws Exception {
+		goodsTnmJob.runById("cron.goods.reserve.titlename.apply");
+		return "OK";
+	}
+
+	/**
+	 * 상품 가격예약 적용 주기 : 시간배치 - 매시 1분 (소셜과 시간 중복)
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/reserve/price/apply")
+	@ResponseBody
+	public String applyReservePrice() throws Exception {
+		goodsPriceJob.runById("cron.goods.reserve.price.apply");
+		return "OK";
+	}
+
+	/**
+	 * 상품 검색어 적용 주기 : 시간배치 - 매시 5분
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/keyword/create")
+	@ResponseBody
+	public String createKeyword() throws Exception {
+		goodsSnmJob.runById("cron.goods.keyword.create");
+		return "OK";
+	}
+
+	/**
+	 * 상품 즉시할인가 생성 : 시간배치 - 매시 2분
+	 *
+	 * @throws Exception
+	 * @author eskim
+	 * @since 2020. 12. 02.
+	 */
+	@GetMapping("/benefit/price/create")
+	@ResponseBody
+	public String createBenefitPrice() throws Exception {
+		goodsBenefitPriceJob.runById("cron.goods.benefit.price.create");
+		return "OK";
+	}
+
+	/**
+	 * 연관상품보기 스코어링 주기 : 일배치 - 매일 2시
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/relgoods/scoring")
+	@ResponseBody
+	public String createRelationGoodsScoring() throws Exception {
+		goodsRelateScoreJob.runById("cron.goods.relgoods.scoring");
+		return "OK";
+	}
+
+	/**
+	 * 전시상품 통계정보 주기 : 일배치 - 매일 1시 5분
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/summary/create")
+	@ResponseBody
+	public String createSummary() throws Exception {
+		goodsSummaryJob.run("cron.goods.summary.create");
+		return "OK";
+	}
+
+	/**
+	 * WMS 실측사이즈 연동 적용 주기 : 일배치 - 03시
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/wms/measurement/receive")
+	@ResponseBody
+	public String receiveWmsMeasurement() throws Exception {
+		goodsWmsMeasurementJob.runById("cron.goods.wms.measurement.receive");
+		return "OK";
+	}
+
+	/**
+	 * WMS 입고상품 연동 적용 주기 : 일배치 - 03시 10분
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/wms/incomelot/receive")
+	@ResponseBody
+	public String receiveWmsIncomelot() throws Exception {
+		goodsWmsIncomelotJob.runById("cron.goods.wms.incomelot.receive");
+		return "OK";
+	}
+
+	/**
+	 * WMS 업체/브랜드 송신 적용 주기 : 일배치 - 03시 12분
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/wms/brandprovider/send")
+	@ResponseBody
+	public String sendWmsBrandprovider() throws Exception {
+		goodsWmsBrandproviderJob.runById("cron.goods.wms.brandprovider.send");
+		return "OK";
+	}
+
+	/**
+	 * WMS 상품정보 송신 적용 주기 : 일배치 - 03시 15분
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/wms/goods/send")
+	@ResponseBody
+	public String sendWmsGoods() throws Exception {
+		goodsWmsGoodsJob.runById("cron.goods.wms.goods.send");
+		return "OK";
+	}
+
+	/**
+	 * WMS 상품 재고 수신 적용 주기 : 시간배치 - 01분
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/wms/stock/receive")
+	@ResponseBody
+	public String receiveWmsStock() throws Exception {
+		goodsWmsGoodsStockJob.runById("cron.goods.wms.stock.receive");
+		return "OK";
+	}
+
+	/**
+	 * 네이버EP 전체상품 생성 주기 : 시간배치 - 01분
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/ep/naver/all/goods/create")
+	@ResponseBody
+	public String createNaverEpAllGoodsCreateJob() throws Exception {
+		goodsEpNaverGoods.runById("cron.goods.ep.naver.all.goods.create");
+		return "OK";
+	}
+
+	/**
+	 * 상품혜택(쿠폰할인, 무료배송, 사은품, 신상) 생성
+	 * @throws Exception
+	 */
+	@GetMapping("/benefit/create")
+	@ResponseBody
+	public String createBenefit() throws Exception {
+		goodsBenefitJob.runById("cron.goods.benefit.create");
+		return "OK";
+	}
+
+	/**
+	 * 매장상품재고 수신
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/shop/stock/receive")
+	@ResponseBody
+	public String receiveShopGoodsStock() throws Exception {
+		tsbShopGoodsStockJob.run("cron.goods.shop.stock.receive");
+		return "OK";
+	}
+
+	/**
+	 * 소셜 상품 적용 : 시간배치 - 매시 00분
+	 *
+	 * @throws Exception
+	 */
+	@GetMapping("/social/price/apply")
+	@ResponseBody
+	public String applySocialPrice() throws Exception {
+		socialGoodsJob.runById("cron.goods.social.price.apply");
+		return "OK";
+	}
+
 }

+ 0 - 23
src/main/java/com/style24/batch/biz/web/TsbMarketingController.java

@@ -1,23 +0,0 @@
-package com.style24.batch.biz.web;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import com.style24.core.support.controller.TscBaseController;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 마케팅 Controller
- * 
- * @author gagamel
- * @since 2021. 5. 24
- */
-@Controller
-@RequestMapping("/goods")
-@CrossOrigin(origins = "${domain.admin}")
-@Slf4j
-public class TsbMarketingController extends TscBaseController {
-
-}

+ 58 - 1
src/main/java/com/style24/batch/biz/web/TsbOrderController.java

@@ -1,9 +1,15 @@
 package com.style24.batch.biz.web;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 
+import com.style24.batch.biz.job.marketing.TsbCartExpirationJob;
+import com.style24.batch.biz.job.order.TsbOrderDepositExpirationJob;
+import com.style24.batch.biz.job.order.TsbOrderGiftExpirationJob;
 import com.style24.core.support.controller.TscBaseController;
 
 import lombok.extern.slf4j.Slf4j;
@@ -15,9 +21,60 @@ import lombok.extern.slf4j.Slf4j;
  * @since 2021. 5. 24
  */
 @Controller
-@RequestMapping("/goods")
+@RequestMapping("/order")
 @CrossOrigin(origins = "${domain.admin}")
 @Slf4j
 public class TsbOrderController extends TscBaseController {
 
+	@Autowired
+	private TsbCartExpirationJob cartExpirationJob;
+
+	@Autowired
+	private TsbOrderDepositExpirationJob orderDepositExpirationJob;
+
+	@Autowired
+	private TsbOrderGiftExpirationJob orderGiftExpirationJob;
+
+	/**
+	 * 장바구니 30일 초과 만료 데이터 삭제
+	 *
+	 * @throws Exception - 예외처리
+	 * @author xodud1202
+	 * @since 2021. 05. 03
+	 */
+	@GetMapping("/cart/deadline/expire")
+	@ResponseBody
+	public String expireCartDeadline() throws Exception {
+		cartExpirationJob.runById("cron.order.cart.deadline.expire");
+		return "OK";
+	}
+
+	/**
+	 * 무통장입금 입금 기한 만료 데이터 취소
+	 *
+	 * @throws Exception - 예외처리
+	 * @author xodud1202
+	 * @since 2021. 05. 03
+	 */
+	@GetMapping("/deposit/deadline/expire")
+	@ResponseBody
+	public String expireDepositDeadline() throws Exception {
+		orderDepositExpirationJob.runById("cron.order.deposit.deadline.expire");
+		return "OK";
+	}
+
+	/**
+	 * 선물하기 배송지 등록 기간 만료 주문 취소
+	 *
+	 * @throws Exception - 예외처리
+	 * @author xodud1202
+	 * @since 2021. 05. 03
+	 */
+	@GetMapping("/gift/deadline/expire")
+	@ResponseBody
+	public String expireGiftDeadline() throws Exception {
+		orderGiftExpirationJob.runById("cron.order.gift.deadline.expire");
+		return "OK";
+	}
+
 }

+ 2 - 2
src/main/java/com/style24/batch/biz/web/TsbStatisticsController.java

@@ -40,7 +40,7 @@ public class TsbStatisticsController extends TscBaseController {
 	@GetMapping("/aflink/inflow/create")
 	@ResponseBody
 	public String createAflinkInflow() throws Exception {
-		inflowStatisticsJob.runById("cron.statistics.inflow");
+		inflowStatisticsJob.runById("cron.statistics.aflink.inflow.create");
 		return "OK";
 	}
 
@@ -54,7 +54,7 @@ public class TsbStatisticsController extends TscBaseController {
 	@GetMapping("/aflink/inflow/yesterday/create")
 	@ResponseBody
 	public String createAflinkInflowYesterday() throws Exception {
-		inflowYesterdayStatisticsJob.runById("cron.statistics.inflow.yesterday");
+		inflowYesterdayStatisticsJob.runById("cron.statistics.aflink.inflow.yesterday.create");
 		return "OK";
 	}
 

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

@@ -11,10 +11,10 @@ public class TsbConstants {
 
 	// 등록자번호
 	public static final Integer REG_NO = 0;
-	
-    public static final String COMPANY_CD_DR = "3"; // 한세드림
-    public static final String COMPANY_CD_MK = "5"; // 한세엠케이(주)
-	   
+
+	public static final String COMPANY_CD_DR = "3"; // 한세드림
+	public static final String COMPANY_CD_MK = "5"; // 한세엠케이(주)
+
 	// 모니터링
 	public enum Monitoring {
 		JOIN_CNT("A001"),			// 회원가입건수

+ 14 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsbCustomer.xml

@@ -683,4 +683,18 @@
 		                   )
 	</select>
 
+	<select id="getComBackNotiTarketList" parameterType="CustomerSearch" resultType="Customer">
+		/* TsbCustomerDao.getComBackNotiTarketList*/
+		SELECT C.CUST_NO
+		     , C.CUST_ID
+		     , C.EMAIL
+		     , C.CELL_PHNNO
+		     , DATEDIFF(NOW(), C.LOGIN_LDT) AS DIFF_LOGIN_LDT
+		FROM   TB_CUSTOMER C
+		WHERE  C.CUST_STAT = 'G104_10'
+		AND    (C.SMS_AGREE_YN = 'Y' OR C.EMAIL_AGREE_YN = 'Y')
+		AND    C.LOGIN_LDT >= DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL  -180 DAY), '%Y%m%d%H%i%S')
+	    AND    C.LOGIN_LDT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL  -90 DAY), '%Y%m%d%H%i%S')
+	</select>
+
 </mapper>

+ 88 - 0
src/main/resources/config/application.yml

@@ -12,3 +12,91 @@ spring:
         job:
             enabled: false
             names: ${job.name:NONE}
+
+# Schedule
+cron:
+    #상품
+    goods:
+        benefit.create: 2 22 2 29 2 ?             #상품 혜택 생성
+        benefit.price.create: 2 22 2 29 2 ?       #상품 즉시할인가 생성
+        ep.naver.all.goods.create: 2 22 2 29 2 ?  #네이버EP 전체상품 생성
+        reserve:
+            titlename.apply: 2 22 2 29 2 ?        #상품 예약타이틀명(=세일링문구) 적용
+            price.apply: 2 22 2 29 2 ?            #상품 예약가격 적용
+        #infants.safe: 2 22 2 29 2 ?
+        relgoods.scoring: 2 22 2 29 2 ?           #연관상품 스코어링
+        keyword.create: 2 22 2 29 2 ?             #상품 검색어 생성
+        summary.create: 2 22 2 29 2 ?             #상품 요약정보 생성
+        social.price.apply : 2 22 2 29 2 ?        #소셜상품의 가격 적용
+        wms:
+            incomelot.receive: 2 22 2 29 2 ?      #WMS 입고상품 수신
+            stock.receive: 2 22 2 29 2 ?          #WMS 상품재고 수신
+            measurement.receive: 2 22 2 29 2 ?    #WMS 실측사이즈 수신
+            brandprovider.send: 2 22 2 29 2 ?     #WMS 업체/브랜드 송신
+            goods.send: 2 22 2 29 2 ?             #WMS 상품정보 송신
+        shop.stock.receive: 2 22 2 29 2 ?         #ERP 매장재고 수신
+
+    # 회원(고객)
+    customer:
+        dormant:
+            create: 2 22 2 29 2 ?              #휴면예정회원 생성
+            transform: 2 22 2 29 2 ?           #휴면회원 처리
+        secede.transform: 2 22 2 29 2 ?        #탈퇴처리
+        privacy.info.notify: 2 22 2 29 2 ?     #개인정보이용내역안내(가입일로부터 1년 시점에 발송)
+        marketing.info.notify: 2 22 2 29 2 ?   #마케팅정보수신동의내역안내(마케팅 정보 수신자에 한해 발송. 가입일로부터 2년 시점에 발송)
+        grade.change: 2 22 2 29 2 ?            #회원등급변경(매월1일)
+        netpathy.mail.sync: 2 22 2 29 2 ?      #넷퍼시메일솔루션에 회원정보 연동(매일 1회)
+        auto.buy.confirm: 2 22 2 29 2 ?        #자동구매확정(예정포인트 지급)
+        birth.coupon.notify: 2 22 2 29 2 ?     #생일쿠폰 다운로드 안내(당월 생일인 회원을 대상으로 해당 월 1일에 발송)
+        comback.coupon.notify: 2 22 2 29 2 ?   #복귀할인쿠폰발급안내(매월 5일)
+        point.expire: 2 22 2 29 2 ?            #포인트 소멸 처리
+        giftcard.expire : 2 22 2 29 2 ?        #상품권 소멸 처리
+        review.register.notify: 2 22 2 29 2 ?  #상품평등록안내 발송(일배치)
+
+    # 전시
+    display:
+        category.refresh: 2 22 2 29 2 ?        #카테고리 갱신
+        category.stock.create: 2 22 2 29 2 ?   #카테고리별 재고 생성
+        category.filter.create: 2 22 2 29 2 ?  #카테고리별 검색필터 생성
+
+    # 주문
+    order:
+        cart.deadline.expire: 2 22 2 29 2 ?     #만료기간 지난 장바구니 삭제
+        deposit.waiting.notify: 2 22 2 29 2 ?   #무통장(가상계좌) 입금대기 알림
+        deposit.deadline.expire: 2 22 2 29 2 ?  #무통장입금 입금기한 만료건 주문 취소
+        gift.deadline.expire: 2 22 2 29 2 ?     #선물하기 배송지 등록기한 만료건 주문 취소
+        pg.kcp.settle.receive: 2 22 2 29 2 ?    #KCP PG 정산 데이터 수신
+                                                #네이버페이주문형 배치(10가지)
+
+    #배송
+    delivery:
+        shot.deliveryzone.refresh: 2 22 2 29 2 ?       #총알배송 권역정보 갱신(매일 11시)
+        loc.assign: 2 22 2 29 2 ?                      #출고처 지정 및 배송(출고) 지시
+        wms:
+            outgoing.exception.receive: 2 22 2 29 2 ?  #WMS 출고예외 수신
+            outgoing.result.receive: 2 22 2 29 2 ?     #WMS 출고결과 수신
+            invoice.receive: 2 22 2 29 2 ?             #WMS 운송장번호 수신
+        sweettracker.invoice.retrieve: 2 22 2 29 2 ?   #스윗트래커 송장상태 조회
+        auto.soldout.cancel: 2 22 2 29 2 ?             #자동품절취소
+
+    #회수
+    withdraw:
+        wms:
+            request: 2 22 2 29 2 ?                       #WMS 회수요청
+            ingoing:
+                exception.receive: 2 22 2 29 2 ?         #WMS 회수입고예외 수신
+                exception.result.receive: 2 22 2 29 2 ?  #WMS 회수입고예외 결과 수신
+                result.receive: 2 22 2 29 2 ?            #WMS 회수입고결과 수신
+        cj:
+            invoice.receive: 2 22 2 29 2 ?               #CJ 회수송장번호 수신
+            status.receive: 2 22 2 29 2 ?                #CJ 회수상태 수신
+
+    #통계
+    statistics:
+        aflink.inflow.create: 2 22 2 29 2 ?            #유입통계
+        aflink.inflow.yesterday.create: 2 22 2 29 2 ?  #어제일자유입통계
+
+    #모니터링
+    monitoring:
+        dayJob: 2 22 2 29 2 ?   #일별 모니터링
+        hourJob: 2 22 2 29 2 ?  #시간별 모니터링