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

Merge branch 'develop' into eskim

eskim 5 лет назад
Родитель
Сommit
38e2b051eb

+ 1 - 0
.gitignore

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

+ 13 - 2
src/main/java/com/style24/batch/biz/dao/TsbCustomerDao.java

@@ -1,6 +1,7 @@
 package com.style24.batch.biz.dao;
 
 import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.CustCoupon;
 import com.style24.persistence.domain.CustGrade;
 import com.style24.persistence.domain.Customer;
 import com.style24.persistence.domain.CustomerSearch;
@@ -220,9 +221,19 @@ public interface TsbCustomerDao {
 	 * 생일자대상 목록
 	 *
 	 * @param  customerSearch - 사이트 코드
-	 * @return Collection<Customer> - 목록
+	 * @return Collection<CustCoupon> - 목록
 	 * @author jsshin
 	 * @since  2021. 05. 10
 	 */
-	Collection<Customer> getBirthDayTargetList(CustomerSearch customerSearch);
+	Collection<CustCoupon> getBirthDayTargetList(CustomerSearch customerSearch);
+
+	/**
+	 * 생일자대상 목록
+	 *
+	 * @param  customerSearch - 사이트 코드, 시작일, 종료일
+	 * @return Collection<Customer> - 목록
+	 * @author jsshin
+	 * @since  2021. 05. 27
+	 */
+	Collection<Customer>getComBackNotiTarketList(CustomerSearch customerSearch);
 }

+ 18 - 10
src/main/java/com/style24/batch/biz/job/TsbAbstractJob.java

@@ -117,21 +117,29 @@ public abstract class TsbAbstractJob<I, O, R> {
 			batchLogSq = batchService.createBatchLog(batchId);
 		}
 
-		this.printStart();
+		try {
+			this.printStart();
 
-		readItem = this.read();
+			readItem = this.read();
 
-		if (readItem != null) {
-			convertedItem = this.process(readItem);
+			if (readItem != null) {
+				convertedItem = this.process(readItem);
 
-			resultItem = this.write(convertedItem);
+				resultItem = this.write(convertedItem);
 
-			this.notify(resultItem);
-		} else { // 배치 처리할 대상 데이터가 없으면 종료
-			log.info("처리할 데이터가 없습니다.\n");
-		}
+				this.notify(resultItem);
+			} else { // 배치 처리할 대상 데이터가 없으면 종료
+				log.info("처리할 데이터가 없습니다.\n");
+			}
 
-		this.printEnd();
+			this.printEnd();
+
+		} catch (Exception e) {
+			if (StringUtils.isNotBlank(batchId)) {
+				// 배치로그 종료 처리
+				batchService.updateBatchLog(batchLogSq, batchId);
+			}
+		}
 	}
 
 	/**

+ 8 - 7
src/main/java/com/style24/batch/biz/job/marketing/TsbBirthdayCouponNoticeJob.java

@@ -5,6 +5,7 @@ import com.style24.batch.biz.job.TsbAbstractJob;
 import com.style24.batch.biz.service.TsbCustomerService;
 import com.style24.batch.support.env.TsbConstants;
 import com.style24.core.support.env.TscConstants;
+import com.style24.persistence.domain.CustCoupon;
 import com.style24.persistence.domain.Customer;
 import com.style24.persistence.domain.CustomerSearch;
 import lombok.extern.slf4j.Slf4j;
@@ -21,7 +22,7 @@ import java.util.Collection;
  */
 @Component
 @Slf4j
