leon 5 лет назад
Родитель
Сommit
1b0211fffe

+ 3 - 0
src/main/java/com/mokamrp/privates/tast/pangu/SyncFosterwxTaskEdit.java

@@ -37,6 +37,8 @@ public class SyncFosterwxTaskEdit {
     @Autowired
     public StringRedisTemplate stringRedisTemplate;
 
+    @Autowired
+    public SyncNewFosterwxTask syncNewFosterwxTask;
 
     @Scheduled(cron = "*/1 * * * * ?")
     public void execute() {
@@ -67,6 +69,7 @@ public class SyncFosterwxTaskEdit {
                         .eq("station_id", fosterwxTaskSchedule.getStationId())
                         .eq("task_id", fosterwxTaskSchedule.getTaskId())
                 );
+                syncNewFosterwxTask.execute();
             } catch (InterruptedException ie) {
                 Thread.currentThread().interrupt();
             }

+ 60 - 53
src/main/java/com/mokamrp/privates/tast/pangu/SyncNewFosterwxTask.java

@@ -11,6 +11,7 @@ import com.mokamrp.privates.mapper.pangu.pojo.FosterwxStation;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxTaskSchedule;
 import com.mokamrp.privates.service.pangu.FosterwxStationService;
 import com.mokamrp.privates.service.pangu.FosterwxTaskScheduleService;
+import org.apache.tomcat.jni.Local;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -36,62 +37,68 @@ public class SyncNewFosterwxTask {
     @Scheduled(cron = "* */1 * * * ?")
     public void execute() {
         System.out.println("[cronjob]:同步微信养号任务到REDIS");
-        Integer taskCnt = 60;
-        LocalDateTime nowDate = LocalDateTime.now();
-        LocalDateTime startTime = LocalDateTime.of(nowDate.toLocalDate(), LocalTime.MIN);
-//        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
-        String dateStr = nowDate.toLocalDate().toString();
-        List<FosterwxStation> fosterwxStationList = fosterwxStationService.list();
-        for (FosterwxStation fosterwxStation : fosterwxStationList) {
-            List<Integer> tasks = new ArrayList<>();
-            Integer stationId = fosterwxStation.getId();
-            FosterwxTaskScheduleHandle fosterwxTaskScheduleHandle = new FosterwxTaskScheduleHandle();
-            fosterwxTaskScheduleHandle.setStationId(stationId);
-            fosterwxTaskScheduleHandle.setSendTime(nowDate);
-            fosterwxTaskScheduleHandle.setPage(1);
-            fosterwxTaskScheduleHandle.setPagesize(99999);
-            ResHandle<List<FosterwxTaskSchedule>> resHandle = fosterwxTaskScheduleService.getList(fosterwxTaskScheduleHandle);
-            List<FosterwxTaskSchedule> fosterwxTaskScheduleList = resHandle.getList();
-            Map<String,List<FosterwxTaskSchedule>> saveRedis = new HashMap<>();
-            for (FosterwxTaskSchedule fosterwxTaskSchedule : fosterwxTaskScheduleList) {
-                String sendDate = fosterwxTaskSchedule.getSendDate().toString();
-                FosterwxTaskScheduleHandle handle = new FosterwxTaskScheduleHandle();
-                handle.setTaskId(fosterwxTaskSchedule.getTaskId());
-                handle.setStationId(fosterwxTaskSchedule.getStationId());
-                handle.setSendDate(fosterwxTaskSchedule.getSendDate());
-                FosterwxTaskSchedule taskInfo = fosterwxTaskScheduleService.getInfo(handle);
-                if (taskInfo == null) {
-                    continue;
+        List<LocalDateTime> dates = new ArrayList<>();
+        dates.add(LocalDateTime.now().plusDays(-1));
+        dates.add(LocalDateTime.now());
+        for (Integer i =0;i<dates.size();i++){
+            LocalDateTime nowDate = dates.get(i);
+            LocalDateTime startTime = LocalDateTime.of(nowDate.toLocalDate(), LocalTime.MIN);
+            List<FosterwxStation> fosterwxStationList = fosterwxStationService.list();
+            for (FosterwxStation fosterwxStation : fosterwxStationList) {
+                List<Integer> tasks = new ArrayList<>();
+                Integer stationId = fosterwxStation.getId();
+                FosterwxTaskScheduleHandle fosterwxTaskScheduleHandle = new FosterwxTaskScheduleHandle();
+                fosterwxTaskScheduleHandle.setStationId(stationId);
+                fosterwxTaskScheduleHandle.setSendTime(nowDate);
+                fosterwxTaskScheduleHandle.setPage(1);
+                fosterwxTaskScheduleHandle.setPagesize(99999);
+                ResHandle<List<FosterwxTaskSchedule>> resHandle = fosterwxTaskScheduleService.getList(fosterwxTaskScheduleHandle);
+                List<FosterwxTaskSchedule> fosterwxTaskScheduleList = resHandle.getList();
+                Map<String,List<FosterwxTaskSchedule>> saveRedis = new HashMap<>();
+                for (FosterwxTaskSchedule fosterwxTaskSchedule : fosterwxTaskScheduleList) {
+                    String sendDate = fosterwxTaskSchedule.getSendDate().toString();
+                    FosterwxTaskScheduleHandle handle = new FosterwxTaskScheduleHandle();
+                    handle.setTaskId(fosterwxTaskSchedule.getTaskId());
+                    handle.setStationId(fosterwxTaskSchedule.getStationId());
+                    handle.setSendDate(fosterwxTaskSchedule.getSendDate());
+                    FosterwxTaskSchedule taskInfo = fosterwxTaskScheduleService.getInfo(handle);
+                    if (taskInfo == null) {
+                        continue;
+                    }
+                    tasks.add(fosterwxTaskSchedule.getTaskId());
+                    fosterwxTaskSchedule.setMobileCount(taskInfo.getMobileCount());
+                    fosterwxTaskSchedule.setComment(taskInfo.getComment());
+                    //.昨日数据直接设置为过期任务
+                    if (i.equals(0)){
+                        fosterwxTaskSchedule.setTaskStatus(2);
+                    }
+                    List<FosterwxTaskSchedule> sendDateDetail = saveRedis.get(sendDate);
+                    if (sendDateDetail == null){
+                        List<FosterwxTaskSchedule> firstAdd = new ArrayList<>();
+                        firstAdd.add(fosterwxTaskSchedule);
+                        saveRedis.put(sendDate,firstAdd);
+                    }else{
+                        sendDateDetail.add(fosterwxTaskSchedule);
+                        saveRedis.put(sendDate,sendDateDetail);
+                    }
                 }
-                tasks.add(fosterwxTaskSchedule.getTaskId());
-                fosterwxTaskSchedule.setMobileCount(taskInfo.getMobileCount());
-                fosterwxTaskSchedule.setComment(taskInfo.getComment());
-                List<FosterwxTaskSchedule> sendDateDetail = saveRedis.get(sendDate);
-                if (sendDateDetail == null){
-                    List<FosterwxTaskSchedule> firstAdd = new ArrayList<>();
-                    firstAdd.add(fosterwxTaskSchedule);
-                    saveRedis.put(sendDate,firstAdd);
-                }else{
-                    sendDateDetail.add(fosterwxTaskSchedule);
-                    saveRedis.put(sendDate,sendDateDetail);
+                for (Map.Entry<String, List<FosterwxTaskSchedule>> entry : saveRedis.entrySet()) {
+                    stringRedisTemplate.opsForHash().put(RedisKey.PanWxfosterTask + stationId, entry.getKey(), JSON.toJSONString(entry.getValue()));
                 }
+                //.任务状态改为 已发送
+                if (tasks.size() > 0){
+                    FosterwxTaskSchedule save =  new FosterwxTaskSchedule();
+                    save.setTaskSendStatus(1);
+                    fosterwxTaskScheduleService.update(save,new QueryWrapper<FosterwxTaskSchedule>()
+                            .eq("station_id",fosterwxStation.getId())
+                            .in("task_id",tasks)
+                            .apply("UNIX_TIMESTAMP(send_time) >= UNIX_TIMESTAMP('" + startTime + "')")
+                            .apply("UNIX_TIMESTAMP(send_time) <= UNIX_TIMESTAMP('" + nowDate + "')")
+                    );
+                }
+                tasks.clear();
+                saveRedis.clear();
             }
-            for (Map.Entry<String, List<FosterwxTaskSchedule>> entry : saveRedis.entrySet()) {
-                stringRedisTemplate.opsForHash().put(RedisKey.PanWxfosterTask + stationId, entry.getKey(), JSON.toJSONString(entry.getValue()));
-            }
-            //.任务状态改为 已发送
-            if (tasks.size() > 0){
-                FosterwxTaskSchedule save =  new FosterwxTaskSchedule();
-                save.setTaskSendStatus(1);
-                fosterwxTaskScheduleService.update(save,new QueryWrapper<FosterwxTaskSchedule>()
-                        .eq("station_id",fosterwxStation.getId())
-                        .in("task_id",tasks)
-                        .apply("UNIX_TIMESTAMP(send_time) >= UNIX_TIMESTAMP('" + startTime + "')")
-                        .apply("UNIX_TIMESTAMP(send_time) <= UNIX_TIMESTAMP('" + nowDate + "')")
-                );
-            }
-            tasks.clear();
-            saveRedis.clear();
         }
     }
 }

+ 1 - 1
src/main/resources/application-local.properties

@@ -67,4 +67,4 @@ datahub.corpTopic=ods_hera_msv_corp_data
 datahub.project=hera
 
 #定时任务全局开关,本地环境无需开启
-cronjob.power=false
+cronjob.power=true