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

이태영 - 20210713 무통장입금 입금요청 알림톡 송부

xodud lee 4 лет назад
Родитель
Сommit
906efa8f60

+ 8 - 0
src/main/java/com/style24/batch/biz/dao/TsbOrderDao.java

@@ -37,4 +37,12 @@ public interface TsbOrderDao {
 	 * @since  2021. 05. 06
 	 */
 	Collection<Order> getOrderGiftExpirationList();
+
+	/**
+	 * 무통장입금 만료대기자 리스트 조회
+	 * @return Collection<Order>
+	 * @author xodud1202
+	 * @since  2021. 07. 13
+	 */
+	Collection<Order> getOrderDepositWaitingCustomerList();
 }

+ 0 - 4
src/main/java/com/style24/batch/biz/job/order/TsbOrderDepositExpirationJob.java

@@ -42,12 +42,8 @@ public class TsbOrderDepositExpirationJob extends TsbAbstractJob<Collection<Orde
 	private int succCnt = 0;
 	private int failCnt = 0;
 
-	private static Order temp;
-
 	@Override
 	public Collection<Order> read() throws Exception {
-		temp = new Order();
-		temp.setOrdNo(11);
 		return orderService.getOrderDepositExpirationList();
 	}
 

+ 75 - 0
src/main/java/com/style24/batch/biz/job/order/TsbOrderDepositWaitingNotifyJob.java

@@ -0,0 +1,75 @@
+package com.style24.batch.biz.job.order;
+
+import com.style24.batch.biz.job.TsbAbstractJob;
+import com.style24.batch.biz.service.TsbOrderService;
+import com.style24.batch.support.env.TsbConstants;
+import com.style24.core.biz.service.TscKakaotalkService;
+import com.style24.core.biz.service.TscOrderChangeService;
+import com.style24.core.biz.service.TscOrderService;
+import com.style24.core.support.env.TscConstants;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.OrderChange;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Collection;
+
+/**
+ * 무통장입금 입금 기한 만료 주문 취소
+ *
+ * @author xodud1202
+ * @since 2021. 05. 03
+ */
+@Component
+@Slf4j
+public class TsbOrderDepositWaitingNotifyJob extends TsbAbstractJob<Collection<Order>, Collection<Order>, OrderChange> {
+
+	@Autowired
+	private TscOrderChangeService coreOrderChangeService;
+
+	@Autowired
+	private TscOrderService coreOrderService;
+
+	@Autowired
+	private TsbOrderService orderService;
+
+	@Autowired
+	private TscKakaotalkService coreKakaotalkService;
+
+	private int succCnt = 0;
+	private int failCnt = 0;
+
+	@Override
+	public Collection<Order> read() throws Exception {
+		return orderService.getOrderDepositWaitingCustomerList();
+	}
+
+	@Override
+	public Collection<Order> process(Collection<Order> params) throws Exception {
+		return params;
+	}
+
+	@Override
+	public OrderChange write(Collection<Order> params) throws Exception {
+		OrderChange result = new OrderChange();
+		for(Order order : params) {
+			try {
+				// 무통장입금 입금 요청 알림톡 송부
+				coreKakaotalkService.sendOrderDepositWaitingNotify(order, TsbConstants.REG_NO);
+				succCnt++;
+			} catch (Exception e) {
+				e.printStackTrace();
+				failCnt++;
+			}
+		}
+
+		return result;
+	}
+
+	@Override
+	public void notify(OrderChange param) throws Exception {
+		super.printResult(succCnt, failCnt);
+	}
+
+}

+ 10 - 0
src/main/java/com/style24/batch/biz/service/TsbOrderService.java

@@ -46,4 +46,14 @@ public class TsbOrderService {
 	public Collection<Order> getOrderGiftExpirationList() {
 		return orderDao.getOrderGiftExpirationList();
 	}
+
+	/**
+	 * 무통장입금 만료대기자 리스트 조회
+	 * @return Collection<Order>
+	 * @author xodud1202
+	 * @since  2021. 07. 13
+	 */
+	public Collection<Order> getOrderDepositWaitingCustomerList() {
+		return orderDao.getOrderDepositWaitingCustomerList();
+	}
 }

+ 16 - 0
src/main/java/com/style24/batch/biz/task/TsbOrderTask.java