-public class TsbBirthdayCouponNoticeJob extends TsbAbstractJob<Collection<Customer>, GagaMap, GagaMap> {
+public class TsbBirthdayCouponNoticeJob extends TsbAbstractJob<Collection<CustCoupon>, GagaMap, GagaMap> {
 
 	@Autowired
 	TsbCustomerService customerService;
@@ -30,20 +31,20 @@ public class TsbBirthdayCouponNoticeJob extends TsbAbstractJob<Collection<Custom
 	private int failCnt = 0;
 
 	@Override
-	public Collection<Customer> read() throws Exception {
+	public Collection<CustCoupon> read() throws Exception {
 		CustomerSearch customerSearch = new CustomerSearch();
 		customerSearch.setSiteCd(TscConstants.Site.STYLE24.value());
 		return customerService.getBirthDayTargetList(customerSearch);
 	}
 
 	@Override
-	public GagaMap process(Collection<Customer> readItem) throws Exception {
+	public GagaMap process(Collection<CustCoupon> readItem) throws Exception {
 
-		for (Customer customer: readItem) {
+		for (CustCoupon CustCoupon: readItem) {
 			try {
-				customer.setRegNo(TsbConstants.REG_NO);
-				customer.setUpdNo(TsbConstants.REG_NO);
-				customerService.sendBirthDayCouponNotice(customer);
+				CustCoupon.setRegNo(TsbConstants.REG_NO);
+				CustCoupon.setUpdNo(TsbConstants.REG_NO);
+				customerService.sendBirthDayCouponNotice(CustCoupon);
 				succCnt++;
 			} catch (Exception e) {
 				failCnt++;

+ 31 - 0
src/main/java/com/style24/batch/biz/job/marketing/TsbCombackCouponNoticeJob.java

@@ -0,0 +1,31 @@
+package com.style24.batch.biz.job.marketing;
+
+import com.gagaframework.web.parameter.GagaMap;
+import com.style24.batch.biz.job.TsbAbstractJob;
+import com.style24.persistence.domain.Customer;
+
+import java.util.Collection;
+
+
+public class TsbCombackCouponNoticeJob extends TsbAbstractJob<Collection<Customer>, GagaMap, GagaMap> {
+
+	@Override
+	public Collection<Customer> read() throws Exception {
+		return null;
+	}
+
+	@Override
+	public GagaMap process(Collection<Customer> readItem) throws Exception {
+		return null;
+	}
+
+	@Override
+	public GagaMap write(GagaMap convertedItem) throws Exception {
+		return null;
+	}
+
+	@Override
+	public void notify(GagaMap resultItem) throws Exception {
+
+	}
+}

+ 11 - 5
src/main/java/com/style24/batch/biz/service/TsbCustomerService.java

@@ -2,6 +2,7 @@ package com.style24.batch.biz.service;
 
 import java.util.Collection;
 
+import com.style24.persistence.domain.CustCoupon;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -377,7 +378,7 @@ public class TsbCustomerService {
 	 * @author jsshin
 	 * @since  2021. 05. 10
 	 */
-	public Collection<Customer> getBirthDayTargetList(CustomerSearch customerSearch) {
+	public Collection<CustCoupon> getBirthDayTargetList(CustomerSearch customerSearch) {
 		return customerDao.getBirthDayTargetList(customerSearch);
 	}
 
@@ -385,15 +386,20 @@ public class TsbCustomerService {
 	/**
 	 * 생일쿠폰 안내
 	 *
-	 * @param customer - 사이트 코드
+	 * @param custCoupon - 쿠폰정보, 고객정보
 	 * @author jsshin
 	 * @since  2021. 05. 10
 	 */
 	@Transactional("shopTxnManager")
-	public void sendBirthDayCouponNotice(Customer customer) {
+	public void sendBirthDayCouponNotice(CustCoupon custCoupon) {
 		// TODO: 이메일 발송 모듈 붙어야 함 2021.05.10 jsshin
+
 		// 이메일 발송
-		if (StringUtils.isNotBlank(customer.getEmail())) {
+		if (StringUtils.isNotBlank(custCoupon.getEmail()) && "Y".equals(custCoupon.getEmailAgreeYn())) {
+
+		}
+		// 카카오 알림톡
+		if (StringUtils.isNotBlank(custCoupon.getCellPhnno()) && "Y".equals(custCoupon.getSmsAgreeYn())) {
 
 		}
 		CustContactHst custContactHst = new CustContactHst();
@@ -401,7 +407,7 @@ public class TsbCustomerService {
 		custContactHst.setContactMethod(TscConstants.ContactMethod.EMAIL.value());
 		custContactHst.setContactContents("생일쿠폰 다운로드 안내");
 		custContactHst.setSenderNo(TsbConstants.REG_NO);
-		custContactHst.setReceiverNo(customer.getCustNo());
+		custContactHst.setReceiverNo(custCoupon.getCustNo());
 		custContactHst.setRegNo(TsbConstants.REG_NO);
 		//접촉 이력 저장
 		coreCustomerService.createCustomerContactHistory(custContactHst);

+ 2 - 0
src/main/java/com/style24/persistence/domain/CustomerSearch.java

@@ -17,4 +17,6 @@ public class CustomerSearch extends TscBaseDomain {
 	private int dormantConversionDay;		// 휴면회원전환일
 	private String siteCd;
 	private String encodedCustNm;			// 암호화된 고객명
+	private int stDay;
+	private int edDay;
 }

+ 107 - 10
src/main/java/com/style24/persistence/mybatis/shop/TsbCustomer.xml

@@ -21,7 +21,7 @@
 		                    SELECT 1
 		                    FROM  TB_CUST_CONTACT_HST CCH
 		                    WHERE CCH.RECEIVER_NO = C.CUST_NO
-		                    AND   CCH.CONTACT_TYPE = 'G054_216' -- 휴면회원 선정 안내
+		                    AND   CCH.CONTACT_TYPE = 'G054_207' /*회원-휴면계정전환예정*/
 		                    AND   CCH.REG_DT > DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL - 4 DAY), '%Y-%m-%d')
 		                   )
 	</select>
@@ -267,7 +267,7 @@
 		WHERE CUST_NO = #{custNo}
 	</delete>
 
-	<!--개인정보 이용내역 안내(가입일로부터 1년 시점에 발송) 대상-->
+	<!--개인정보 이용내역 안내(년 1회) 대상-->
 	<select id="getPrivacyPolicyNoticeTargetList" parameterType="CustomerSearch" resultType="Customer">
 		/*TsbCustomerDao.getPrivacyPolicyNoticeTargetList*/
 		SELECT  C.CUST_NO
@@ -278,12 +278,10 @@
 		      , DATEDIFF(NOW(), C.JOIN_DT) AS DIFF_JOIN_DT
 		FROM    TB_CUSTOMER C
 		WHERE   C.CUST_STAT = 'G104_10' -- 활동회원
-		AND     C.JOIN_DT >= DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -365  DAY), '%Y%m%d%H%i%S')
-		AND     C.JOIN_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -364 DAY), '%Y%m%d%H%i%S')
 		AND     C.SITE_CD = #{siteCd}
 	</select>
 
-	<!--마케팅 정보 수신자 / 가입일로부터 2년 시점에 발송 대상-->
+	<!--마케팅 정보 수신자 / 가입일로부터 2년 마다-->
 	<select id="getMarketingAgreeNoticeTargetList" parameterType="CustomerSearch" resultType="Customer">
 		/*TsbCustomerDao.getPrivacyPolicyNoticeTargetList*/
 		SELECT  C.CUST_NO
@@ -298,9 +296,7 @@
 		      , C.MK_AGREE_DT
 		FROM    TB_CUSTOMER C
 		WHERE   C.CUST_STAT = 'G104_10' -- 활동회원
-		AND     C.JOIN_DT >= DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL  -365*2  DAY), '%Y%m%d%H%i%S')
-		AND     C.JOIN_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -364*2 DAY), '%Y%m%d%H%i%S')
-		AND    (C.SMS_AGREE_YN = 'Y' OR C.EMAIL_AGREE_YN = 'Y' OR C.APP_AGREE_YN = 'Y' OR C.MK_AGREE_YN = 'Y')
+		AND    (C.SMS_AGREE_YN = 'Y' OR C.EMAIL_AGREE_YN = 'Y' OR C.MK_AGREE_YN = 'Y')
 		AND     C.SITE_CD = #{siteCd}
 	</select>
 
@@ -587,20 +583,121 @@
 	</insert>
 
 	<!--생일쿠폰 다운로드 안내 대상자-->
-	<select id="getBirthDayTargetList" parameterType="CustomerSearch" resultType="Customer">
+	<select id="getBirthDayTargetList" parameterType="CustomerSearch" resultType="CustCoupon">
 		/*TsbCustomerDao.getBirthDayTargetList*/
+		WITH TAB_COUPON_REFVAL1 AS (
+		    SELECT CR.CPN_ID
+		         , CR.CPN_TARGET
+		         , CASE WHEN CR.CPN_TARGET = 'G260_10' /*상품*/ THEN (SELECT GOODS_NM FROM TB_GOODS WHERE GOODS_CD = CR.REF_VAL AND GOODS_STAT = 'G008_90')
+		                WHEN CR.CPN_TARGET = 'G260_11' /*카테고리*/ THEN
+		                    CASE WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL),0) > 0
+		                              THEN (SELECT CATE1_NM FROM TB_CATE_4SRCH WHERE CATE1_NO = CR.REF_VAL LIMIT 1)
+		                         WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL),0) > 0
+		                              THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE2_NO = CR.REF_VAL LIMIT 1)
+		                         WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE3_NO = CR.REF_VAL LIMIT 1)
+		                         WHEN IFNULL((SELECT COUNT(1) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL),0) > 0 THEN (SELECT CONCAT(CATE1_NM,' > ',CATE2_NM) FROM TB_CATE_4SRCH WHERE CATE4_NO = CR.REF_VAL LIMIT 1)
+		                    END
+		                WHEN CR.CPN_TARGET = 'G260_12' /*브랜드*/ THEN (SELECT BRAND_KNM FROM TB_BRAND WHERE BRAND_CD = CR.REF_VAL AND USE_YN = 'Y')
+		                WHEN CR.CPN_TARGET = 'G260_13' /*업체*/ THEN (SELECT SUPPLY_COMP_NM FROM TB_SUPPLY_COMPANY WHERE SUPPLY_COMP_CD = CR.REF_VAL AND USE_YN = 'Y' AND SUPPLY_STAT = 'G010_30')
+		           END AS REF_VAL
+		         , RANK() OVER(PARTITION BY CR.CPN_ID, CR.CPN_TARGET ORDER BY REF_VAL) AS RK
+		    FROM   TB_COUPON_REFVAL CR
+		    WHERE  CR.CPN_TARGET != 'G260_14' /*제외상품아닌넘*/
+		)
+		, TAB_COUPON_REFVAL2 AS (
+		    SELECT CPN_ID
+		         , CPN_TARGET
+		         , GROUP_CONCAT(REF_VAL ORDER BY RK ASC SEPARATOR '/' ) AS REF_VAL
+		         , (SELECT COUNT(*)
+		            FROM   TAB_COUPON_REFVAL1
+		            WHERE  CPN_ID = CR.CPN_ID
+		            AND    CPN_TARGET = CR.CPN_TARGET)                  AS CNT
+		    FROM   TAB_COUPON_REFVAL1 CR
+		    WHERE  1 = 1
+		    AND    (
+		            (CPN_TARGET != 'G260_12' AND RK = 1) /*브랜드 외는 1개만 노출*/
+		            OR
+		            (CPN_TARGET = 'G260_12' AND RK <![CDATA[<=]]> 2) /*브랜드만 2개 노출*/
+		           )
+		    GROUP  BY CPN_ID, CPN_TARGET
+		)
 		SELECT C.CUST_NO
