فهرست منبع

fixbug 账号列表批量设置按钮 不是编辑任务时间的场合 后台回报错

lqc 4 سال پیش
والد
کامیت
dc34fc2ea5
1فایلهای تغییر یافته به همراه43 افزوده شده و 40 حذف شده
  1. 43 40
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxMobileController.java

+ 43 - 40
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxMobileController.java

@@ -188,50 +188,53 @@ public class FosterwxMobileController extends BaseController<FosterwxMobile> {
                     setUpdateAt(LocalDateTime.now());
                 }}, new QueryWrapper<FosterwxMobilePool>().eq("pool_index", fosterwxMobile.getMobileUnioCode()));
             }
-            // 判断开始做任务时间是否设置了
-            // 获取最新的一条时间任务
-            FosterwxMobileTaskTimeList fosterwxMobileTaskTimeList = new FosterwxMobileTaskTimeList();
-
-            if (!editHandle.getRaw().getTaskTimeLists().isEmpty()) {
-                FosterwxMobileTaskTimeList sample = editHandle.getRaw().getTaskTimeLists().get(editHandle.getRaw().getTaskTimeLists().size() - 1);
-                fosterwxMobileTaskTimeList.setTaskStartAt(sample.getTaskStartAt());
-                fosterwxMobileTaskTimeList.setTaskEndAt(sample.getTaskEndAt());
-                fosterwxMobileTaskTimeList.setTemplateId(sample.getTemplateId());
-                fosterwxMobileTaskTimeList.setDefaultSendTime(sample.getDefaultSendTime());
-            }
 
