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

新增/编辑账号的时候 根据设置的任务开始日期 生成任务排期

lqc 5 лет назад
Родитель
Сommit
9eaf53d8d0

+ 63 - 8
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxMobileController.java

@@ -3,17 +3,19 @@ package com.mokamrp.privates.controller.pangu;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.mokamrp.privates.constant.Constants;
 import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.controller.BaseController;
 import com.mokamrp.privates.entity.PostBasePageHandle;
 import com.mokamrp.privates.help.AjaxResult;
+import com.mokamrp.privates.interceptor.AuthUser;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobile;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobileWxfriend;
-import com.mokamrp.privates.service.pangu.FosterwxMobileWxfriendService;
+import com.mokamrp.privates.mapper.pojo.User;
+import com.mokamrp.privates.service.pangu.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
-import com.mokamrp.privates.service.pangu.FosterwxMobileService;
-import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobile;
-import org.springframework.web.bind.annotation.RequestMapping;
-import com.mokamrp.privates.controller.BaseController;
+
 import javax.validation.Valid;
 import java.util.List;
 import java.util.Map;
@@ -36,6 +38,16 @@ public class FosterwxMobileController extends BaseController<FosterwxMobile> {
 
     @Autowired
     public FosterwxMobileWxfriendService fosterwxMobileWxfriendService;
+
+    @Autowired
+    private FosterTaskScheduleService fosterTaskScheduleService;
+
+    @Autowired
+    private FosterwxStationService fosterwxStationService;
+
+    @Autowired
+    private FosterTaskListService fosterTaskListService;
+
     /*
      * @fast
      * 默认生成的控制器所继承的父类中有index/add/edit/del四个基础方法,均为post json请求
@@ -43,25 +55,68 @@ public class FosterwxMobileController extends BaseController<FosterwxMobile> {
      */
 
     @PostMapping("/list")
-    public Object list(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult){
+    public Object list(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
         }
-        Map<String,Object> res = fosterwxMobileService.getList(postBasePageHandle);
+        Map<String, Object> res = fosterwxMobileService.getList(postBasePageHandle);
         return AjaxResult.success(res);
     }
 
+    @Override
     @GetMapping("/info")
     public Object info(@RequestParam(name = "ids") String ids) {
         if (ids == null || ids.isEmpty()) {
             return AjaxResult.error("ids null");
         }
         FosterwxMobile res = service.getOne(new QueryWrapper<FosterwxMobile>().eq("id", ids));
-        List<FosterwxMobileWxfriend> friendList = fosterwxMobileWxfriendService.list(new QueryWrapper<FosterwxMobileWxfriend>().eq("mobile_id",res.getId()).orderByAsc("seq"));
+        List<FosterwxMobileWxfriend> friendList = fosterwxMobileWxfriendService.list(new QueryWrapper<FosterwxMobileWxfriend>().eq("mobile_id", res.getId()).orderByAsc("seq"));
         res.setFriend(friendList);
         return AjaxResult.success(Constants.SUCCESS, res);
     }
 
+    @PostMapping("/addPro")
+    @Transactional(rollbackFor = Exception.class)
+    public Object addPro(@RequestBody FosterwxMobile fosterwxMobile, @AuthUser User authUser) {
+        // 新增账号
+        fosterwxMobileService.save(fosterwxMobile);
+
+        // 判断开始做任务时间是否设置了
+        AjaxResult ajaxResult = null;
+        if (null != fosterwxMobile.getTaskStartAt() && fosterwxMobile.getWxStatus() != 2) {
+            ajaxResult = fosterTaskScheduleService.insertByTaskDate(fosterwxMobile, authUser);
+        }
+
+        if (null == ajaxResult) return AjaxResult.success("新增账号成功");
+
+        return ajaxResult;
+    }
+
+    @PutMapping("/edit")
+    @Transactional(rollbackFor = Exception.class)
+    public Object edit(@RequestBody FosterwxMobile fosterwxMobile, @AuthUser User authUser) {
+        // 新增账号
+        fosterwxMobileService.updateById(fosterwxMobile);
+        fosterwxMobile = fosterwxMobileService.getById(fosterwxMobile.getId());
+
+        // 判断开始做任务时间是否设置了
+        AjaxResult ajaxResult = null;
+        if (null != fosterwxMobile.getTaskStartAt()) {
+            if (fosterwxMobile.getWxStatus() != 2) {
+                ajaxResult = fosterTaskScheduleService.insertByTaskDate(fosterwxMobile, authUser);
+            }
+        }
+
+        // 判断微信状态是否更新为封禁
+        if (fosterwxMobile.getWxStatus() == 2) {
+            ajaxResult = fosterTaskScheduleService.deleteByDate(fosterwxMobile, authUser);
+        }
+
+        if (null == ajaxResult) return AjaxResult.success("更新账号成功");
+
+        return ajaxResult;
+    }
+
 
 }
 