-		     , C.CUST_ID
 		     , C.EMAIL
+		     , C.CELL_PHNNO
+		     , C.SMS_AGREE_YN
+		     , C.EMAIL_AGREE_YN
 		     , BB.BIRTH_YMD
+		     , C.CUST_GRADE
+		     , DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 1 MONTH)+ INTERVAL 1 DAY, '%Y%m%d%H%i%S') AS AVAIL_STDT
+		     , DATE_FORMAT(CONCAT(LAST_DAY(NOW()), ' 23:59:59'), '%Y%m%d%H%i%S')               AS AVAIL_EDDT
+		     , CO.CPN_ID
+		     , CO.END_ALIM_YN
+		     , CO.DC_PVAL                                                                      AS DC_VAL
+		     , CASE WHEN CO.DC_WAY = 'G240_10' THEN '원'
+		            ELSE '%'
+		       END                                                                             AS DC_WAY
+		     , CO.MAX_DC_AMT
+		     , CONCAT(CASE WHEN CO.BUY_LIMIT_AMT = 0 THEN ''
+		                    ELSE CONCAT(FORMAT(CO.BUY_LIMIT_AMT , 0),'원 이상 구매 시 ')
+		              END
+		             ,CASE WHEN CO.MAX_DC_AMT = 0 THEN ''
+		                   ELSE CONCAT('최대 ',FORMAT(CO.MAX_DC_AMT , 0),'원 할인')
+		              END
+		             )                                                                     AS USE_CONDITION
+		     , CASE WHEN CO.CUST_PUB_LIMIT_QTY = 0 THEN ''
+		            ELSE CONCAT('1인당 최대',CO.CUST_PUB_LIMIT_QTY,'매')
+		       END                                                                         AS ISSUE_CONDITION
+		     , (
+		        SELECT COUNT(1)
+		        FROM   TB_CUST_COUPON CCP
+		        WHERE  CCP.CUST_NO = C.CUST_NO
+		        AND    CCP.CPN_ID = CO.CPN_ID
+		       )                                                                            AS CPN_CNT
 		FROM   TB_CUSTOMER C
 		INNER JOIN
 		       TB_BATCH_BIRTH BB
 		ON     C.CUST_NO = BB.CUST_NO
