|
|
@@ -1,10 +1,14 @@
|
|
|
-package com.kym.service.queue;
|
|
|
+package com.kym.service.miniapp.impl;
|
|
|
|
|
|
+import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
import com.kym.entity.miniapp.ChargeOrder;
|
|
|
import com.kym.service.miniapp.ChargeOrderService;
|
|
|
import com.kym.service.miniapp.ChargeService;
|
|
|
-import jakarta.annotation.PostConstruct;
|
|
|
+import com.kym.service.miniapp.DelayService;
|
|
|
+import com.kym.service.queue.DelayedItem;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.context.event.ContextRefreshedEvent;
|
|
|
+import org.springframework.context.event.EventListener;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.concurrent.DelayQueue;
|
|
|
@@ -18,12 +22,14 @@ import java.util.concurrent.Executors;
|
|
|
*/
|
|
|
@Service
|
|
|
@Slf4j
|
|
|
+@DS("db-miniapp")
|
|
|
public class DelayServiceImpl implements DelayService<ChargeOrder> {
|
|
|
|
|
|
/**
|
|
|
* 预约订单队列
|
|
|
*/
|
|
|
private final static DelayQueue<DelayedItem<ChargeOrder>> DELAY_QUEUE = new DelayQueue<>();
|
|
|
+
|
|
|
private final ChargeOrderService chargeOrderService;
|
|
|
private final ChargeService chargeService;
|
|
|
/**
|
|
|
@@ -36,8 +42,10 @@ public class DelayServiceImpl implements DelayService<ChargeOrder> {
|
|
|
this.chargeService = chargeService;
|
|
|
}
|
|
|
|
|
|
- @PostConstruct
|
|
|
- public void init() {
|
|
|
+ @DS("db-miniapp")
|
|
|
+ // 这里不能使用@PostConstruct,在初始化完成后, bean 进入增强阶段, 所以这个阶段的任何AOP都是无效的,https://www.cnblogs.com/eternityz/p/15330069.html
|
|
|
+ @EventListener
|
|
|
+ public void init(ContextRefreshedEvent event) {
|
|
|
// 队列加载所有充电状态为预约中的订单,按照开始时间排序
|
|
|
var orderList = chargeOrderService.lambdaQuery()
|
|
|
.eq(ChargeOrder::getChargeStatus, ChargeOrder.CHARGE_STATUS_预约中)
|