+ 19 - 0
src/main/java/com/mokamrp/privates/service/pangu/FosterTaskScheduleService.java

@@ -2,7 +2,10 @@ package com.mokamrp.privates.service.pangu;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.help.AjaxResult;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterTaskSchedule;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobile;
+import com.mokamrp.privates.mapper.pojo.User;
 
 import java.util.Map;
 
@@ -17,4 +20,20 @@ import java.util.Map;
 public interface FosterTaskScheduleService extends IService<FosterTaskSchedule> {
     //.@leon 获取数据列表
     public Map<String, Object> getList(PostBasePageHandle handle);
+
+
+    /**
+     * 根据任务开始时间创建排期
+     * @param fosterwxMobile
+     * @param authUser
+     */
+    public AjaxResult insertByTaskDate(FosterwxMobile fosterwxMobile, User authUser);
+
+    /**
+     * 根据当天时间删除后续的任务
+     * @param fosterwxMobile
+     * @param authUser
+     * @return
+     */
+    public AjaxResult deleteByDate(FosterwxMobile fosterwxMobile, User authUser);
 }

+ 102 - 0
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterTaskScheduleServiceImpl.java

@@ -1,14 +1,24 @@
 package com.mokamrp.privates.service.pangu.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.help.AjaxResult;
+import com.mokamrp.privates.mapper.pangu.FosterTaskListMapper;
 import com.mokamrp.privates.mapper.pangu.FosterTaskScheduleMapper;
+import com.mokamrp.privates.mapper.pangu.FosterwxStationMapper;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterTaskList;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterTaskSchedule;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobile;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxStation;
+import com.mokamrp.privates.mapper.pojo.User;
 import com.mokamrp.privates.service.pangu.FosterTaskScheduleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -27,6 +37,12 @@ public class FosterTaskScheduleServiceImpl extends ServiceImpl<FosterTaskSchedul
     @Autowired
     public FosterTaskScheduleMapper fosterTaskScheduleMapper;
 