+		INNER JOIN
+		       TB_CUST_GRADE_POLICY CGP
+		ON     C.CUST_GRADE = CGP.GRADE_CD
+		AND    CGP.USE_YN = 'Y'
+		INNER JOIN
+		       TB_COUPON CO
+		ON     CGP.GRADE_CPN_ID3 = CO.CPN_ID
+		AND    CO.CPN_STAT = 'G232_11'
+		INNER  JOIN
+		       TAB_COUPON_REFVAL2 CR
+		ON     CO.CPN_ID = CR.CPN_ID
 		WHERE  C.CUST_STAT = 'G104_10'
 		AND    C.SITE_CD = #{siteCd}
+		AND    (C.SMS_AGREE_YN = 'Y' OR C.EMAIL_AGREE_YN = 'Y')
 		AND    SUBSTR(BB.BIRTH_YMD, 5,8) > DATE_FORMAT(DATE_ADD(LAST_DAY(NOW()), INTERVAL -1 MONTH ), '%m%d')
 		AND    SUBSTR(BB.BIRTH_YMD, 5,8) <![CDATA[<]]> DATE_FORMAT(DATE_ADD(LAST_DAY(NOW()), INTERVAL 1 DAY), '%m%d')
+		AND    NOT EXISTS (
+		                   SELECT 1
+		                   FROM   TB_CUST_CONTACT_HST CCH
+		                   WHERE  CCH.RECEIVER_NO = C.CUST_NO
+		                   AND    CCH.SEND_DT > DATE_FORMAT(DATE_ADD(LAST_DAY(NOW()), INTERVAL -1 MONTH ), '%Y%m%d')
+		                   AND    CCH.SEND_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(LAST_DAY(NOW()), INTERVAL 1 DAY), '%Y%m%d')
+		                   AND    CCH.CONTACT_TYPE = 'G054_601' /*생일쿠폰 다운로드 안내*/
+		                   )
+	</select>
+
+	<!--휴면/미접속자 대상 목록-->
+	<select id="getComBackNotiTarketList" parameterType="CustomerSearch" resultType="Customer">
+		/* TsbCustomerDao.getComBackNotiTarketList*/
+		SELECT C.CUST_NO
+		     , C.CUST_ID
+		     , C.EMAIL
+		     , C.CELL_PHNNO
+		     , C.SMS_AGREE_YN
+		     , C.EMAIL_AGREE_YN
+		     , 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 -#{stDay} DAY), '%Y%m%d%H%i%S')
+	    AND    C.LOGIN_LDT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -#{edDay} + 1 DAY), '%Y%m%d%H%i%S')
 	</select>
 
 </mapper>