@@ -36,6 +36,9 @@ public class TsbOrderTask {
 	@Autowired
 	private TsbWishAddCouponPushJob wishAddCouponPushJob;
 
+	@Autowired
+	private TsbOrderDepositWaitingNotifyJob orderDepositWaitingNotifyJob;
+
 	/**
 	 * 장바구니 30일 초과 만료 데이터 삭제
 	 *
@@ -115,4 +118,17 @@ public class TsbOrderTask {
 	public void wishlistBenefitPushJob() throws Exception {
 		wishAddCouponPushJob.runById("cron.order.wish.benefit.push");
 	}
+
+	/**
+	 * 무통장입금 입금 대기 알림
+	 * @throws Exception - 예외처리
+	 * @author xodud1202
+	 * @since 2021. 07. 13
+	 */
+	@Scheduled(cron = "${cron.order.deposit.waiting.notify}")
+	//@Scheduled(fixedDelay = 3500000)
+	@Async
+	public void orderDepositWaitingNotify() throws Exception {
+		orderDepositWaitingNotifyJob.runById("cron.order.deposit.waiting.notify");
+	}
 }

+ 17 - 0
src/main/java/com/style24/batch/biz/web/TsbOrderController.java

@@ -42,6 +42,9 @@ public class TsbOrderController extends TscBaseController {
 	@Autowired
 	private TsbWishAddCouponPushJob wishAddCouponPushJob;
 
+	@Autowired
+	private TsbOrderDepositWaitingNotifyJob orderDepositWaitingNotifyJob;
+
 	/**
 	 * 장바구니 30일 초과 만료 데이터 삭제
 	 *
@@ -125,4 +128,18 @@ public class TsbOrderController extends TscBaseController {
 		wishAddCouponPushJob.runById("cron.order.wish.benefit.push");
 		return "OK";
 	}
+
+	/**
+	 * 무통장입금 입금요청 알림톡 송부
+	 *
+	 * @throws Exception - 예외처리
+	 * @author xodud1202
+	 * @since 2021. 07. 12
+	 */
+	@GetMapping("/deposit/waiting/notify")
+	@ResponseBody
+	public String orderDepositWaitingNotify() throws Exception {
+		orderDepositWaitingNotifyJob.runById("cron.order.deposit.waiting.notify");
+		return "OK";
+	}
 }

+ 35 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsbOrder.xml

@@ -32,4 +32,39 @@
 		AND    O.ORD_DT <![CDATA[ < ]]> ADDDATE(NOW(), INTERVAL -3 DAY)
 		GROUP  BY O.ORD_NO
 	</select>
+
+	<!-- 무통장입금 만료대기자 리스트 조회 -->
+	<select id="getOrderDepositWaitingCustomerList" parameterType="Order" resultType="Order">
+		/* TsbOrder.getOrderDepositWaitingCustomerList : 무통장입금 만료대기자 리스트 조회 */
+		SELECT O.ORD_NO
+		     , IFNULL(O.CUST_NO, 0) AS CUST_NO
+		     , O.ORD_NM
+		     , O.ORD_PHNNO
+		     , P.PAY_AMT
+		     , P.VA_NO
+		     , DATE_FORMAT(P.VA_DEADLINE, '%Y.%m.%d %H:%i:%S') as VA_DEADLINE
+		     , FN_GET_CODE_NM('G940', P.VA_BANK) AS BANK_NM
+		     , OD.GOODS_CNT
+		     , G.GOODS_NM
+		FROM   TB_PAYMENT P
+		INNER  JOIN TB_ORDER O
+		ON     P.ORD_NO = O.ORD_NO
+		INNER  JOIN (SELECT OD.ORD_NO
+		                  , COUNT(1) - 1 AS GOODS_CNT
+		                  , MAX(GOODS_CD) AS GOODS_CD
+		             FROM   TB_ORDER_DETAIL OD
+		             WHERE  1=1
+		             AND    ORD_DTL_STAT = 'G013_10'
+		             GROUP  BY ORD_NO ) OD
+		ON     OD.ORD_NO = O.ORD_NO
+		INNER  JOIN TB_GOODS G
+		ON     OD.GOODS_CD = G.GOODS_CD
+		LEFT   OUTER JOIN TB_PAYMENT P2
+		ON     P.ORD_NO = P2.ORD_NO
+		AND    P2.PAY_STAT = 'G016_98'
+		WHERE  1=1
+		AND    P2.ORD_NO IS NULL
+		AND    P.PAY_STAT = 'G016_10'
+		AND    CAST(P.VA_DEADLINE AS DATE) = CAST(NOW() AS DATE)
+	</select>
 </mapper>