Просмотр исходного кода

微信状态转换是 任务排期对应做出变化

lqc 5 лет назад
Родитель
Сommit
7a4ac2eaa9

+ 9 - 3
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxMobileController.java

@@ -84,7 +84,7 @@ public class FosterwxMobileController extends BaseController<FosterwxMobile> {
         // 判断开始做任务时间是否设置了
         AjaxResult ajaxResult = null;
         if (null != fosterwxMobile.getTaskStartAt() && fosterwxMobile.getWxStatus() != 2) {
-            ajaxResult = fosterwxTaskScheduleService.insertByTaskDate(fosterwxMobile, authUser);
+            ajaxResult = fosterwxTaskScheduleService.insertByTaskDate(fosterwxMobile, authUser, false);
         }
 
         if (null == ajaxResult) return AjaxResult.success("新增账号成功");
@@ -95,6 +95,7 @@ public class FosterwxMobileController extends BaseController<FosterwxMobile> {
     @PutMapping("/edit")
     @Transactional(rollbackFor = Exception.class)
     public Object edit(@RequestBody FosterwxMobile fosterwxMobile, @AuthUser User authUser) {
+        FosterwxMobile oldVO = fosterwxMobileService.getById(fosterwxMobile.getId());
         // 新增账号
         fosterwxMobileService.updateById(fosterwxMobile);
         fosterwxMobile = fosterwxMobileService.getById(fosterwxMobile.getId());
@@ -103,15 +104,20 @@ public class FosterwxMobileController extends BaseController<FosterwxMobile> {
         AjaxResult ajaxResult = null;
         if (null != fosterwxMobile.getTaskStartAt()) {
             if (fosterwxMobile.getWxStatus() != 2) {
-                ajaxResult = fosterwxTaskScheduleService.insertByTaskDate(fosterwxMobile, authUser);
+                ajaxResult = fosterwxTaskScheduleService.insertByTaskDate(fosterwxMobile, authUser, false);
             }
         }
 
         // 判断微信状态是否更新为封禁
-        if (fosterwxMobile.getWxStatus() == 2) {
+        if (fosterwxMobile.getWxStatus() == 2 && oldVO.getWxStatus() == 1) {
             ajaxResult = fosterwxTaskScheduleService.deleteByDate(fosterwxMobile, authUser);
         }
 
+        // 判断微信状态是否更新为正常
+        if (fosterwxMobile.getWxStatus() == 1 && oldVO.getWxStatus() == 2) {
+            ajaxResult = fosterwxTaskScheduleService.insertByTaskDate(fosterwxMobile, authUser, true);
+        }
+
         if (null == ajaxResult) return AjaxResult.success("更新账号成功");
 
         return ajaxResult;

+ 3 - 2
src/main/java/com/mokamrp/privates/service/pangu/FosterwxTaskScheduleService.java

@@ -23,11 +23,12 @@ public interface FosterwxTaskScheduleService extends IService<FosterwxTaskSchedu
 
 
     /**
-     * 根据任务开始时间创建排期
+     * 根据任务开始时间创建排期/微信状态更新重新生成为执行部分任务
      * @param fosterwxMobile
      * @param authUser
+     * @param isChange
      */
-    public AjaxResult insertByTaskDate(FosterwxMobile fosterwxMobile, User authUser);
+    public AjaxResult insertByTaskDate(FosterwxMobile fosterwxMobile, User authUser, boolean isChange);
 
     /**
      * 根据当天时间删除后续的任务

+ 27 - 8
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxTaskScheduleServiceImpl.java

@@ -66,12 +66,13 @@ public class FosterwxTaskScheduleServiceImpl extends ServiceImpl<FosterwxTaskSch
     }
 
     /**
-     * 根据开始任务时间生成排期
+     * 根据开始任务时间生成排期/根据任务开始时间创建排期/微信状态更新重新生成为执行部分任务
      * @param fosterwxMobile
      * @param authUser
+     * @param isChange
      */
     @Override
-    public AjaxResult insertByTaskDate(FosterwxMobile fosterwxMobile, User authUser) {
+    public AjaxResult insertByTaskDate(FosterwxMobile fosterwxMobile, User authUser, boolean isChange) {
         // 获取站点信息
         FosterwxStation fosterwxStation = fosterwxStationMapper.selectById(fosterwxMobile.getStationId());
 
@@ -80,9 +81,28 @@ public class FosterwxTaskScheduleServiceImpl extends ServiceImpl<FosterwxTaskSch
         LocalDate startDate = fosterwxMobile.getTaskStartAt().toLocalDate();
 
         // 根据站点绑定的任务模板获取模板列表
-        LambdaQueryWrapper<FosterwxTaskList> fosterTaskListLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        fosterTaskListLambdaQueryWrapper.eq(FosterwxTaskList::getTemplateId, fosterwxStation.getTaskTemplateId());
-        List<FosterwxTaskList> fosterwxTaskLists = fosterwxTaskListMapper.selectList(fosterTaskListLambdaQueryWrapper);
+        List<FosterwxTaskList> fosterwxTaskLists = null;
+        if (!isChange) {
+            LambdaQueryWrapper<FosterwxTaskList> fosterTaskListLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            fosterTaskListLambdaQueryWrapper.eq(FosterwxTaskList::getTemplateId, fosterwxStation.getTaskTemplateId());
+            fosterwxTaskLists = fosterwxTaskListMapper.selectList(fosterTaskListLambdaQueryWrapper);
+        } else {
+            // 查询该账号进行到第几个任务了
+            LambdaQueryWrapper<FosterwxTaskSchedule> fosterwxTaskScheduleLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            fosterwxTaskScheduleLambdaQueryWrapper.eq(FosterwxTaskSchedule::getStationId, fosterwxStation.getId());
+            fosterwxTaskScheduleLambdaQueryWrapper.eq(FosterwxTaskSchedule::getMobileCode, fosterwxMobile.getMobileCode());
+            fosterwxTaskScheduleLambdaQueryWrapper.eq(FosterwxTaskSchedule::getDelFlg, 1);
+            fosterwxTaskScheduleLambdaQueryWrapper.orderByAsc(FosterwxTaskSchedule::getId);
+            fosterwxTaskScheduleLambdaQueryWrapper.last("Limit 1");
+            FosterwxTaskSchedule lastTask = fosterwxTaskScheduleMapper.selectOne(fosterwxTaskScheduleLambdaQueryWrapper);
+
+            LambdaQueryWrapper<FosterwxTaskList> fosterTaskListLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            fosterTaskListLambdaQueryWrapper.eq(FosterwxTaskList::getTemplateId, fosterwxStation.getTaskTemplateId());
+            fosterTaskListLambdaQueryWrapper.gt(FosterwxTaskList::getId, lastTask.getTaskId());
+            fosterwxTaskLists = fosterwxTaskListMapper.selectList(fosterTaskListLambdaQueryWrapper);
+        }
+
+        if (fosterwxTaskLists.isEmpty()) return AjaxResult.error("没有可以使用的任务列表!");
 
         for (FosterwxTaskList fosterwxTaskList : fosterwxTaskLists) {
             FosterwxTaskSchedule fosterwxTaskSchedule = new FosterwxTaskSchedule();
@@ -108,13 +128,12 @@ public class FosterwxTaskScheduleServiceImpl extends ServiceImpl<FosterwxTaskSch
 
             startDate = startDate.plusDays(1);
         }
-
-        return AjaxResult.success("新增账号成功");
+        return null;
     }
 
     /**
      * 根据当天时间删除后续任务
-     * @param fosterwxMobileService
+     * @param fosterwxMobile
      * @param authUser
      * @return
      */