+ 2 - 2
src/main/java/com/style24/persistence/mybatis/shop/TsbPoint.xml

@@ -21,7 +21,7 @@
 		                         SELECT OD.ORD_DTL_NO
 		                         FROM   TB_ORDER_DETAIL OD
 		                         WHERE  OD.ORD_DTL_STAT = 'G013_60'
-		                         AND    OD.DELV_EDDT >= DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL - #{autoBuyConfirmDays} -1 DAY), '%Y%m%d%H%i%S')
+		                         AND    DATEDIFF(NOW(), OD.DELV_EDDT) > #{autoBuyConfirmDays}
 		                         AND    NOT EXISTS (
 		                                            SELECT 1
 		                                            FROM  TB_ORDER_CHANGE OC
@@ -34,7 +34,7 @@
 			                                       )
 		                         )
 		GROUP BY CPH.ORD_NO, CPH.ORD_DTL_NO , CPH.CUST_NO
-		HAVING SUM(PNT_AMT) > 0
+		HAVING SUM(PNT_AMT) >= 0
 	</select>
 	
 	<select id="getExpirePointList" parameterType="Point" resultType="Point">

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

@@ -64,3 +64,86 @@ sweet:
          # url: http://trace-api.sweettracker.net/add_invoice # 운영
           domain:
                  front: http://ts5000.ipdisk.co.kr
