1.2
luo
2024-01-02 372713d9d50c73871d51fd98b655d8bd9e24df46
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
package com.stylefeng.guns.modular.system.util;
 
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.modular.system.model.HouseResource;
import com.stylefeng.guns.modular.system.service.impl.HouseResourceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.cache.CacheProperties;
import org.springframework.scheduling.annotation.Scheduled;
   import org.springframework.stereotype.Component;
 
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
@Component
   public class MyScheduledTasks {
 
       @Autowired
       private HouseResourceService houseResourceService;
 
       @Autowired
       private RedisUtil redisUtil;
 
       @Scheduled(fixedRate = 60000) // 每隔5秒执行一次任务
       public void myTask() {
           // 执行定时任务的逻辑
           System.err.println("定时任务执行中...");
           List<HouseResource> authStatus = houseResourceService.selectList(new EntityWrapper<HouseResource>().eq("auth_status", 1));
           if (!authStatus.isEmpty()){
               LocalDateTime currentTime = LocalDateTime.now();
               String min = redisUtil.getValue("HouseAuthSetting");
               if (!min.equals("null")) {
                   List<HouseResource> toUpdate = new ArrayList<>();
                   for (HouseResource resource : authStatus) {
//                   LocalDateTime insertTime = resource.getInsertTime();
                       LocalDateTime insertTime = resource.getInsertTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
                       LocalDateTime oneMinuteAfter = insertTime.plus(Integer.parseInt(min), ChronoUnit.MINUTES);
                       if (currentTime.isAfter(oneMinuteAfter)) {
                           resource.setAuthStatus(2);
//                           resource.setAppUserId(1);
                           resource.setAuthTime(new Date());
                           toUpdate.add(resource);
                           // 当前时间超过insertTime之后的一分钟
                           System.out.println("当前时间超过了插入时间之后的一分钟");
                       } else {
                           // 当前时间未超过insertTime之后的一分钟
                           System.out.println("当前时间未超过插入时间之后的一分钟");
                       }
                   }
                   if (!toUpdate.isEmpty()) {
                       houseResourceService.updateBatchById(toUpdate);
                   }
               }
           }
 
 
       }
   }