-            AjaxResult ajaxResult = null;
-            // 全新增加任务的场合
-            // 批量操作的时候传过来的件数不能跟数据库件数比较 因此独立判断
-            if (editHandle.getRaw().getTaskTimeLists().size() > oldTimeList.size() || (editHandle.getRaw().getType() != null && editHandle.getRaw().getTaskTimeLists().size() == 2)) {
-                if (null != fosterwxMobileTaskTimeList.getTaskStartAt()) {
-                    if (null != fosterwxMobileTaskTimeList.getTaskEndAt()) {
-                        LocalDate startDate = fosterwxMobileTaskTimeList.getTaskStartAt().toLocalDate();
-                        LocalDate endDate = fosterwxMobileTaskTimeList.getTaskEndAt().toLocalDate();
-
-                        long dayLong = endDate.toEpochDay() - startDate.toEpochDay() + 1;
-
-                        LambdaQueryWrapper<FosterwxTaskList> fosterTaskListLambdaQueryWrapper = new LambdaQueryWrapper<>();
-                        fosterTaskListLambdaQueryWrapper.eq(FosterwxTaskList::getTemplateId, fosterwxMobileTaskTimeList.getTemplateId());
-                        if (dayLong > fosterwxTaskListService.count(fosterTaskListLambdaQueryWrapper))
-                            return AjaxResult.error(fosterwxMobile.getMobileUnioCode() + "设置的持续时间超过模板的长度");
-                    }
 
-                    fosterwxMobileTaskTimeListService.insertByMobile(fosterwxMobile, fosterwxMobileTaskTimeList);
-                    ajaxResult = fosterwxTaskScheduleService.insertByTaskDate(fosterwxMobile, fosterwxMobileTaskTimeList, authUser, false);
+            AjaxResult ajaxResult = null;
+            if (null != editHandle.getRaw().getTaskTimeLists()) {
+                // 判断开始做任务时间是否设置了
+                // 获取最新的一条时间任务
+                FosterwxMobileTaskTimeList fosterwxMobileTaskTimeList = new FosterwxMobileTaskTimeList();
+
+                if (!editHandle.getRaw().getTaskTimeLists().isEmpty()) {
+                    FosterwxMobileTaskTimeList sample = editHandle.getRaw().getTaskTimeLists().get(editHandle.getRaw().getTaskTimeLists().size() - 1);
+                    fosterwxMobileTaskTimeList.setTaskStartAt(sample.getTaskStartAt());
+                    fosterwxMobileTaskTimeList.setTaskEndAt(sample.getTaskEndAt());
+                    fosterwxMobileTaskTimeList.setTemplateId(sample.getTemplateId());
+                    fosterwxMobileTaskTimeList.setDefaultSendTime(sample.getDefaultSendTime());
                 }
-            } else {
-                // 原有任务
-                if (null != fosterwxMobileTaskTimeList.getTaskStartAt() && oldTimeList.get(oldTimeList.size() - 1).getTaskStartAt() == null) {
-                    if (fosterwxMobile.getWxStatus() != 2) {
+                // 全新增加任务的场合
+                // 批量操作的时候传过来的件数不能跟数据库件数比较 因此独立判断
+                if (editHandle.getRaw().getTaskTimeLists().size() > oldTimeList.size() || (editHandle.getRaw().getType() != null && editHandle.getRaw().getTaskTimeLists().size() == 2)) {
+                    if (null != fosterwxMobileTaskTimeList.getTaskStartAt()) {
+                        if (null != fosterwxMobileTaskTimeList.getTaskEndAt()) {
+                            LocalDate startDate = fosterwxMobileTaskTimeList.getTaskStartAt().toLocalDate();
+                            LocalDate endDate = fosterwxMobileTaskTimeList.getTaskEndAt().toLocalDate();
+
+                            long dayLong = endDate.toEpochDay() - startDate.toEpochDay() + 1;
+
+                            LambdaQueryWrapper<FosterwxTaskList> fosterTaskListLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                            fosterTaskListLambdaQueryWrapper.eq(FosterwxTaskList::getTemplateId, fosterwxMobileTaskTimeList.getTemplateId());
+                            if (dayLong > fosterwxTaskListService.count(fosterTaskListLambdaQueryWrapper))
+                                return AjaxResult.error(fosterwxMobile.getMobileUnioCode() + "设置的持续时间超过模板的长度");
+                        }
+
+                        fosterwxMobileTaskTimeListService.insertByMobile(fosterwxMobile, fosterwxMobileTaskTimeList);
                         ajaxResult = fosterwxTaskScheduleService.insertByTaskDate(fosterwxMobile, fosterwxMobileTaskTimeList, authUser, false);
                     }
-                } else if (null != fosterwxMobileTaskTimeList.getTaskEndAt() && oldTimeList.get(oldTimeList.size() - 1).getTaskEndAt() == null) {
-                    fosterwxMobileTaskTimeListService.update(new FosterwxMobileTaskTimeList() {{
-                        setTaskEndAt(fosterwxMobileTaskTimeList.getTaskEndAt());
-                    }}, new LambdaQueryWrapper<FosterwxMobileTaskTimeList>().eq(FosterwxMobileTaskTimeList::getMobileUnioCode, fosterwxMobile.getMobileUnioCode()));
-                    // 删除后面的任务
-                    fosterwxTaskScheduleService.remove(new LambdaQueryWrapper<FosterwxTaskSchedule>().eq(FosterwxTaskSchedule::getStationId, oldVO.getStationId()).eq(FosterwxTaskSchedule::getMobileCode, oldVO.getMobileCode()).gt(FosterwxTaskSchedule::getSendDate, fosterwxMobileTaskTimeList.getTaskEndAt()));
+                } else {
+                    // 原有任务
+                    if (null != fosterwxMobileTaskTimeList.getTaskStartAt() && oldTimeList.get(oldTimeList.size() - 1).getTaskStartAt() == null) {
+                        if (fosterwxMobile.getWxStatus() != 2) {
+                            ajaxResult = fosterwxTaskScheduleService.insertByTaskDate(fosterwxMobile, fosterwxMobileTaskTimeList, authUser, false);
+                        }
+                    } else if (null != fosterwxMobileTaskTimeList.getTaskEndAt() && oldTimeList.get(oldTimeList.size() - 1).getTaskEndAt() == null) {
+                        fosterwxMobileTaskTimeListService.update(new FosterwxMobileTaskTimeList() {{
+                            setTaskEndAt(fosterwxMobileTaskTimeList.getTaskEndAt());
+                        }}, new LambdaQueryWrapper<FosterwxMobileTaskTimeList>().eq(FosterwxMobileTaskTimeList::getMobileUnioCode, fosterwxMobile.getMobileUnioCode()));
+                        // 删除后面的任务
+                        fosterwxTaskScheduleService.remove(new LambdaQueryWrapper<FosterwxTaskSchedule>().eq(FosterwxTaskSchedule::getStationId, oldVO.getStationId()).eq(FosterwxTaskSchedule::getMobileCode, oldVO.getMobileCode()).gt(FosterwxTaskSchedule::getSendDate, fosterwxMobileTaskTimeList.getTaskEndAt()));
+                    }
                 }
             }
             // 判断微信状态是否更新为封禁
@@ -240,7 +243,7 @@ public class FosterwxMobileController extends BaseController<FosterwxMobile> {
             }
             // 判断微信状态是否更新为正常
             if (fosterwxMobile.getWxStatus() == 1 && oldVO.getWxStatus() == 2) {
-                ajaxResult = fosterwxTaskScheduleService.insertByTaskDate(fosterwxMobile, fosterwxMobileTaskTimeList, authUser, true);
+                ajaxResult = fosterwxTaskScheduleService.insertByTaskDate(fosterwxMobile, oldTimeList.get(oldTimeList.size() - 1), authUser, true);
             }
             if (ajaxResult != null) {
                 return AjaxResult.error(id + "账号批量操作中出现错误");