+
+
+# Schedule
+cron:
+    #모니터링
+    monitoring:
+        dayJob: 2 22 2 29 2 ?       #일별 모니터링
+        hourJob: 2 22 2 29 2 ?      #시간별 모니터링
+        
+    #상품
+    goods:
+        benefit: 2 22 2 29 2 ?              #상품혜택 생성
+        benefit.price: 2 22 2 29 2 ?        #상품 즉시할인가 생성
+        ep.naver.goods: 2 22 2 29 2 ?       #네이버 EP 생성
+        #infants.safe: 2 22 2 29 2 ?
+        price.reserve: 2 22 2 29 2 ?        #상품가격 예약건 적용
+        relate.score: 2 22 2 29 2 ?         #연관상품보기 스코어링
+        search.keyword: 2 22 2 29 2 ?       #상품 검색어 생성
+        summary: 2 22 2 29 2 ?              #상품 요약정보 생성
+        titlename.reserve: 2 22 2 29 2 ?    #상품타이틀명(=세일링문구) 예약건 적용
+        wms:
+            measurement: 2 22 2 29 2 ?      #WMS 실측사이즈 연동
+            incomelot: 2 22 2 29 2 ?        #WMS 입고상품 연동
+            brandprovider: 2 22 2 29 2 ?    #WMS 업체/브랜드 송신
+            goods: 2 22 2 29 2 ?            #WMS 상품정보 송신
+            goods.stock: 2 22 2 29 2 ?      #WMS 상품재고 수신
+        
+    # 소셜
+    social:
+         socialGoodsJob : 2 22 2 29 2 ?     #소셜 상품 적용
+    
+    # 통계
+    statistics:
+        inflow: 2 22 2 29 2 ?               #유입통계
+        inflow.yesterday: 2 22 2 29 2 ?     #어제일자유입통계
+
+    # 물류/배송
+    delivery:
+        tsbDailyDeliveryZoneJob: 2 22 2 29 2 ?      # 총알배송 권역정보 갱신 (매일 11시)
+        tsbDeliveryOrderJob: 2 22 2 29 2 ?          # 출고처 지정 및 배송(출고)지시
+        tsbWithdrawExcRcvJob: 2 22 2 29 2 ?         # WMS 회수입고예외 수신
+        tsbWithdrawExcRsltJob: 2 22 2 29 2 ?        # WMS 회수입고예외 결과
+        tsbDeliveryExcRcvJob: 2 22 2 29 2 ?         # WMS 출고예외 수신
+        tsbDeliveryOrderRsltJob: 2 22 2 29 2 ?      # WMS 출고결과 수신
+        tsbWithdrawRsltJob: 2 22 2 29 2 ?           # WMS 회수입고결과 수신
+        tsbInvoiceNoRcvJob: 2 22 2 29 2 ?           # WMS 운송장번호 수신
+        tsbShopGoodsStockJob: 2 22 2 29 2 ?         # ERP 매장재고 수신
+        tsbWithdrawRequestJob: 2 22 2 29 2 ?        # WMS 회수요청
+        tsbCjWithdrawInvoiceJob: 2 22 2 29 2 ?      # CJ 회수송장번호 수신
+        tsbCjWithdrawInvoiceStatJob: 2 22 2 29 2 ?  # CJ 회수상태 수신
+        tsbSweetTrackerJob: 2 22 2 29 2 ?           # 스윗트래커 송장상태조회
+        tsbSoldoutCancelJob: 2 22 2 29 2 ?          # 품절취소
+
+    # 회원(고객)
+    customer:
+        dormant.schedule : 2 22 2 29 2 ?            # 휴면예정 고객 메일발송
+        dormant.transform : 2 22 2 29 2 ?           # 휴면처리
+        secede.process : 2 22 2 29 2 ?              # 탈퇴처리
+        privacy.policy.notice : 2 22 2 29 2 ?       # 개인정보 이용내역 안내(가입일로부터 1년 시점에 발송)
+        marketing.agreement.notice : 2 22 2 29 2 ?  # 마케팅 정보 수신동의 내역 안내(마케팅 정보 수신자에 한해 발송. 가입일로부터 2년 시점에 발송)
+        grade.change : 2 22 2 29 2 ?                # 등급변경(매월1일)
+        netpathy.sync : 2 22 2 29 2 ?               # 넷퍼시메일솔루션에 회원정보 연동 (매일 1회)
+
+    # 전시
+    display:
+        category.refresh: 2 22 2 29 2 ?         #카테고리 갱신
+        category.stock : 2 22 2 29 2 ?          #카테고리별 재고 생성
+        category.filter: 2 22 2 29 2 ?          #카테고리별 검색필터 생성
+
+    # 마케팅
+    marketing:
+        auto.buy.confirm : 2 22 2 29 2 ?        # 자동구매확정 예정포인트 지급
+        birthday.coupon.notice : 2 22 2 29 2 ?  # 생일쿠폰 다운로드 안내(매월 1일)
+        comback.coupon.notice : 2 22 2 29 2 ?   # 복귀할인쿠폰발급안내(매월 5일)
+        expire.point : 2 22 2 29 2 ?            # 포인트 소멸
+        cart.expiration : 2 22 2 29 2 ?         # 만료기간 지난 장바구니 삭제
+        review.guide: 2 22 2 29 2 ?             # 상품평등록안내 발송 (일배치)
+        expire.giftcard : 2 22 2 29 2 ?         # 포인트 소멸
+
+    # 주문
+    order:
+        deposit.expiration : 2 22 2 29 2 ?      # 무통장입금 입금기한 만료 주문 취소
+        gift.expiration : 2 22 2 29 2 ?         # 선물하기 배송지 등록 기간 만료 주문 취소

+ 2 - 2
src/main/resources/config/application-style.yml

@@ -145,8 +145,8 @@ cron:
     # 마케팅
     marketing:
         auto.buy.confirm : 2 22 2 29 2 ?        # 자동구매확정 예정포인트 지급
-        birthday.coupon.notice : 2 22 2 29 2 ?  # 생일쿠폰 다운로드 안내(당월 생일인 회원을 대상으로 해당 월 1일에 발송)(해야함)
-        comback.coupon.notice : 2 22 2 29 2 ?   # 복귀할인쿠폰발급안내(매월 1일)(해야함)
+        birthday.coupon.notice : 2 22 2 29 2 ?  # 생일쿠폰 다운로드 안내(매월 1일)
+        comback.coupon.notice : 2 22 2 29 2 ?   # 복귀할인쿠폰발급안내(매월 5일)
         expire.point : 2 22 2 29 2 ?            # 포인트 소멸
         cart.expiration : 2 22 2 29 2 ?         # 만료기간 지난 장바구니 삭제