From cc5cf127da76d03ce7086da4d70f34b20e9803e0 Mon Sep 17 00:00:00 2001
From: admin <1101184511@qq.com>
Date: 星期三, 30 七月 2025 01:57:55 +0800
Subject: [PATCH] 功能完善
---
src/main/java/com/taoke/autopay/task/KeyOrderDistributeTask.java | 64 ++++++++++++++++++++++++++++++--
1 files changed, 60 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/taoke/autopay/task/KeyOrderDistributeTask.java b/src/main/java/com/taoke/autopay/task/KeyOrderDistributeTask.java
index 78b9917..f239db9 100644
--- a/src/main/java/com/taoke/autopay/task/KeyOrderDistributeTask.java
+++ b/src/main/java/com/taoke/autopay/task/KeyOrderDistributeTask.java
@@ -2,12 +2,16 @@
import com.taoke.autopay.dao.KeyOrderMapper;
import com.taoke.autopay.dto.DYOrderDto;
+import com.taoke.autopay.entity.ClientInfo;
import com.taoke.autopay.entity.KeyOrder;
import com.taoke.autopay.exception.KeyOrderException;
import com.taoke.autopay.manager.OrderPayFailProcessor;
+import com.taoke.autopay.service.ClientInfoService;
import com.taoke.autopay.service.KeyOrderService;
+import com.taoke.autopay.utils.Constant;
import com.taoke.autopay.utils.StringUtil;
import com.taoke.autopay.utils.order.DYOrderApi;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
@@ -20,11 +24,20 @@
@Configuration
@EnableScheduling
public class KeyOrderDistributeTask {
+
+ @Value("${task-enable}")
+ private boolean taskEnable;
+
@Resource
private KeyOrderService keyOrderService;
+
+
@Scheduled(cron = "0/5 * * * * ? ")
private void distribute() {
+ if(!taskEnable){
+ return;
+ }
try {
List<KeyOrder> results = keyOrderService.listNotDistributed(1, 20);
if (results != null) {
@@ -32,7 +45,7 @@
if (order.getDistributeClientUid() != null) {
continue;
}
- Long uid = keyOrderService.getCanDistributeUid();
+ Long uid = keyOrderService.getCanDistributeUid(Constant.MAX_PAY_ACCOUNT_QUEUE_SIZE);
if (uid != null) {
KeyOrder orderUpdate = new KeyOrder();
orderUpdate.setId(order.getId());
@@ -55,6 +68,9 @@
**/
@Scheduled(cron = "0/5 * * * * ? ")
private void repaireProcessedOrders() {
+ if(!taskEnable){
+ return;
+ }
// TODO 寰呭畬鎴�
KeyOrderMapper.DaoQuery query = new KeyOrderMapper.DaoQuery();
// 淇1鍒嗛挓鍒�1灏忔椂鐨勬暟鎹箣鍓嶆墽琛岀殑鏁版嵁
@@ -109,16 +125,56 @@
private OrderPayFailProcessor orderPayFailProcessor;
@Scheduled(cron = "0/5 * * * * ? ")
- private void processPayFail(){
- for(int i=0;i<10;i++) {
+ private void processPayFail() {
+ if(!taskEnable){
+ return;
+ }
+ for (int i = 0; i < 10; i++) {
// 涓�娆℃渶澶氬鐞�10鏉℃暟鎹�
orderPayFailProcessor.processFromQueue();
}
}
@Scheduled(cron = "0 0 3 * * ? ")
- private void clearProcessPayFailCache(){
+ private void clearProcessPayFailCache() {
+ if(!taskEnable){
+ return;
+ }
orderPayFailProcessor.clearCacheData();
}
+ @Resource
+ private ClientInfoService clientInfoService;
+
+ // 澶勭悊璁惧涓嬬嚎
+ @Scheduled(cron = "0 0/1 * * * ? ")
+ private void processPayClientOffLine() {
+ if(!taskEnable){
+ return;
+ }
+ KeyOrderMapper.DaoQuery daoQuery = new KeyOrderMapper.DaoQuery();
+ // 鍒嗛厤鏃堕棿鍦ㄦ渶杩�5鍒嗛挓鍒版渶杩�30鍒嗛挓鐨勶紝鐘舵�佷负鏈鐞嗙殑闇�瑕侀噸鏂板垎閰�
+ daoQuery.stateList = Arrays.asList(new Integer[]{KeyOrder.STATE_NOT_PAY, KeyOrder.STATE_NOT_PROCESS});
+ daoQuery.minDistributeTime = new Date(System.currentTimeMillis() - 1000 * 60 * 30L);
+ daoQuery.maxDistributeTime = new Date(System.currentTimeMillis() - 1000 * 60 * 5L);
+ daoQuery.sortList = Arrays.asList(new String[]{"create_time desc"});
+ daoQuery.count = 10;
+ List<KeyOrder> orderList = keyOrderService.list(daoQuery);
+ for (KeyOrder order : orderList) {
+ // 鏌ヨ璁惧娲昏穬鏃堕棿鏄惁宸茬粡鏈�5鍒嗛挓鏈椿璺�
+ if (order.getDistributeClientUid() == null) {
+ continue;
+ }
+
+ ClientInfo clientInfo = clientInfoService.selectByPrimaryKey(order.getDistributeClientUid());
+ if (clientInfo.getActiveTime()==null||System.currentTimeMillis() - clientInfo.getActiveTime().getTime() < 1000 * 60 * 5L) {
+ continue;
+ }
+ // 閲嶆柊鍒嗛厤
+ keyOrderService.removeDistributedClient(order.getId());
+ }
+
+
+ }
+
}
--
Gitblit v1.8.0