+    @Autowired
+    private FosterwxStationMapper fosterwxStationMapper;
+
+    @Autowired
+    private FosterTaskListMapper fosterTaskListMapper;
+
     /**
      * 获取数据列表 支持分页
      * @param handle
@@ -42,4 +58,90 @@ public class FosterTaskScheduleServiceImpl extends ServiceImpl<FosterTaskSchedul
         resMap.put("total", pageObj.getTotal());
         return resMap;
     }
+
+    /**
+     * 根据开始任务时间生成排期
+     * @param fosterwxMobile
+     * @param authUser
+     */
+    @Override
+    public AjaxResult insertByTaskDate(FosterwxMobile fosterwxMobile, User authUser) {
+        // 获取站点信息
+        FosterwxStation fosterwxStation = fosterwxStationMapper.selectById(fosterwxMobile.getStationId());
+
+        if (fosterwxStation == null) return AjaxResult.error(fosterwxMobile.getStationId() + "站点不存在!");
+
+        LocalDate startDate = fosterwxMobile.getTaskStartAt().toLocalDate();
+
+        // 根据站点绑定的任务模板获取模板列表
+        LambdaQueryWrapper<FosterTaskList> fosterTaskListLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        fosterTaskListLambdaQueryWrapper.eq(FosterTaskList::getTemplateId, fosterwxStation.getTaskTemplateId());
+        List<FosterTaskList> fosterTaskLists = fosterTaskListMapper.selectList(fosterTaskListLambdaQueryWrapper);
+
+        for (FosterTaskList fosterTaskList : fosterTaskLists) {
+            FosterTaskSchedule fosterTaskSchedule = new FosterTaskSchedule();
+            fosterTaskSchedule.setStationId(fosterwxStation.getId());
+            fosterTaskSchedule.setStationName(fosterwxStation.getStationName());
+            fosterTaskSchedule.setMobileCode(fosterwxMobile.getMobileCode());
+            fosterTaskSchedule.setTemplateId(fosterwxStation.getTaskTemplateId());
+            fosterTaskSchedule.setTaskId(fosterTaskList.getId());
+            fosterTaskSchedule.setTaskStatus(0);
+            fosterTaskSchedule.setTaskSendStatus(0);
+            fosterTaskSchedule.setSendDate(startDate);
+            fosterTaskSchedule.setSendTime(null);
+            fosterTaskSchedule.setErrMsg("");
+            fosterTaskSchedule.setMark("");
+            fosterTaskSchedule.setDelFlg(1);
+            fosterTaskSchedule.setCreateUid(authUser.getId());
+            fosterTaskSchedule.setUpdateUid(authUser.getId());
+            fosterTaskSchedule.setCreateAt(LocalDateTime.now());
+            fosterTaskSchedule.setUpdateAt(LocalDateTime.now());
+
+            fosterTaskScheduleMapper.insert(fosterTaskSchedule);
+
+            startDate = startDate.plusDays(1);
+        }
+
+        return AjaxResult.success("新增账号成功");
+    }
+
+    /**
+     * 根据当天时间删除后续任务
+     * @param fosterwxMobileService
+     * @param authUser
+     * @return
+     */
+    @Override
+    public AjaxResult deleteByDate(FosterwxMobile fosterwxMobile, User authUser) {
+        LocalDate today = LocalDate.now();
+        LocalDateTime localDateTime = LocalDateTime.now();
+
+        // 获取站点信息
+        FosterwxStation fosterwxStation = fosterwxStationMapper.selectById(fosterwxMobile.getStationId());
+
+        if (fosterwxStation == null) return AjaxResult.error(fosterwxMobile.getStationId() + "站点不存在!");
+
+        // 根据站点id 手机编号 模板id 获取今天之后的任务
+        LambdaQueryWrapper<FosterTaskSchedule> fosterTaskScheduleLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        fosterTaskScheduleLambdaQueryWrapper.eq(FosterTaskSchedule::getStationId, fosterwxStation.getId());
+        fosterTaskScheduleLambdaQueryWrapper.eq(FosterTaskSchedule::getMobileCode, fosterwxMobile.getMobileCode());
+        fosterTaskScheduleLambdaQueryWrapper.eq(FosterTaskSchedule::getTemplateId, fosterwxStation.getTaskTemplateId());
+        fosterTaskScheduleLambdaQueryWrapper.ge(FosterTaskSchedule::getSendDate, today);
+        fosterTaskScheduleLambdaQueryWrapper.orderByAsc(FosterTaskSchedule::getId);
+
+        List<FosterTaskSchedule> fosterTaskScheduleList = fosterTaskScheduleMapper.selectList(fosterTaskScheduleLambdaQueryWrapper);
+
+        for (FosterTaskSchedule fosterTaskSchedule : fosterTaskScheduleList) {
+            // 需要单独判断今天的发送时间是不是已经过去了 没有过去需要删除任务
+            if (fosterTaskSchedule.getSendDate().equals(today) && localDateTime.isAfter(fosterTaskSchedule.getSendTime()))
+                continue;
+
+            FosterTaskSchedule updateVO = new FosterTaskSchedule();
+            updateVO.setId(fosterTaskSchedule.getId());
+            updateVO.setDelFlg(0);
+            fosterTaskScheduleMapper.updateById(updateVO);
+        }
+
+        return AjaxResult.success("修改成功");
+    }
 }

+ 2 - 0
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterTaskTemplateServiceImpl.java

@@ -39,6 +39,8 @@ public class FosterTaskTemplateServiceImpl extends ServiceImpl<FosterTaskTemplat
         Integer page = handle.getPage();
         LambdaQueryWrapper<FosterTaskTemplate> taskTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>();
         taskTemplateLambdaQueryWrapper.eq(FosterTaskTemplate::getTemplateName, templateName);
+        taskTemplateLambdaQueryWrapper.eq(FosterTaskTemplate::getDelFlg, 1);
+        taskTemplateLambdaQueryWrapper.orderByDesc(FosterTaskTemplate::getId);
 
         Page<FosterTaskTemplate> taskTemplatePage = new Page<>(page, pageSize);
 

+ 13 - 2
src/test/java/com/mokamrp/Tests.java

@@ -5,6 +5,8 @@ import org.junit.Test;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.NumberFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
 
 public class Tests {
 
@@ -17,8 +19,17 @@ public class Tests {
         //返回结果
         return nf.format(d);
     }
+
+    @Test
+    public void test() {
+        System.out.println(BigDecimal.valueOf(1f / 10000).setScale(5, RoundingMode.HALF_EVEN));
+    }
+
     @Test
-    public void test(){
-        System.out.println(BigDecimal.valueOf(1f/10000).setScale(5, RoundingMode.HALF_EVEN));
+    public void test2() {
+        LocalDateTime localDateTime = LocalDateTime.now();
+        System.out.println(localDateTime);
+        LocalDate localDate = localDateTime.toLocalDate();
+        System.out.println(localDate);
     }
 }