瀏覽代碼

ST24PRJ-682 [결함][batch] 상품권유효기간만료배치 확인요청

card007 4 年之前
父節點
當前提交
1e485bd5c7

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

@@ -46,4 +46,24 @@ public interface TsbGiftcardDao {
 	 * @since  2021. 05. 27
 	 */
 	Collection<GiftCard> getSendGiftcardExpectList(GiftCard giftcard);
+
+	/**
+	 * 고객상품권 만료 데이터 생성
+	 *
+	 * @param Giftcard
+	 * @return int
+	 * @author card007
+	 * @since  2021. 12. 23
+	 */
+	int createExpireCustGiftcard(GiftCard giftcard);
+
+	/**
+	 * 고객상품권 만료 처리
+	 *
+	 * @param Giftcard
+	 * @return int
+	 * @author card007
+	 * @since  2021. 12. 24
+	 */
+	int updateExpireCustGiftcard(GiftCard giftcard);
 }

+ 1 - 2
src/main/java/com/style24/batch/biz/job/marketing/TsbExpireGiftcardJob.java

@@ -10,7 +10,6 @@ import com.style24.batch.biz.job.TsbAbstractJob;
 import com.style24.batch.biz.service.TsbGiftcardService;
 import com.style24.batch.support.env.TsbConstants;
 import com.style24.persistence.domain.GiftCard;
-import com.style24.persistence.domain.Point;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -37,7 +36,7 @@ public class TsbExpireGiftcardJob extends TsbAbstractJob<Collection<GiftCard>, G
 				giftcard.setRegNo(TsbConstants.REG_NO);
 				giftcard.setUpdNo(TsbConstants.REG_NO);
 				giftcard.setGfcdAmt(giftcard.getRmGfcdAmt()* -1);
-				giftcardService.saveExpireGiftcardHst(giftcard);
+				giftcardService.expireCustGiftcard(giftcard);
 				succCnt++;
 			} catch (Exception e) {
 				failCnt++;

+ 25 - 4
src/main/java/com/style24/batch/biz/service/TsbGiftcardService.java

@@ -1,13 +1,15 @@
 package com.style24.batch.biz.service;
 
-import com.style24.batch.biz.dao.TsbGiftcardDao;
-import com.style24.persistence.domain.GiftCard;
-import lombok.extern.slf4j.Slf4j;
+import java.util.Collection;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Collection;
+import com.style24.batch.biz.dao.TsbGiftcardDao;
+import com.style24.persistence.domain.GiftCard;
+
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * 상품권 Service
@@ -61,4 +63,23 @@ public class TsbGiftcardService {
 	public Collection<GiftCard> getSendGiftcardExpectList(GiftCard giftcard){
 		return giftcardDao.getSendGiftcardExpectList(giftcard);
 	}
+
+	/**
+	 * 고객상품권 만료 처리
+	 * 
+	 * @param giftcard
+	 * @aythor card007
+	 * @since 2021. 12. 24
+	 */
+	@Transactional("shopTxnManager")
+	public void expireCustGiftcard(GiftCard giftcard) {
+		// 고객상품권 만료 이력 생성
+		giftcardDao.saveExpireGiftcardHst(giftcard);
+
+		// 고객상품권 만료 정보 백업
+		giftcardDao.createExpireCustGiftcard(giftcard);
+
+		// 고객상품권 만료 처리
+		giftcardDao.updateExpireCustGiftcard(giftcard);
+	}
 }

+ 3 - 4
src/main/java/com/style24/batch/biz/task/TsbCustomerTask.java

@@ -1,9 +1,5 @@
 package com.style24.batch.biz.task;
 
-
-import com.style24.batch.biz.job.marketing.TsbCombackCouponNoticeJob;
-import com.style24.batch.biz.job.marketing.TsbExpectCouponJob;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -18,6 +14,8 @@ 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.TsbCombackCouponNoticeJob;
+import com.style24.batch.biz.job.marketing.TsbExpectCouponJob;
 import com.style24.batch.biz.job.marketing.TsbExpectGiftcardJob;
 import com.style24.batch.biz.job.marketing.TsbExpectPointJob;
 import com.style24.batch.biz.job.marketing.TsbExpireGiftcardJob;
@@ -247,6 +245,7 @@ public class TsbCustomerTask {
 	 * @since 2021. 05. 20
 	 */
 	@Scheduled(cron = "${cron.customer.giftcard.expire}")
+	// @Scheduled(fixedDelay = 3500000)
 	@Async
 	public void giftcardExpireJob() throws Exception {
 		expireGiftcardJob.runById("cron.customer.giftcard.expire");

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

@@ -56,4 +56,46 @@
 		AND CG.RM_GFCD_AMT > 0
 		AND C.CUST_STAT = 'G104_10'
 	</select>
+
+	<!-- 고객상품권 만료 데이터 생성 -->
+	<insert id="createExpireCustGiftcard" parameterType="Giftcard">
+		/* TsbGiftcardDao.createExpireCustGiftcard */
+		INSERT INTO TB_CUST_GIFTCARD_EXPIRE (
+		       CUST_GFCD_SQ
+		     , CUST_NO
+		     , GFCD_NO
+		     , GFCD_NM
+		     , CHG_GFCD_AMT
+		     , US_GFCD_AMT
+		     , RM_GFCD_AMT
+		     , USE_ST_DATE
+		     , USE_EXP_DATE
+		     , REG_NO
+		     , REG_DT
+		) 
+		SELECT CUST_GFCD_SQ
+			 , CUST_NO
+			 , GFCD_NO
+			 , GFCD_NM
+			 , CHG_GFCD_AMT
+			 , US_GFCD_AMT
+			 , RM_GFCD_AMT
+			 , USE_ST_DATE
+			 , USE_EXP_DATE
+		     , #{regNo}
+		     , NOW()
+		  FROM TB_CUST_GIFTCARD
+		 WHERE CUST_GFCD_SQ = #{custGfcdSq}
+	</insert>
+
+	<!-- 고객상품권 만료 처리 -->
+	<update id="updateExpireCustGiftcard" parameterType="Giftcard">
+		/* TsbGiftcardDao.updateExpireCustGiftcard */
+		UPDATE TB_CUST_GIFTCARD
+		   SET US_GFCD_AMT = CHG_GFCD_AMT
+		     , RM_GFCD_AMT = 0
+		     , UPD_NO = #{updNo}
+		     , UPD_DT = NOW()
+		 WHERE CUST_GFCD_SQ = #{custGfcdSq}
+	</update>
 </mapper>