xuhy
2025-01-09 712f70b2936079a131ecb1e63c6d337171618cad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.stylefeng.guns.modular.system.util;
 
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.modular.account.service.UserWithdrawalService;
import com.stylefeng.guns.modular.cloudPayment.example.CusApplicationExample;
import com.stylefeng.guns.modular.system.model.UserWithdrawal;
import com.stylefeng.guns.modular.system.service.IDriverService;
import com.stylefeng.guns.modular.system.service.IOrderService;
import com.stylefeng.guns.modular.system.service.IUserMerchantCouponService;
import com.unionpay.upyzt.resp.CusApplicationResp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
 
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
 
 
/**
 * 定时任务工具类
 */
@Component
public class TaskUtil {
 
    @Autowired
    private IDriverService driverService;
 
    @Autowired
    private IOrderService orderService;
 
    @Autowired
    private JGPushUtil jgPushUtil;
 
    @Autowired
    private IUserMerchantCouponService userMerchantCouponService;
    @Autowired
    private UserWithdrawalService userWithdrawalService;
 
    public Set<Integer> driverIds = new HashSet<>();//存储需要提醒司机预约单的司机id
 
 
 
 
    /**
     * 每隔一分钟去处理的定时任务
     */
    @Scheduled(fixedRate = 1000 * 60)
    public void taskMinute(){
        try {
            //修改满足活动条件的数据(在线时长,订单量)
            driverService.taskMinute();
            //处于预约单
            orderService.reservationOrder();
            //处理车载端断电后的自动下班
            driverService.taskOffWork();
            //处理结束订单后30分钟解绑小号功能
            orderService.taskMidAxbUnBindSend();
            //修改过期的商家券
            userMerchantCouponService.updateExpired();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    /**
     * 每隔一分钟去处理的定时任务
     */
//    @Scheduled(fixedRate = 1000 * 60)
//    public void userWith(){
//        try {
//            List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>());
//            List<UserWithdrawal> collect = userWithdrawals.stream().filter(e -> "succeeded".equals(e.getApplicationStatus())).collect(Collectors.toList());
//            for (UserWithdrawal userWithdrawal : collect) {
//                CusApplicationResp cusApplicationResp = CusApplicationExample.retrieveByOutRequestNo(userWithdrawal.getOutRequestNo());
//                System.out.println("请求订单号:"+userWithdrawal.getApplicationStatus()+"================="+cusApplicationResp);
//
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
 
 
 
    /**
     * 每隔五分钟去处理的定时任务
     */
    @Scheduled(fixedRate = 1000 * 60 * 5)
    public void taskFiveMinute(){
        try {
            for (Integer id: driverIds){
                jgPushUtil.push(1, "您的预约订单出行时间就要到了,请尽快前往预约地点接乘客", "DRIVER" + id);
            }
            this.driverIds.clear();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
 
 
    /**
     * 每天的凌晨执行的任务
     */
    @Scheduled(cron = "0 0 0 * * *")
    public void taskDay(){
        try {
            //生成当天的司机活动
            driverService.addTodayActivity();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
 
 
//
//    /**
//     * 每月第一天的1点执行的任务
//     */
//    @Scheduled(cron = "0 0 1 1 * *")
//    public void taskMonth(){
//        try {
//
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//    }
}