|
|
@@ -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();
|
|
|
}
|
|
|
}
|
|
|
}
|