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

Merge branch 'develop' of http://112.172.147.34:4936/style24/style24.batch.git into develop

eskim 5 лет назад
Родитель
Сommit
7b121b9440

+ 33 - 0
src/main/java/com/style24/batch/biz/dao/TsbPointDao.java

@@ -2,6 +2,9 @@ package com.style24.batch.biz.dao;
 
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.Point;
+import com.style24.persistence.domain.Social;
+
+import org.springframework.dao.DataAccessException;
 import org.springframework.stereotype.Repository;
 
 import java.util.Collection;
@@ -25,5 +28,35 @@ public interface TsbPointDao {
 	 * @since  2021. 04. 23
 	 */
 	Collection<Point> getAutoBuyConfirmList(Point point);
+	
+	/**
+	 * 포인트 소멸 리스트
+	 *
+	 * @param point
+	 * @return Collection<Point>
+	 * @author sowon
+	 * @since  2021. 04. 26
+	 */
+	Collection<Point> getExpirePointList(Point point);
+
+	/**
+	 * 포인트 hst insert
+	 *
+	 * @param point
+	 * @return 
+	 * @author sowon
+	 * @since  2021. 04. 26
+	 */
+	void saveExpirePointHst(Point point);
+	
+	/**
+	 * 포인트 만료일시 update
+	 *
+	 * @param point
+	 * @return 
+	 * @author sowon
+	 * @since  2021. 04. 26
+	 */
+	void updateCustPointExpire(Point point);
 
 }

+ 60 - 0
src/main/java/com/style24/batch/biz/job/marketing/TsbExpirePointJob.java

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

+ 36 - 0
src/main/java/com/style24/batch/biz/service/TsbPointService.java

@@ -32,5 +32,41 @@ public class TsbPointService {
 	public Collection<Point> getAutoBuyConfirmList(Point point) {
 		return pointDao.getAutoBuyConfirmList(point);
 	}
+	
+	/**
+	 * 포인트 소멸 리스트
+	 *
+	 * @param point
+	 * @return Collection<Point>
+	 * @author sowon
+	 * @since  2021. 04. 26
+	 */
+	public Collection<Point> getExpirePointList(Point point){
+		return pointDao.getExpirePointList(point);
+	}
 
+	/**
+	 * 포인트 hst insert
+	 *
+	 * @param point
+	 * @return 
+	 * @author sowon
+	 * @since  2021. 04. 26
+	 */
+	public void saveExpirePointHst(Point point) {
+		pointDao.saveExpirePointHst(point);
+	}
+	
+	
+	/**
+	 * 포인트 만료일시 update
+	 *
+	 * @param point
+	 * @return 
+	 * @author sowon
+	 * @since  2021. 04. 26
+	 */
+	public void updateCustPointExpire(Point point) {
+		pointDao.updateCustPointExpire(point);
+	}
 }

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

@@ -2,9 +2,11 @@ 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.marketing.TsbAutoBuyConfirmJob;
+import com.style24.batch.biz.job.marketing.TsbExpirePointJob;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -20,6 +22,9 @@ public class TsbMarketingTask {
 
 	@Autowired
 	private TsbAutoBuyConfirmJob autoBuyConfirmJob;
+	
+	@Autowired
+	private TsbExpirePointJob expirePointJob;
 	/**
 	 * 자동구매확정 포인트 지급
 	 *
@@ -33,5 +38,19 @@ public class TsbMarketingTask {
 	public void autoBuyConfirmJob() throws Exception {
 		autoBuyConfirmJob.runById("cron.marketing.auto.buy.confirm");
 	}
+	
+	/**
+	 * 포인트 소멸처리
+	 *
+	 * @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");
+	}
 
 }

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

@@ -26,5 +26,55 @@
 		GROUP BY CPH.ORD_NO, CPH.ORD_DTL_NO ,CPH.CUST_NO
 		HAVING SUM(PNT_AMT) > 0
 	</select>
+	
+	<select id="getExpirePointList" parameterType="Point" resultType="Point">
+		/*TsbPointDao.getExpirePointList*/
+		SELECT CP.CUST_PNT_SQ 
+		      ,CP.CUST_NO 
+		      ,CP.GV_PNT_AMT 
+		      ,CP.RM_PNT_AMT 
+		      ,CP.EXP_BE_DT 
+		FROM TB_CUST_POINT CP
+		WHERE  1=1
+		AND CP.EXP_BE_DT <![CDATA[<=]]> DATE_FORMAT(CONCAT(CURRENT_DATE(),' 23:59:59'), '%Y%m%d%H%i%S')
+		AND CP.RM_PNT_AMT > 0
+	</select>
+	
+	<insert id="saveExpirePointHst" parameterType="Point">
+		/*TsbPointDao.saveExpirePointHst*/
+		INSERT INTO TB_CUST_POINT_HST (
+		       CUST_NO
+		     , OCCUR_GB
+		     , OCCUR_DTL_DESC
+		     , PNT_AMT
+		     , CUST_PNT_SQ
+		     , PNT_UPLOAD_STAT
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		)
+		VALUES(
+		       #{custNo}
+		     , 'G069_99'
+		     , '포인트 소멸'
+		     , #{pntAmt}
+		     , #{custPntSq}
+		     , 'G070_30'
+		     , #{regNo}
+		     , CURRENT_TIMESTAMP
+		     , #{updNo}
+		     , CURRENT_TIMESTAMP
+		)
+	</insert>
 
+	<update id="updateCustPointExpire" parameterType="Point">
+		/*TsbPointDao.updateCustPointExpire*/
+		UPDATE TB_CUST_POINT
+		SET    EXP_CMP_DT = CURRENT_TIMESTAMP
+		     , UPD_NO = #{updNo}
+		     , UPD_DT = CURRENT_TIMESTAMP
+		WHERE  CUST_PNT_SQ = #{custPntSq}
+	</update>
+	
 </mapper>

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

@@ -119,4 +119,5 @@ cron:
     marketing:
         auto.buy.confirm : 2 22 2 29 2 ? # 자동구매확정 예정포인트 지급
         birthday.coupon.notice : 2 22 2 29 2 ? # 생일쿠폰 다운로드 안내 (해야함)
-        comback.coupon.notice : 2 22 2 29 2 ? # 복귀할인쿠폰발급안내 (해야함)
+        comback.coupon.notice : 2 22 2 29 2 ? # 복귀할인쿠폰발급안내 (해야함)
+        expire.point : 2 22 2 29 2 ? # 포인트 소멸