leon пре 4 година
родитељ
комит
b678669e64
65 измењених фајлова са 2212 додато и 201 уклоњено
  1. 48 11
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashAccountScheduleController.java
  2. 18 0
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashMobileController.java
  3. 147 8
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashOasBoxController.java
  4. 57 0
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashOasBoxMobileGroupController.java
  5. 16 3
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashScheduleTaskListController.java
  6. 22 2
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashTaskListController.java
  7. 29 0
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashTaskTemplateController.java
  8. 56 0
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxDomainController.java
  9. 2 2
      src/main/java/com/mokamrp/privates/controller/pangu/FosterwxMobileController.java
  10. 4 0
      src/main/java/com/mokamrp/privates/entity/PostBasePageHandle.java
  11. 14 0
      src/main/java/com/mokamrp/privates/entity/SetIdssHandle.java
  12. 5 2
      src/main/java/com/mokamrp/privates/entity/pangu/FosterwxCashAccountScheduleHandle.java
  13. 29 0
      src/main/java/com/mokamrp/privates/entity/pangu/FosterwxCashScheduleTaskListHandle.java
  14. 30 0
      src/main/java/com/mokamrp/privates/entity/pangu/FosterwxCashTaskListHandle.java
  15. 12 0
      src/main/java/com/mokamrp/privates/entity/pangu/GetForsterCashDomainHandle.java
  16. 15 0
      src/main/java/com/mokamrp/privates/entity/pangu/GetFosterwxCashOasBoxMobileGroupHandle.java
  17. 2 2
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashAccountScheduleMapper.java
  18. 5 5
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashAccountScheduleMapper.xml
  19. 1 0
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashMobileGroupMapper.xml
  20. 7 2
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashMobileMapper.xml
  21. 1 0
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashOasBoxGroupMapper.xml
  22. 4 1
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashOasBoxMapper.java
  23. 4 0
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashOasBoxMapper.xml
  24. 22 0
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashOasBoxMobileGroupMapper.java
  25. 26 0
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashOasBoxMobileGroupMapper.xml
  26. 7 4
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashScheduleTaskListMapper.java
  27. 28 2
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashScheduleTaskListMapper.xml
  28. 3 1
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashTaskListMapper.java
  29. 4 1
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashTaskListMapper.xml
  30. 2 1
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashTaskTemplateMapper.java
  31. 11 1
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashTaskTemplateMapper.xml
  32. 22 0
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxDomainMapper.java
  33. 27 0
      src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxDomainMapper.xml
  34. 85 15
      src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxCashAccountSchedule.java
  35. 3 0
      src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxCashMobile.java
  36. 10 0
      src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxCashOasBox.java
  37. 112 0
      src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxCashOasBoxMobileGroup.java
  38. 124 21
      src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxCashScheduleTaskList.java
  39. 4 0
      src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxCashTaskList.java
  40. 155 0
      src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxDomain.java
  41. 2 0
      src/main/java/com/mokamrp/privates/service/CoralApiService.java
  42. 24 9
      src/main/java/com/mokamrp/privates/service/impl/CoralApiServiceImpl.java
  43. 3 1
      src/main/java/com/mokamrp/privates/service/pangu/FosterwxCashAccountScheduleService.java
  44. 21 0
      src/main/java/com/mokamrp/privates/service/pangu/FosterwxCashOasBoxMobileGroupService.java
  45. 11 0
      src/main/java/com/mokamrp/privates/service/pangu/FosterwxCashOasBoxService.java
  46. 22 2
      src/main/java/com/mokamrp/privates/service/pangu/FosterwxCashScheduleTaskListService.java
  47. 2 1
      src/main/java/com/mokamrp/privates/service/pangu/FosterwxCashTaskListService.java
  48. 21 0
      src/main/java/com/mokamrp/privates/service/pangu/FosterwxDomainService.java
  49. 2 1
      src/main/java/com/mokamrp/privates/service/pangu/FosterwxMobileService.java
  50. 107 10
      src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxCashAccountScheduleServiceImpl.java
  51. 44 0
      src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxCashOasBoxMobileGroupServiceImpl.java
  52. 152 3
      src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxCashOasBoxServiceImpl.java
  53. 167 13
      src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxCashScheduleTaskListServiceImpl.java
  54. 3 2
      src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxCashTaskListServiceImpl.java
  55. 4 2
      src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxCashTaskTemplateServiceImpl.java
  56. 44 0
      src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxDomainServiceImpl.java
  57. 11 3
      src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxMobileServiceImpl.java
  58. 185 0
      src/main/java/com/mokamrp/privates/task/pangu/SyncCreateCashTask.java
  59. 92 0
      src/main/java/com/mokamrp/privates/task/pangu/SyncFosterwxCash.java
  60. 30 0
      src/main/java/com/mokamrp/privates/utils/pangu/redis/task/TaskRedis.java
  61. BIN
      src/main/resources/static/养号变现导入排期.xls
  62. BIN
      src/main/resources/static/盘古变现公众号小程序账号导入.xls
  63. 67 70
      src/test/java/com/mokamrp/AutoMPPangu.java
  64. 12 0
      src/test/java/com/mokamrp/Tests.java
  65. 13 0
      src/test/java/com/mokamrp/WebTest.java

+ 48 - 11
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashAccountScheduleController.java

@@ -1,17 +1,22 @@
 package com.mokamrp.privates.controller.pangu;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.mokamrp.privates.constant.HttpStatus;
 import com.mokamrp.privates.controller.BaseController;
 import com.mokamrp.privates.entity.ResHandle;
 import com.mokamrp.privates.entity.VoltaHandle;
 import com.mokamrp.privates.entity.pangu.FosterwxCashAccountScheduleHandle;
+import com.mokamrp.privates.entity.pangu.FosterwxCashScheduleTaskListHandle;
 import com.mokamrp.privates.help.AjaxResult;
 import com.mokamrp.privates.help.Analysis;
 import com.mokamrp.privates.interceptor.AuthUser;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashAccountSchedule;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashScheduleTaskList;
 import com.mokamrp.privates.mapper.pojo.User;
 import com.mokamrp.privates.service.pangu.FosterwxCashAccountScheduleService;
 import com.mokamrp.privates.service.pangu.FosterwxCashScheduleTaskListService;
+import com.mokamrp.privates.service.pangu.FosterwxCashTaskListService;
+import com.mokamrp.privates.service.pangu.FosterwxCashTaskTemplateService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -49,6 +54,12 @@ public class FosterwxCashAccountScheduleController extends BaseController<Foster
     @Autowired
     public FosterwxCashScheduleTaskListService fosterwxCashScheduleTaskListService;
 
+    @Autowired
+    public FosterwxCashTaskTemplateService fosterwxCashTaskTemplateService;
+
+    @Autowired
+    public FosterwxCashTaskListService fosterwxCashTaskListService;
+
     /*
      * @fast
      * 默认生成的控制器所继承的父类中有index/add/edit/del四个基础方法,均为post json请求
@@ -118,25 +129,51 @@ public class FosterwxCashAccountScheduleController extends BaseController<Foster
 
     @PostMapping("/immediateCreate")
     @Transactional(rollbackFor = Exception.class)
-    @ApiOperation(value = "立即生成----缺少typer的接口")
-    public Object immediateCreate(FosterwxCashAccountScheduleHandle handle) {
-        Arrays.asList(handle.getIds().split(REGEX)).forEach(id -> fosterwxCashAccountScheduleService.createTask(Integer.valueOf(id)));
-
-        return AjaxResult.success("立即生成成功");
+    @ApiOperation(value = "生成")
+    public Object immediateCreate(@RequestBody FosterwxCashAccountScheduleHandle handle) {
+        Arrays.asList(handle.getIds().split(REGEX)).forEach(id -> {
+            List<FosterwxCashScheduleTaskList> newsList = fosterwxCashAccountScheduleService.createTask(Integer.valueOf(id));
+            // 由于不能浪费公众号发文为 需要整合起来一起发送
+            // 调用typer生成链接
+            fosterwxCashScheduleTaskListService.create(newsList);
+        });
+
+        return AjaxResult.success("生成成功");
     }
 
     @PostMapping("/preview")
-    @ApiOperation(value = "预览按钮---缺少老王的方法")
-    public Object priview(FosterwxCashAccountScheduleHandle handle) {
-        // TODO 等老王的接口
+    @ApiOperation(value = "预览按钮 只需要传任务排期的id")
+    public Object priview(@RequestBody FosterwxCashAccountScheduleHandle handle) {
+        FosterwxCashScheduleTaskListHandle fosterwxCashScheduleTaskListHandle = new FosterwxCashScheduleTaskListHandle();
+        fosterwxCashScheduleTaskListHandle.setPage(1);
+        fosterwxCashScheduleTaskListHandle.setPageSize(100000);
+        fosterwxCashScheduleTaskListHandle.setScheduleId(handle.getId());
+        ResHandle<List<FosterwxCashScheduleTaskList>> resHandle = fosterwxCashScheduleTaskListService.getList(fosterwxCashScheduleTaskListHandle);
+
+        resHandle.getList().forEach(fosterwxCashScheduleTaskList -> fosterwxCashScheduleTaskList.setFosterwxCashTaskList(fosterwxCashTaskListService.getById(fosterwxCashScheduleTaskList.getTaskId())));
 
-        return AjaxResult.success("");
+        return AjaxResult.success(resHandle);
     }
 
     @PostMapping("/cancelTask")
     @ApiOperation(value = "取消任务按钮")
-    public Object cancelTask(FosterwxCashAccountScheduleHandle handle, @AuthUser User user) {
-        Arrays.asList(handle.getIds().split(REGEX)).forEach(id -> fosterwxCashScheduleTaskListService.cancelTask(Integer.valueOf(id), user.getId()));
+    public Object cancelTask(@RequestBody FosterwxCashAccountScheduleHandle handle, @AuthUser User user) {
+        Arrays.asList(handle.getIds().split(REGEX)).forEach(id -> {
+            fosterwxCashAccountScheduleService.updateById(new FosterwxCashAccountSchedule() {{
+                setId(Integer.valueOf(id));
+                setStatus(0);
+                setUpdateAt(LocalDateTime.now());
+                setUpdateUid(user.getId());
+            }});
+
+            LambdaQueryWrapper<FosterwxCashScheduleTaskList> fosterwxCashScheduleTaskListLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            fosterwxCashScheduleTaskListLambdaQueryWrapper.eq(FosterwxCashScheduleTaskList::getScheduleId, id);
+            fosterwxCashScheduleTaskListLambdaQueryWrapper.notIn(FosterwxCashScheduleTaskList::getStatus, 3, 5, 6);
+
+            List<FosterwxCashScheduleTaskList> fosterwxCashScheduleTaskLists = fosterwxCashScheduleTaskListService.list(fosterwxCashScheduleTaskListLambdaQueryWrapper);
+            fosterwxCashScheduleTaskLists.forEach(fosterwxCashScheduleTaskList -> fosterwxCashScheduleTaskListService.cancelTask(fosterwxCashScheduleTaskList.getId(), user.getId()));
+
+        });
 
         return AjaxResult.success("取消任务成功");
     }

+ 18 - 0
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashMobileController.java

@@ -1,11 +1,15 @@
 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.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.SetGroupHandle;
 import com.mokamrp.privates.entity.SetIdsHandle;
 import com.mokamrp.privates.help.AjaxResult;
 import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBox;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -62,5 +66,19 @@ public class FosterwxCashMobileController extends BaseController<FosterwxCashMob
         fosterwxCashMobileService.update(save,new QueryWrapper<FosterwxCashMobile>().in("id",setIdsHandle.getIds()));
         return AjaxResult.success();
     }
+
+    @ApiOperation(value = "批量设置分组")
+    @PostMapping("/setGroup")
+    public Object setGroup(@Valid @RequestBody SetGroupHandle handle, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        FosterwxCashMobile save = new FosterwxCashMobile();
+        save.setGroupId(handle.getGroupId());
+        save.setUpdateAt(LocalDateTime.now());
+        service.update(save, new QueryWrapper<FosterwxCashMobile>().in("id", handle.getIds()));
+//        this.sync();
+        return AjaxResult.success(Constants.SUCCESS, true);
+    }
 }
 

+ 147 - 8
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashOasBoxController.java

@@ -1,24 +1,40 @@
 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.HttpMsg;
 import com.mokamrp.privates.constant.HttpStatus;
-import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.*;
+import com.mokamrp.privates.entity.pangu.GetFosterwxCashOasBoxMobileGroupHandle;
 import com.mokamrp.privates.help.AjaxResult;
-import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.help.Analysis;
+import com.mokamrp.privates.interceptor.AuthUser;
+import com.mokamrp.privates.mapper.pangu.pojo.Custservice;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashMobileGroup;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBoxMobileGroup;
+import com.mokamrp.privates.mapper.pojo.User;
+import com.mokamrp.privates.service.pangu.FosterwxCashMobileGroupService;
+import com.mokamrp.privates.service.pangu.FosterwxCashOasBoxMobileGroupService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.SwaggerDefinition;
+import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.*;
 import com.mokamrp.privates.service.pangu.FosterwxCashOasBoxService;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBox;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import com.mokamrp.privates.controller.BaseController;
+import org.springframework.web.multipart.MultipartFile;
+
 import javax.validation.Valid;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.List;
 
-import org.springframework.web.bind.annotation.RestController;
-
 
 /**
  * <p>
@@ -29,12 +45,16 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2021-10-09
  */
 @RestController
+@Api(tags = "公众号/小程序模块")
 @RequestMapping("/pangu/fosterwxCashOasBox")
 public class FosterwxCashOasBoxController extends BaseController<FosterwxCashOasBox> {
 
     @Autowired
     public FosterwxCashOasBoxService fosterwxCashOasBoxService;
 
+    @Autowired
+    public FosterwxCashOasBoxMobileGroupService fosterwxCashOasBoxMobileGroupService;
+
     /*
      * @fast
      * 默认生成的控制器所继承的父类中有index/add/edit/del四个基础方法,均为post json请求
@@ -42,7 +62,7 @@ public class FosterwxCashOasBoxController extends BaseController<FosterwxCashOas
      */
 
     @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());
         }
@@ -50,6 +70,125 @@ public class FosterwxCashOasBoxController extends BaseController<FosterwxCashOas
         return AjaxResult.success(res);
     }
 
+    @PostMapping("/edit")
+    public Object edit(@Valid @RequestBody EditHandle<FosterwxCashOasBox> editHandle, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        this.onUpdate(editHandle);
+        if (editHandle.getRaw().getMobileGroupIds() != null || editHandle.getRaw().getMobileGroupIds().size() > 0) {
+            fosterwxCashOasBoxMobileGroupService.remove(new QueryWrapper<FosterwxCashOasBoxMobileGroup>().eq("oas_box_id", editHandle.getIds()));
+            for (Integer groupId : editHandle.getRaw().getMobileGroupIds()) {
+                FosterwxCashOasBoxMobileGroup add = new FosterwxCashOasBoxMobileGroup();
+                add.setOasBoxId(Integer.parseInt(editHandle.getIds()));
+                add.setCashMobileGroupId(groupId);
+                add.setUpdateAt(LocalDateTime.now());
+                add.setCreateAt(LocalDateTime.now());
+                fosterwxCashOasBoxMobileGroupService.save(add);
+            }
+        }
+        service.update(editHandle.getRaw(), new QueryWrapper<FosterwxCashOasBox>().in("id", editHandle.getIds()));
+        return AjaxResult.success(Constants.SUCCESS, true);
+    }
+
+    @ApiOperation(value = "批量设置分组")
+    @PostMapping("/setGroup")
+    public Object setGroup(@Valid @RequestBody SetGroupHandle setGroupHandle, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        FosterwxCashOasBox save = new FosterwxCashOasBox();
+        save.setGroupId(setGroupHandle.getGroupId());
+        save.setUpdateAt(LocalDateTime.now());
+        service.update(save, new QueryWrapper<FosterwxCashOasBox>().in("id", setGroupHandle.getIds()));
+//        this.sync();
+        return AjaxResult.success(Constants.SUCCESS, true);
+    }
+
+    @ApiOperation(value = "批量设置账号分组")
+    @PostMapping("/setMobileGroup")
+    public Object setMobileGroup(@Valid @RequestBody SetIdssHandle handle, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        //.遍历公众号小程序ID
+        for (Integer localId : handle.getLocalIds()) {
+            //.遍历账号分组ID
+            for (Integer id : handle.getIds()) {
+                Integer has = fosterwxCashOasBoxMobileGroupService.count(new QueryWrapper<FosterwxCashOasBoxMobileGroup>()
+                        .eq("oas_box_id", localId)
+                        .eq("cash_mobile_group_id", id));
+                if (has > 0) {
+                    continue;
+                }
+                FosterwxCashOasBoxMobileGroup add = new FosterwxCashOasBoxMobileGroup();
+                add.setCashMobileGroupId(id);
+                add.setOasBoxId(localId);
+                add.setCreateAt(LocalDateTime.now());
+                add.setUpdateAt(LocalDateTime.now());
+                fosterwxCashOasBoxMobileGroupService.save(add);
+            }
+        }
+        return AjaxResult.success(Constants.SUCCESS, true);
+    }
+
+    @GetMapping("/info")
+    public Object info(@RequestParam(name = "ids") String ids) {
+        if (ids == null || ids.isEmpty()) {
+            return AjaxResult.error("ids null");
+        }
+        FosterwxCashOasBox res = service.getOne(new QueryWrapper<FosterwxCashOasBox>().eq("id", ids));
+        GetFosterwxCashOasBoxMobileGroupHandle handle = new GetFosterwxCashOasBoxMobileGroupHandle();
+        handle.setOasBoxId(res.getId());
+        handle.setPage(1);
+        handle.setPagesize(999999);
+        ResHandle<List<FosterwxCashOasBoxMobileGroup>> list = fosterwxCashOasBoxMobileGroupService.getList(handle);
+        res.setMobileGroups(list.getList());
+        return AjaxResult.success(Constants.SUCCESS, res);
+    }
+
+
+    @ApiOperation(value = "批量设置小程序类型")
+    @PostMapping("/setBoxLocation")
+    public Object setBoxLocation(@Valid @RequestBody SetIdsHandle handle, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        FosterwxCashOasBox save = new FosterwxCashOasBox();
+        save.setBoxLocation(handle.getId());
+        save.setUpdateAt(LocalDateTime.now());
+        service.update(save, new QueryWrapper<FosterwxCashOasBox>().in("id", handle.getIds()));
+//        this.sync();
+        return AjaxResult.success(Constants.SUCCESS, true);
+    }
+
+    @PostMapping("/import")
+    public Object uploadFile(@RequestBody MultipartFile file, @AuthUser User authUser) {
+        Map<String, Object> map = new HashMap<>(16);
+        Map<Integer, String> feild = new HashMap<>();
+        feild.put(0, "stationName");
+        feild.put(1, "groupId");
+        feild.put(2, "mobileGroupId");
+        feild.put(3, "type");
+        feild.put(4, "boxType|default");
+        feild.put(5, "boxLocation|default");
+        feild.put(6, "ghId");
+        feild.put(7, "name");
+        feild.put(8, "scope");
+        feild.put(9, "remark|default");
+        List<Map<String, String>> row = new ArrayList<>();
+        VoltaHandle<ArrayList<Map<String, String>>> voltaRes = Analysis.analysis(file, feild);
+        if (voltaRes.getErr() != null) {
+            return AjaxResult.error(voltaRes.getErr());
+        }
+        row = voltaRes.getData();
+        try {
+            VoltaHandle<Boolean> res = fosterwxCashOasBoxService.importData(row, authUser);
+        } catch (Exception e) {
+            return AjaxResult.error(e.getMessage());
+        }
+        return AjaxResult.success(HttpMsg.importSuccess);
+    }
 
 }
 

+ 57 - 0
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashOasBoxMobileGroupController.java

@@ -0,0 +1,57 @@
+package com.mokamrp.privates.controller.pangu;
+
+import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.pangu.GetFosterwxCashOasBoxMobileGroupHandle;
+import com.mokamrp.privates.help.AjaxResult;
+import com.mokamrp.privates.entity.ResHandle;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.service.pangu.FosterwxCashOasBoxMobileGroupService;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBoxMobileGroup;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.controller.BaseController;
+import javax.validation.Valid;
+import java.util.Map;
+import java.util.List;
+
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 小程序/公众号库绑定账号分组关联表 前端控制器
+ * </p>
+ *
+ * @author leon
+ * @since 2021-10-15
+ */
+@RestController
+@RequestMapping("/fosterwxCashOasBoxMobileGroup")
+public class FosterwxCashOasBoxMobileGroupController extends BaseController<FosterwxCashOasBoxMobileGroup> {
+
+    @Autowired
+    public FosterwxCashOasBoxMobileGroupService fosterwxCashOasBoxMobileGroupService;
+
+    /*
+     * @fast
+     * 默认生成的控制器所继承的父类中有index/add/edit/del四个基础方法,均为post json请求
+     * 如果需要定制化,需要将BaseController中对应的方法复制到当前控制器,然后进行修改
+     */
+
+    @PostMapping("/list")
+    public Object list(@Valid @RequestBody GetFosterwxCashOasBoxMobileGroupHandle handle, BindingResult bindingResult){
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        ResHandle<List<FosterwxCashOasBoxMobileGroup>> res = fosterwxCashOasBoxMobileGroupService.getList(handle);
+
+        return AjaxResult.success(res);
+    }
+
+
+}
+

+ 16 - 3
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashScheduleTaskListController.java

@@ -2,12 +2,15 @@ package com.mokamrp.privates.controller.pangu;
 
 import com.mokamrp.privates.constant.HttpStatus;
 import com.mokamrp.privates.controller.BaseController;
-import com.mokamrp.privates.entity.PostBasePageHandle;
 import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.entity.pangu.FosterwxCashScheduleTaskListHandle;
 import com.mokamrp.privates.help.AjaxResult;
+import com.mokamrp.privates.interceptor.AuthUser;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashScheduleTaskList;
+import com.mokamrp.privates.mapper.pojo.User;
 import com.mokamrp.privates.service.pangu.FosterwxCashScheduleTaskListService;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -16,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
+import java.util.Arrays;
 import java.util.List;
 
 
@@ -32,6 +36,8 @@ import java.util.List;
 @Api(tags = "变现-任务列表")
 public class FosterwxCashScheduleTaskListController extends BaseController<FosterwxCashScheduleTaskList> {
 
+    public static final String REGEX = ",";
+
     @Autowired
     public FosterwxCashScheduleTaskListService fosterwxCashScheduleTaskListService;
 
@@ -42,14 +48,21 @@ public class FosterwxCashScheduleTaskListController extends BaseController<Foste
      */
 
     @PostMapping("/list")
-    public Object list(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult) {
+    @ApiOperation(value = "获取任务列表,排期页面过来的情况传排期的id就能获取他的任务")
+    public Object list(@Valid @RequestBody FosterwxCashScheduleTaskListHandle handle, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
         }
-        ResHandle<List<FosterwxCashScheduleTaskList>> res = fosterwxCashScheduleTaskListService.getList(postBasePageHandle);
+        ResHandle<List<FosterwxCashScheduleTaskList>> res = fosterwxCashScheduleTaskListService.getList(handle);
         return AjaxResult.success(res);
     }
 
+    @PostMapping("/cancelTask")
+    @ApiOperation(value = "取消任务按钮")
+    public Object cancelTask(@RequestBody FosterwxCashScheduleTaskListHandle handle, @AuthUser User user) {
+        Arrays.asList(handle.getIds().split(REGEX)).forEach(id -> fosterwxCashScheduleTaskListService.cancelTask(Integer.valueOf(id), user.getId()));
 
+        return AjaxResult.success("取消任务成功");
+    }
 }
 

+ 22 - 2
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashTaskListController.java

@@ -3,11 +3,15 @@ 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.entity.AddHandle;
 import com.mokamrp.privates.entity.DelHandle;
 import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.pangu.FosterwxCashTaskListHandle;
 import com.mokamrp.privates.help.AjaxResult;
 import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.interceptor.AuthUser;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashTaskTemplate;
+import com.mokamrp.privates.mapper.pojo.User;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -47,14 +51,30 @@ public class FosterwxCashTaskListController extends BaseController<FosterwxCashT
      */
 
     @PostMapping("/list")
-    public Object list(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult){
+    public Object list(@Valid @RequestBody FosterwxCashTaskListHandle handle, BindingResult bindingResult){
         if (bindingResult.hasErrors()) {
             return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
         }
-        ResHandle<List<FosterwxCashTaskList>> res = fosterwxCashTaskListService.getList(postBasePageHandle);
+        ResHandle<List<FosterwxCashTaskList>> res = fosterwxCashTaskListService.getList(handle);
         return AjaxResult.success(res);
     }
 
+    @PostMapping("/addPro")
+    public Object addPro(@Valid @RequestBody AddHandle<FosterwxCashTaskList> addHandle, BindingResult bindingResult, @AuthUser User authUser) {
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        this.onInsert(addHandle.getRaw());
+        addHandle.getRaw().setUpdateUid(authUser.getId());
+        addHandle.getRaw().setCreateUid(authUser.getId());
+        Boolean res = service.save(addHandle.getRaw());
+        if (res) {
+            return AjaxResult.success(Constants.SUCCESS, res);
+        } else {
+            return AjaxResult.error("新增失败", res);
+        }
+    }
+
     /**
      * 软删除
      * @param delHandle

+ 29 - 0
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxCashTaskTemplateController.java

@@ -3,11 +3,14 @@ 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.entity.AddHandle;
 import com.mokamrp.privates.entity.DelHandle;
 import com.mokamrp.privates.entity.PostBasePageHandle;
 import com.mokamrp.privates.help.AjaxResult;
 import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.interceptor.AuthUser;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashTaskList;
+import com.mokamrp.privates.mapper.pojo.User;
 import com.mokamrp.privates.service.pangu.FosterwxCashTaskListService;
 import org.apache.tomcat.jni.Local;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -70,6 +73,7 @@ public class FosterwxCashTaskTemplateController extends BaseController<FosterwxC
             List<FosterwxCashTaskList> taskList =  fosterwxCashTaskListService.list(
                     new QueryWrapper<FosterwxCashTaskList>()
                             .eq("template_id",fosterwxCashTaskTemplate.getId())
+                            .eq("del_flg",1)
                             .last("limit 6")
             );
             fosterwxCashTaskTemplate.setTaskList(taskList);
@@ -77,6 +81,31 @@ public class FosterwxCashTaskTemplateController extends BaseController<FosterwxC
         return AjaxResult.success(res);
     }
 
+    @PostMapping("/addPro")
+    public Object addPro(@Valid @RequestBody AddHandle<FosterwxCashTaskTemplate> addHandle, @AuthUser User authUser, BindingResult bindingResult) {
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        this.onInsert(addHandle.getRaw());
+        FosterwxCashTaskTemplate add = addHandle.getRaw();
+        add.setCreateUid(authUser.getId());
+        add.setUpdateUid(authUser.getId());
+        Boolean res = service.save(add);
+        for (FosterwxCashTaskList fosterwxCashTaskList : add.getTaskList()){
+            fosterwxCashTaskList.setTemplateId(add.getId());
+            fosterwxCashTaskList.setCreateAt(LocalDateTime.now());
+            fosterwxCashTaskList.setUpdateAt(LocalDateTime.now());
+            fosterwxCashTaskList.setCreateUid(authUser.getId());
+            fosterwxCashTaskList.setUpdateUid(authUser.getId());
+            fosterwxCashTaskListService.save(fosterwxCashTaskList);
+        }
+        if (res) {
+            return AjaxResult.success(Constants.SUCCESS, res);
+        } else {
+            return AjaxResult.error("新增失败", res);
+        }
+    }
+
     /**
      * 软删除
      * @param delHandle

+ 56 - 0
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxDomainController.java

@@ -0,0 +1,56 @@
+package com.mokamrp.privates.controller.pangu;
+
+import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.pangu.GetForsterCashDomainHandle;
+import com.mokamrp.privates.help.AjaxResult;
+import com.mokamrp.privates.entity.ResHandle;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.service.pangu.FosterwxDomainService;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxDomain;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.controller.BaseController;
+import javax.validation.Valid;
+import java.util.Map;
+import java.util.List;
+
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 盘古养号域名库 前端控制器
+ * </p>
+ *
+ * @author leon
+ * @since 2021-10-15
+ */
+@RestController
+@RequestMapping("/fosterwxDomain")
+public class FosterwxDomainController extends BaseController<FosterwxDomain> {
+
+    @Autowired
+    public FosterwxDomainService fosterwxDomainService;
+
+    /*
+     * @fast
+     * 默认生成的控制器所继承的父类中有index/add/edit/del四个基础方法,均为post json请求
+     * 如果需要定制化,需要将BaseController中对应的方法复制到当前控制器,然后进行修改
+     */
+
+    @PostMapping("/list")
+    public Object list(@Valid @RequestBody GetForsterCashDomainHandle handle, BindingResult bindingResult){
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        ResHandle<List<FosterwxDomain>> res = fosterwxDomainService.getList(handle);
+        return AjaxResult.success(res);
+    }
+
+
+}
+

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

@@ -327,11 +327,11 @@ public class FosterwxMobileController extends BaseController<FosterwxMobile> {
      * @return
      */
     @PostMapping("/addCashMobileList")
-    public Object addCashMobileList(@Valid @RequestBody SetIdsHandle setIdsHandle, BindingResult bindingResult) {
+    public Object addCashMobileList(@Valid @RequestBody SetIdsHandle handle, BindingResult bindingResult) {
         if (bindingResult.hasErrors()) {
             return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
         }
-        fosterwxMobileService.addCashMobileList(setIdsHandle.getIds());
+        fosterwxMobileService.addCashMobileList(handle);
         return AjaxResult.success();
     }
 

+ 4 - 0
src/main/java/com/mokamrp/privates/entity/PostBasePageHandle.java

@@ -8,6 +8,10 @@ public class PostBasePageHandle {
     private Integer pagesize;
     private Integer id;
     private Integer groupId;
+    private Integer stationId;
+    private Integer mobileId;
+    private Integer createUid;
+    private String title;
     private String name;
     public Integer getPage() {
         return page;

+ 14 - 0
src/main/java/com/mokamrp/privates/entity/SetIdssHandle.java

@@ -0,0 +1,14 @@
+package com.mokamrp.privates.entity;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+@Data
+public class SetIdssHandle {
+    @NotEmpty(message = "ids不可为空")
+    private List<Integer> localIds;
+
+    private List<Integer> ids;
+}

+ 5 - 2
src/main/java/com/mokamrp/privates/entity/pangu/FosterwxCashAccountScheduleHandle.java

@@ -1,8 +1,9 @@
 package com.mokamrp.privates.entity.pangu;
 
-import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 
+import java.time.LocalDate;
+
 /**
  * <p>
  * 盘古微信变现任务列表
@@ -12,13 +13,15 @@ import lombok.Data;
  * @since 2021-10-08
  */
 @Data
-public class FosterwxCashAccountScheduleHandle extends Model<FosterwxCashAccountScheduleHandle> {
+public class FosterwxCashAccountScheduleHandle {
     private Integer page;
     private Integer pageSize;
     private Integer id;
+    private Integer type = 1;
     private Integer groupId;
     private Integer templateId;
     private Integer createUid;
     private String createUser;
     private String ids;
+    private LocalDate scheduleDate;
 }

+ 29 - 0
src/main/java/com/mokamrp/privates/entity/pangu/FosterwxCashScheduleTaskListHandle.java

@@ -0,0 +1,29 @@
+package com.mokamrp.privates.entity.pangu;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 盘古微信变现排期任务列表
+ * </p>
+ *
+ * @author leon
+ * @since 2021-10-08
+ */
+@Data
+public class FosterwxCashScheduleTaskListHandle {
+    private Integer page;
+    private Integer pageSize;
+    private Integer id;
+    private Integer scheduleId;
+    private Integer templateId;
+    private Integer groupId;
+    private Integer taskType;
+    private Integer status;
+    private LocalDateTime sendTimeFrom;
+    private LocalDateTime sendTimeTo;
+    private Integer createUid;
+    private String ids;
+}

+ 30 - 0
src/main/java/com/mokamrp/privates/entity/pangu/FosterwxCashTaskListHandle.java

@@ -0,0 +1,30 @@
+package com.mokamrp.privates.entity.pangu;
+
+import lombok.Data;
+
+@Data
+public class FosterwxCashTaskListHandle {
+    private Integer page;
+    private Integer pagesize;
+    private Integer id;
+    private Integer groupId;
+    private String name;
+    private Integer templateId;
+
+    public Integer getPage() {
+        return page;
+    }
+
+    public void setPage(Integer page) {
+        this.page = page;
+    }
+
+    public Integer getPagesize() {
+        return pagesize;
+    }
+
+    public void setPagesize(Integer pagesize) {
+        this.pagesize = pagesize;
+    }
+}
+

+ 12 - 0
src/main/java/com/mokamrp/privates/entity/pangu/GetForsterCashDomainHandle.java

@@ -0,0 +1,12 @@
+package com.mokamrp.privates.entity.pangu;
+
+import lombok.Data;
+
+@Data
+public class GetForsterCashDomainHandle {
+    private Integer page;
+    private Integer pagesize;
+    private Integer id;
+    private Integer stationId;
+
+}

+ 15 - 0
src/main/java/com/mokamrp/privates/entity/pangu/GetFosterwxCashOasBoxMobileGroupHandle.java

@@ -0,0 +1,15 @@
+package com.mokamrp.privates.entity.pangu;
+
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Data
+public class GetFosterwxCashOasBoxMobileGroupHandle {
+    private Integer page;
+    private Integer pagesize;
+    private Integer id;
+    private Integer oasBoxId;
+    private Integer cashMobileGroupId;
+}

+ 2 - 2
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashAccountScheduleMapper.java

@@ -1,6 +1,6 @@
 package com.mokamrp.privates.mapper.pangu;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashAccountSchedule;
 import org.apache.ibatis.annotations.Param;
@@ -18,5 +18,5 @@ import java.util.List;
  */
 @Component
 public interface FosterwxCashAccountScheduleMapper extends BaseMapper<FosterwxCashAccountSchedule> {
-    public List<FosterwxCashAccountSchedule> getList(@Param("ew") LambdaQueryWrapper<FosterwxCashAccountSchedule> querryWraper, @Param("pagesize") Integer pagesize, @Param("i") int i);
+    public List<FosterwxCashAccountSchedule> getList(@Param("ew") QueryWrapper<FosterwxCashAccountSchedule> querryWraper, @Param("pagesize") Integer pagesize, @Param("i") int i);
 }

+ 5 - 5
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashAccountScheduleMapper.xml

@@ -9,6 +9,7 @@
         <result column="group_id" property="groupId" />
         <result column="template_id" property="templateId" />
         <result column="status" property="status" />
+        <result column="type" property="type" />
         <result column="create_uid" property="createUid" />
         <result column="create_user" property="createUser" />
         <result column="update_uid" property="updateUid" />
@@ -22,10 +23,9 @@
     </sql>
     <select id="getList" resultType="com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashAccountSchedule">
         SELECT
-            account_schedule.id,
+            account_schedule.*,
             mobile_group.group_name,
             task_template.template_name,
-            account_schedule.create_user,
             (
                 SELECT
                     count( id )
@@ -33,7 +33,7 @@
                     pan_fosterwx_cash_schedule_task_list
                 WHERE
                     schedule_id = account_schedule.id
-                  AND STATUS IN ( '2', '4', '5', '6' )) AS created_count,
+                  AND STATUS IN ( '2', '4', '5', '6' )) AS createdCount,
             (
                 SELECT
                     count( id )
@@ -41,8 +41,8 @@
                     pan_fosterwx_cash_schedule_task_list
                 WHERE
                     schedule_id = account_schedule.id
-                  AND STATUS IN ( '5' )) AS sended_count,
-            ( SELECT count( id ) FROM pan_fosterwx_cash_schedule_task_list WHERE schedule_id = account_schedule.id ) AS total_count
+                  AND STATUS IN ( '5' )) AS sendedCount,
+            ( SELECT count( id ) FROM pan_fosterwx_cash_schedule_task_list WHERE schedule_id = account_schedule.id ) AS totalCount
         FROM
             pan_fosterwx_cash_account_schedule account_schedule
         LEFT JOIN pan_fosterwx_cash_task_template task_template ON account_schedule.template_id = task_template.id

+ 1 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashMobileGroupMapper.xml

@@ -22,5 +22,6 @@
         LEFT JOIN (SELECT COUNT(id) AS cnt, group_id
         from pan_fosterwx_cash_mobile
         GROUP BY group_id) AS B ON A.id = B.group_id
+        order by A.id desc
     </select>
 </mapper>

+ 7 - 2
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashMobileMapper.xml

@@ -21,12 +21,17 @@
         SELECT A.*,
                B.mobile_code,
                B.mobile_unio_code,
-               C.station_name
+               C.station_name,
+               D.domain
         FROM pan_fosterwx_cash_mobile as A
         left join pan_fosterwx_mobile as B on A.mobile_id = B.id
         left join pan_fosterwx_station as C on A.station_id = C.id
+        left join pan_fosterwx_domain as D on A.domain_id = D.id and D.status = 1
         <where>
-            <if test="params.groupId != null">and group_id = #{params.groupId}</if>
+            <if test="params.groupId != null">and A.group_id = #{params.groupId}</if>
+            <if test="params.stationId != null">and A.station_id = #{params.stationId}</if>
+            <if test="params.mobileId != null">and A.mobile_id = #{params.mobileId}</if>
         </where>
+        order by A.id desc
     </select>
 </mapper>

+ 1 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashOasBoxGroupMapper.xml

@@ -22,5 +22,6 @@
         LEFT JOIN (SELECT COUNT(id) AS cnt, group_id
         from pan_fosterwx_cash_oas_box
         GROUP BY group_id) AS B ON A.id = B.group_id
+        order by A.id desc
     </select>
 </mapper>

+ 4 - 1
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashOasBoxMapper.java

@@ -1,10 +1,13 @@
 package com.mokamrp.privates.mapper.pangu;
 
+import com.mokamrp.privates.entity.PostBasePageHandle;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBox;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.stereotype.Component;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.PostMapping;
+
 import java.util.List;
 
 /**
@@ -17,5 +20,5 @@ import java.util.List;
  */
 @Component
 public interface FosterwxCashOasBoxMapper extends BaseMapper<FosterwxCashOasBox> {
-    public List<FosterwxCashOasBox> getList(Page<FosterwxCashOasBox> pageObj);
+    public List<FosterwxCashOasBox> getList(Page<FosterwxCashOasBox> pageObj,@Param("params") PostBasePageHandle handle);
 }

+ 4 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashOasBoxMapper.xml

@@ -25,5 +25,9 @@
     </sql>
     <select id="getList" resultType="com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBox">
         SELECT * FROM pan_fosterwx_cash_oas_box
+        <where>
+            <if test="params.groupId != null">and group_id = #{params.groupId}</if>
+        </where>
+        order by id desc
     </select>
 </mapper>

+ 22 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashOasBoxMobileGroupMapper.java

@@ -0,0 +1,22 @@
+package com.mokamrp.privates.mapper.pangu;
+
+import com.mokamrp.privates.entity.pangu.GetFosterwxCashOasBoxMobileGroupHandle;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBoxMobileGroup;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.stereotype.Component;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * <p>
+ * 小程序/公众号库绑定账号分组关联表 Mapper 接口
+ * </p>
+ *
+ * @author leon
+ * @since 2021-10-15
+ */
+@Component
+public interface FosterwxCashOasBoxMobileGroupMapper extends BaseMapper<FosterwxCashOasBoxMobileGroup> {
+    public List<FosterwxCashOasBoxMobileGroup> getList(Page<FosterwxCashOasBoxMobileGroup> pageObj, @Param("params") GetFosterwxCashOasBoxMobileGroupHandle handle);
+}

+ 26 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashOasBoxMobileGroupMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mokamrp.privates.mapper.pangu.FosterwxCashOasBoxMobileGroupMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBoxMobileGroup">
+        <id column="id" property="id" />
+        <result column="oas_box_id" property="oasBoxId" />
+        <result column="cash_mobile_group_id" property="cashMobileGroupId" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, oas_box_id, cash_mobile_group_id, create_at, update_at
+    </sql>
+    <select id="getList" resultType="com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBoxMobileGroup">
+        SELECT A.*,B.group_name as cash_mobile_group_name FROM pan_fosterwx_cash_oas_box_mobile_group as A
+        left join pan_fosterwx_cash_mobile_group as B on A.cash_mobile_group_id = B.id
+        <where>
+            <if test="params.oasBoxId">and A.oas_box_id = #{params.oasBoxId}</if>
+        </where>
+        order by A.id desc
+    </select>
+</mapper>

+ 7 - 4
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashScheduleTaskListMapper.java

@@ -1,10 +1,11 @@
 package com.mokamrp.privates.mapper.pangu;
 
-import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashScheduleTaskList;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.springframework.stereotype.Component;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashScheduleTaskList;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Component;
+
 import java.util.List;
 
 /**
@@ -17,5 +18,7 @@ import java.util.List;
  */
 @Component
 public interface FosterwxCashScheduleTaskListMapper extends BaseMapper<FosterwxCashScheduleTaskList> {
-    public List<FosterwxCashScheduleTaskList> getList(Page<FosterwxCashScheduleTaskList> pageObj);
+    public List<FosterwxCashScheduleTaskList> getList(@Param("ew") LambdaQueryWrapper<FosterwxCashScheduleTaskList> fosterwxCashScheduleTaskListLambdaQueryWrapper, @Param("limit") Integer page, @Param("offset") Integer offset);
+
+    List<FosterwxCashScheduleTaskList> getBannedGhid();
 }

+ 28 - 2
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashScheduleTaskListMapper.xml

@@ -7,11 +7,15 @@
         <id column="id" property="id" />
         <result column="schedule_id" property="scheduleId" />
         <result column="template_id" property="templateId" />
+        <result column="task_id" property="taskId" />
         <result column="group_id" property="groupId" />
         <result column="task_type" property="taskType" />
         <result column="remark" property="remark" />
         <result column="task_content" property="taskContent" />
+        <result column="gh_id" property="ghId" />
+        <result column="send_url" property="sendUrl" />
         <result column="status" property="status" />
+        <result column="type" property="type" />
         <result column="err_info" property="errInfo" />
         <result column="send_time" property="sendTime" />
         <result column="create_uid" property="createUid" />
@@ -23,9 +27,31 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, schedule_id, template_id, group_id, task_type, remark, task_content, status, err_info, send_time, create_uid, update_uid, create_at, update_at
+        id, schedule_id, template_id, task_id, group_id, task_type, remark, task_content, status, err_info, send_time, create_uid, update_uid, create_at, update_at
     </sql>
     <select id="getList" resultType="com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashScheduleTaskList">
-        SELECT * FROM pan_fosterwx_cash_schedule_task_list
+        SELECT
+        task_list.*,
+        task_template.template_name,
+        mobile_group.group_name
+        FROM
+            pan_fosterwx_cash_schedule_task_list task_list
+                LEFT JOIN pan_fosterwx_cash_task_template task_template ON task_template.id = task_list.template_id
+                LEFT JOIN pan_fosterwx_cash_mobile_group mobile_group ON task_list.group_id = mobile_group.id
+        <where>
+            ${ew.sqlSegment}
+        </where>
+        order by task_list.id desc
+        limit #{limit} offset #{offset}
+    </select>
+    <select id="getBannedGhid" resultType="com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashScheduleTaskList">
+        SELECT
+            task_list.*
+        FROM
+            pan_fosterwx_cash_schedule_task_list task_list
+                LEFT JOIN pan_fosterwx_cash_oas_box box ON task_list.gh_id = box.gh_id
+        WHERE
+            box.fobidden_status = 2
+            AND task_list.`status` = 4
     </select>
 </mapper>

+ 3 - 1
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashTaskListMapper.java

@@ -1,5 +1,7 @@
 package com.mokamrp.privates.mapper.pangu;
 
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.pangu.FosterwxCashTaskListHandle;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashTaskList;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -17,5 +19,5 @@ import java.util.List;
  */
 @Component
 public interface FosterwxCashTaskListMapper extends BaseMapper<FosterwxCashTaskList> {
-    public List<FosterwxCashTaskList> getList(Page<FosterwxCashTaskList> pageObj);
+    public List<FosterwxCashTaskList> getList(Page<FosterwxCashTaskList> pageObj,@Param("params") FosterwxCashTaskListHandle handle);
 }

+ 4 - 1
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashTaskListMapper.xml

@@ -30,6 +30,9 @@
         id, template_id, task_type, task_name, title, image, box_type, video_id, tag_id, card_image, url, rich_txt_body, remark, send_at, del_flg, create_uid, update_uid, create_at, update_at
     </sql>
     <select id="getList" resultType="com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashTaskList">
-        SELECT * FROM pan_fosterwx_cash_task_list where del_flg = 1
+        SELECT * FROM pan_fosterwx_cash_task_list
+        where del_flg = 1
+        <if test="params.templateId != null">and template_id = #{params.templateId}</if>
+        order by id desc
     </select>
 </mapper>

+ 2 - 1
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashTaskTemplateMapper.java

@@ -1,5 +1,6 @@
 package com.mokamrp.privates.mapper.pangu;
 
+import com.mokamrp.privates.entity.PostBasePageHandle;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashTaskTemplate;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -17,5 +18,5 @@ import java.util.List;
  */
 @Component
 public interface FosterwxCashTaskTemplateMapper extends BaseMapper<FosterwxCashTaskTemplate> {
-    public List<FosterwxCashTaskTemplate> getList(Page<FosterwxCashTaskTemplate> pageObj);
+    public List<FosterwxCashTaskTemplate> getList(Page<FosterwxCashTaskTemplate> pageObj, @Param("params")PostBasePageHandle handle);
 }

+ 11 - 1
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxCashTaskTemplateMapper.xml

@@ -19,6 +19,16 @@
         id, template_name, template_type, del_flg, create_uid, update_uid, create_at, update_at
     </sql>
     <select id="getList" resultType="com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashTaskTemplate">
-        SELECT * FROM pan_fosterwx_cash_task_template where del_flg = 1
+        SELECT A.* FROM pan_fosterwx_cash_task_template as A
+        <if test="params.title != null">
+            left join (select template_id,title from pan_fosterwx_cash_task_list where title like concat('%',#{params.title},'%') group by template_id,title) as B
+            on B.template_id = A.id
+        </if>
+        where A.del_flg = 1
+        <if test="params.name != null">and A.template_name like concat('%',#{params.name},'%')</if>
+        <if test="params.createUid != null">and A.create_uid = #{params.createUid}</if>
+        <if test="params.id != null">and A.id = #{params.id}</if>
+        <if test="params.title != null">and B.title is not null</if>
+        order by id desc
     </select>
 </mapper>

+ 22 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxDomainMapper.java

@@ -0,0 +1,22 @@
+package com.mokamrp.privates.mapper.pangu;
+
+import com.mokamrp.privates.entity.pangu.GetForsterCashDomainHandle;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxDomain;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.stereotype.Component;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * <p>
+ * 盘古养号域名库 Mapper 接口
+ * </p>
+ *
+ * @author leon
+ * @since 2021-10-15
+ */
+@Component
+public interface FosterwxDomainMapper extends BaseMapper<FosterwxDomain> {
+    public List<FosterwxDomain> getList(Page<FosterwxDomain> pageObj, @Param("params")GetForsterCashDomainHandle handle);
+}

+ 27 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/FosterwxDomainMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mokamrp.privates.mapper.pangu.FosterwxDomainMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.mokamrp.privates.mapper.pangu.pojo.FosterwxDomain">
+        <id column="id" property="id" />
+        <result column="dept_id" property="deptId" />
+        <result column="domain" property="domain" />
+        <result column="is_record" property="isRecord" />
+        <result column="status" property="status" />
+        <result column="forbbiden_at" property="forbbidenAt" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, dept_id, domain, is_record, status, forbbiden_at, create_at, update_at
+    </sql>
+    <select id="getList" resultType="com.mokamrp.privates.mapper.pangu.pojo.FosterwxDomain">
+        SELECT * FROM pan_fosterwx_domain
+        <where>
+            <if test="params.stationId != null">and station_id = #{params.stationId}</if>
+        </where>
+    </select>
+</mapper>

+ 85 - 15
src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxCashAccountSchedule.java

@@ -1,12 +1,14 @@
 package com.mokamrp.privates.mapper.pangu.pojo;
 
-import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+
+import java.io.Serializable;
 import java.time.LocalDate;
-import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
-import java.io.Serializable;
 
 /**
  * <p>
@@ -24,7 +26,7 @@ public class FosterwxCashAccountSchedule extends Model<FosterwxCashAccountSchedu
     /**
      * id
      */
-      @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
     /**
@@ -48,6 +50,11 @@ public class FosterwxCashAccountSchedule extends Model<FosterwxCashAccountSchedu
     private Integer status;
 
     /**
+     * 类型(1:个微任务 2:企微任务)
+     */
+    private Integer type;
+
+    /**
      * 创建人
      */
     private Integer createUid;
@@ -72,6 +79,20 @@ public class FosterwxCashAccountSchedule extends Model<FosterwxCashAccountSchedu
      */
     private LocalDateTime updateAt;
 
+    @TableField(exist = false)
+    private String groupName;
+
+    @TableField(exist = false)
+    private String templateName;
+
+    @TableField(exist = false)
+    private Integer createdCount;
+
+    @TableField(exist = false)
+    private Integer sendedCount;
+
+    @TableField(exist = false)
+    private Integer totalCount;
 
     public Integer getId() {
         return id;
@@ -113,6 +134,14 @@ public class FosterwxCashAccountSchedule extends Model<FosterwxCashAccountSchedu
         this.status = status;
     }
 
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
     public Integer getCreateUid() {
         return createUid;
     }
@@ -158,19 +187,60 @@ public class FosterwxCashAccountSchedule extends Model<FosterwxCashAccountSchedu
         return this.id;
     }
 
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    public String getTemplateName() {
+        return templateName;
+    }
+
+    public void setTemplateName(String templateName) {
+        this.templateName = templateName;
+    }
+
+    public Integer getCreatedCount() {
+        return createdCount;
+    }
+
+    public void setCreatedCount(Integer createdCount) {
+        this.createdCount = createdCount;
+    }
+
+    public Integer getSendedCount() {
+        return sendedCount;
+    }
+
+    public void setSendedCount(Integer sendedCount) {
+        this.sendedCount = sendedCount;
+    }
+
+    public Integer getTotalCount() {
+        return totalCount;
+    }
+
+    public void setTotalCount(Integer totalCount) {
+        this.totalCount = totalCount;
+    }
+
     @Override
     public String toString() {
         return "FosterwxCashAccountSchedule{" +
-        "id=" + id +
-        ", scheduleDate=" + scheduleDate +
-        ", groupId=" + groupId +
-        ", templateId=" + templateId +
-        ", status=" + status +
-        ", createUid=" + createUid +
-        ", createUser=" + createUser +
-        ", updateUid=" + updateUid +
-        ", createAt=" + createAt +
-        ", updateAt=" + updateAt +
-        "}";
+                "id=" + id +
+                ", scheduleDate=" + scheduleDate +
+                ", groupId=" + groupId +
+                ", templateId=" + templateId +
+                ", status=" + status +
+                ", type=" + type +
+                ", createUid=" + createUid +
+                ", createUser=" + createUser +
+                ", updateUid=" + updateUid +
+                ", createAt=" + createAt +
+                ", updateAt=" + updateAt +
+                "}";
     }
 }

+ 3 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxCashMobile.java

@@ -51,6 +51,9 @@ public class FosterwxCashMobile extends Model<FosterwxCashMobile> {
     private Integer domainId;
 
     @TableField(exist = false)
+    private String domain;
+
+    @TableField(exist = false)
     private String stationName;
 
     @TableField(exist = false)

+ 10 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxCashOasBox.java

@@ -1,5 +1,6 @@
 package com.mokamrp.privates.mapper.pangu.pojo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
@@ -8,6 +9,7 @@ import lombok.Data;
 
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * <p>
@@ -71,6 +73,14 @@ public class FosterwxCashOasBox extends Model<FosterwxCashOasBox> {
 
     private Integer fobiddenStatus;
 
+    private Integer sendTextCnt;
+
+    @TableField(exist = false)
+    private List<FosterwxCashOasBoxMobileGroup> mobileGroups;
+
+    @TableField(exist = false)
+    private List<Integer> mobileGroupIds;
+
     /**
      * 备注
      */

+ 112 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxCashOasBoxMobileGroup.java

@@ -0,0 +1,112 @@
+package com.mokamrp.privates.mapper.pangu.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 小程序/公众号库绑定账号分组关联表
+ * </p>
+ *
+ * @author leon
+ * @since 2021-10-15
+ */
+@Data
+@TableName("pan_fosterwx_cash_oas_box_mobile_group")
+public class FosterwxCashOasBoxMobileGroup extends Model<FosterwxCashOasBoxMobileGroup> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 变现小程序/公众号表id
+     */
+    private Integer oasBoxId;
+
+    /**
+     * 变现账号分组id
+     */
+    private Integer cashMobileGroupId;
+
+    @TableField(exist = false)
+    private String cashMobileGroupName;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createAt;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateAt;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getOasBoxId() {
+        return oasBoxId;
+    }
+
+    public void setOasBoxId(Integer oasBoxId) {
+        this.oasBoxId = oasBoxId;
+    }
+
+    public Integer getCashMobileGroupId() {
+        return cashMobileGroupId;
+    }
+
+    public void setCashMobileGroupId(Integer cashMobileGroupId) {
+        this.cashMobileGroupId = cashMobileGroupId;
+    }
+
+    public LocalDateTime getCreateAt() {
+        return createAt;
+    }
+
+    public void setCreateAt(LocalDateTime createAt) {
+        this.createAt = createAt;
+    }
+
+    public LocalDateTime getUpdateAt() {
+        return updateAt;
+    }
+
+    public void setUpdateAt(LocalDateTime updateAt) {
+        this.updateAt = updateAt;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    @Override
+    public String toString() {
+        return "FosterwxCashOasBoxMobileGroup{" +
+        "id=" + id +
+        ", oasBoxId=" + oasBoxId +
+        ", cashMobileGroupId=" + cashMobileGroupId +
+        ", createAt=" + createAt +
+        ", updateAt=" + updateAt +
+        "}";
+    }
+}

+ 124 - 21
src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxCashScheduleTaskList.java

@@ -1,11 +1,13 @@
 package com.mokamrp.privates.mapper.pangu.pojo;
 
-import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+
 import java.io.Serializable;
+import java.time.LocalDateTime;
 
 /**
  * <p>
@@ -23,7 +25,7 @@ public class FosterwxCashScheduleTaskList extends Model<FosterwxCashScheduleTask
     /**
      * id
      */
-      @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
     /**
@@ -37,6 +39,11 @@ public class FosterwxCashScheduleTaskList extends Model<FosterwxCashScheduleTask
     private Integer templateId;
 
     /**
+     * 任务id
+     */
+    private Integer taskId;
+
+    /**
      * 组别id
      */
     private Integer groupId;
@@ -52,16 +59,32 @@ public class FosterwxCashScheduleTaskList extends Model<FosterwxCashScheduleTask
     private String remark;
 
     /**
-     * 任务名称
+     * 任务详情
      */
     private String taskContent;
 
     /**
+     * gh_id
+     */
+    private String ghId;
+
+    /**
+     * 发文链接
+     */
+    private String sendUrl;
+
+    /**
      * 状态(1、待生成;2、已生成;3、生成失败;4、待发送;5、已发送;6、已取消)
      */
     private Integer status;
 
     /**
+     * 类型(1:个微任务 2:企微任务)
+     */
+    private Integer type;
+
+
+    /**
      * 失败原因
      */
     private String errInfo;
@@ -96,6 +119,17 @@ public class FosterwxCashScheduleTaskList extends Model<FosterwxCashScheduleTask
      */
     private LocalDateTime updateAt;
 
+    @TableField(exist = false)
+    private FosterwxCashTaskList fosterwxCashTaskList;
+
+    @TableField(exist = false)
+    private String boxGhid;
+
+    @TableField(exist = false)
+    private Object boxInfo;
+
+    @TableField(exist = false)
+    private String boxUrl;
 
     public Integer getId() {
         return id;
@@ -121,6 +155,14 @@ public class FosterwxCashScheduleTaskList extends Model<FosterwxCashScheduleTask
         this.templateId = templateId;
     }
 
+    public Integer getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(Integer taskId) {
+        this.taskId = taskId;
+    }
+
     public Integer getGroupId() {
         return groupId;
     }
@@ -153,6 +195,22 @@ public class FosterwxCashScheduleTaskList extends Model<FosterwxCashScheduleTask
         this.taskContent = taskContent;
     }
 
+    public String getGhId() {
+        return ghId;
+    }
+
+    public void setGhId(String ghId) {
+        this.ghId = ghId;
+    }
+
+    public String getSendUrl() {
+        return sendUrl;
+    }
+
+    public void setSendUrl(String sendUrl) {
+        this.sendUrl = sendUrl;
+    }
+
     public Integer getStatus() {
         return status;
     }
@@ -161,6 +219,14 @@ public class FosterwxCashScheduleTaskList extends Model<FosterwxCashScheduleTask
         this.status = status;
     }
 
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
     public String getErrInfo() {
         return errInfo;
     }
@@ -217,6 +283,39 @@ public class FosterwxCashScheduleTaskList extends Model<FosterwxCashScheduleTask
         this.updateAt = updateAt;
     }
 
+
+    public FosterwxCashTaskList getFosterwxCashTaskList() {
+        return fosterwxCashTaskList;
+    }
+
+    public void setFosterwxCashTaskList(FosterwxCashTaskList fosterwxCashTaskList) {
+        this.fosterwxCashTaskList = fosterwxCashTaskList;
+    }
+
+    public String getBoxGhid() {
+        return boxGhid;
+    }
+
+    public void setBoxGhid(String boxGhid) {
+        this.boxGhid = boxGhid;
+    }
+
+    public Object getBoxInfo() {
+        return boxInfo;
+    }
+
+    public void setBoxInfo(Object boxInfo) {
+        this.boxInfo = boxInfo;
+    }
+
+    public String getBoxUrl() {
+        return boxUrl;
+    }
+
+    public void setBoxUrl(String boxUrl) {
+        this.boxUrl = boxUrl;
+    }
+
     @Override
     protected Serializable pkVal() {
         return this.id;
@@ -225,21 +324,25 @@ public class FosterwxCashScheduleTaskList extends Model<FosterwxCashScheduleTask
     @Override
     public String toString() {
         return "FosterwxCashScheduleTaskList{" +
-        "id=" + id +
-        ", scheduleId=" + scheduleId +
-        ", templateId=" + templateId +
-        ", groupId=" + groupId +
-        ", taskType=" + taskType +
-        ", remark=" + remark +
-        ", taskContent=" + taskContent +
-        ", status=" + status +
-        ", errInfo=" + errInfo +
-        ", sendTime=" + sendTime +
-        ", createUid=" + createUid +
-        ", createUser=" + createUser +
-        ", updateUid=" + updateUid +
-        ", createAt=" + createAt +
-        ", updateAt=" + updateAt +
-        "}";
+                "id=" + id +
+                ", scheduleId=" + scheduleId +
+                ", templateId=" + templateId +
+                ", taskId=" + taskId +
+                ", groupId=" + groupId +
+                ", taskType=" + taskType +
+                ", remark=" + remark +
+                ", taskContent=" + taskContent +
+                ", ghId=" + ghId +
+                ", sendUrl=" + sendUrl +
+                ", status=" + status +
+                ", type=" + type +
+                ", errInfo=" + errInfo +
+                ", sendTime=" + sendTime +
+                ", createUid=" + createUid +
+                ", createUser=" + createUser +
+                ", updateUid=" + updateUid +
+                ", createAt=" + createAt +
+                ", updateAt=" + updateAt +
+                "}";
     }
 }

+ 4 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxCashTaskList.java

@@ -86,6 +86,10 @@ public class FosterwxCashTaskList extends Model<FosterwxCashTaskList> {
      */
     private String richTxtBody;
 
+    private Integer isTxtCenterAds;
+
+    private Integer isOriginal;
+
     /**
      * 任务描述
      */

+ 155 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/pojo/FosterwxDomain.java

@@ -0,0 +1,155 @@
+package com.mokamrp.privates.mapper.pangu.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 盘古养号域名库
+ * </p>
+ *
+ * @author leon
+ * @since 2021-10-15
+ */
+@Data
+@TableName("pan_fosterwx_domain")
+public class FosterwxDomain extends Model<FosterwxDomain> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 部门ID
+     */
+    private String deptId;
+
+    /**
+     * 站点ID
+     */
+    private Integer stationId;
+
+    /**
+     * 域名
+     */
+    private String domain;
+
+    /**
+     * 是否备案 1备案 2未备案
+     */
+    private Integer isRecord;
+
+    /**
+     * 状态 1正常 2异常
+     */
+    private Integer status;
+
+    /**
+     * 封禁时间
+     */
+    private LocalDateTime forbbidenAt;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createAt;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateAt;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(String deptId) {
+        this.deptId = deptId;
+    }
+
+    public String getDomain() {
+        return domain;
+    }
+
+    public void setDomain(String domain) {
+        this.domain = domain;
+    }
+
+    public Integer getIsRecord() {
+        return isRecord;
+    }
+
+    public void setIsRecord(Integer isRecord) {
+        this.isRecord = isRecord;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public LocalDateTime getForbbidenAt() {
+        return forbbidenAt;
+    }
+
+    public void setForbbidenAt(LocalDateTime forbbidenAt) {
+        this.forbbidenAt = forbbidenAt;
+    }
+
+    public LocalDateTime getCreateAt() {
+        return createAt;
+    }
+
+    public void setCreateAt(LocalDateTime createAt) {
+        this.createAt = createAt;
+    }
+
+    public LocalDateTime getUpdateAt() {
+        return updateAt;
+    }
+
+    public void setUpdateAt(LocalDateTime updateAt) {
+        this.updateAt = updateAt;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    @Override
+    public String toString() {
+        return "FosterwxDomain{" +
+        "id=" + id +
+        ", deptId=" + deptId +
+        ", domain=" + domain +
+        ", isRecord=" + isRecord +
+        ", status=" + status +
+        ", forbbidenAt=" + forbbidenAt +
+        ", createAt=" + createAt +
+        ", updateAt=" + updateAt +
+        "}";
+    }
+}

+ 2 - 0
src/main/java/com/mokamrp/privates/service/CoralApiService.java

@@ -6,4 +6,6 @@ import com.mokamrp.privates.mapper.pojo.ChatTool;
 public interface CoralApiService  {
     //.@leon 获取小程序Access_Token
     public String getBoxToken(String ghId);
+    //.@leon 获取小程序信息
+    public Object getBoxInfo(String ghId);
 }

+ 24 - 9
src/main/java/com/mokamrp/privates/service/impl/CoralApiServiceImpl.java

@@ -2,10 +2,6 @@ package com.mokamrp.privates.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.mokamrp.privates.mapper.ChatToolMapper;
-import com.mokamrp.privates.mapper.pojo.ChatTool;
-import com.mokamrp.privates.service.ChatToolService;
 import com.mokamrp.privates.service.CoralApiService;
 import com.mokamrp.privates.utils.http.HttpUtils;
 import org.springframework.stereotype.Service;
@@ -24,15 +20,34 @@ public class CoralApiServiceImpl implements CoralApiService {
      * @param ghId
      * @return
      */
-    public String getBoxToken(String ghId){
+    public String getBoxToken(String ghId) {
         String url = "/boxmanager/box/gettoken";
-        String params = "gh_id="+ghId;
-        String res = HttpUtils.sendGet(coralApi+url,params);
+        String params = "gh_id=" + ghId;
+        String res = HttpUtils.sendGet(coralApi + url, params);
         System.out.println(res);
-        Map<String,Object> tokenInfo = JSON.parseObject(res, HashMap.class);
-        if (Integer.parseInt(tokenInfo.get("code").toString()) != 0){
+        Map<String, Object> tokenInfo = JSON.parseObject(res, HashMap.class);
+        if (Integer.parseInt(tokenInfo.get("code").toString()) != 0) {
             return "";
         }
         return tokenInfo.get("data").toString();
     }
+
+    /**
+     * 获取小程序信息
+     * @param ghId
+     * @return
+     */
+    public Object getBoxInfo(String ghId) {
+        String newCoral = "https://moka-coral.mokamrp.com/coral";
+        String url = "/box/getBoxInfo";
+        String params = "ghId=" + ghId;
+        String res = HttpUtils.sendGet(newCoral + url, params);
+        System.out.println(res);
+        JSONObject info = JSON.parseObject(res);
+        JSONObject data = JSON.parseObject(info.get("data").toString());
+        if (Integer.parseInt(info.get("code").toString()) != 0) {
+            return "";
+        }
+        return data;
+    }
 }

+ 3 - 1
src/main/java/com/mokamrp/privates/service/pangu/FosterwxCashAccountScheduleService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.mokamrp.privates.entity.ResHandle;
 import com.mokamrp.privates.entity.pangu.FosterwxCashAccountScheduleHandle;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashAccountSchedule;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashScheduleTaskList;
 
 import java.util.List;
 
@@ -22,6 +23,7 @@ public interface FosterwxCashAccountScheduleService extends IService<FosterwxCas
     /**
      * 根据排期id 创建任务列表
      * @param id
+     *
      */
-    void createTask(Integer id);
+    List<FosterwxCashScheduleTaskList> createTask(Integer id);
 }

+ 21 - 0
src/main/java/com/mokamrp/privates/service/pangu/FosterwxCashOasBoxMobileGroupService.java

@@ -0,0 +1,21 @@
+package com.mokamrp.privates.service.pangu;
+
+import com.mokamrp.privates.entity.pangu.GetFosterwxCashOasBoxMobileGroupHandle;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBoxMobileGroup;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.List;
+import java.util.Map;
+/**
+ * <p>
+ * 小程序/公众号库绑定账号分组关联表 服务类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-10-15
+ */
+public interface FosterwxCashOasBoxMobileGroupService extends IService<FosterwxCashOasBoxMobileGroup> {
+    //.@leon 获取数据列表
+    public ResHandle<List<FosterwxCashOasBoxMobileGroup>> getList(GetFosterwxCashOasBoxMobileGroupHandle handle);
+}

+ 11 - 0
src/main/java/com/mokamrp/privates/service/pangu/FosterwxCashOasBoxService.java

@@ -1,9 +1,12 @@
 package com.mokamrp.privates.service.pangu;
 
+import com.mokamrp.privates.entity.VoltaHandle;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBox;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mokamrp.privates.entity.PostBasePageHandle;
 import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.mapper.pojo.User;
+
 import java.util.List;
 import java.util.Map;
 /**
@@ -17,4 +20,12 @@ import java.util.Map;
 public interface FosterwxCashOasBoxService extends IService<FosterwxCashOasBox> {
     //.@leon 获取数据列表
     public ResHandle<List<FosterwxCashOasBox>> getList(PostBasePageHandle handle);
+    //.@leon 增加发文数量记录
+    public Boolean addSendTextCnt(Integer groupId,String ghId);
+    //.@leon 获取一个正常状态的小程序
+    public FosterwxCashOasBox getRandBox(Integer groupId);
+    //.@leon 获取一个正常状态的公众号
+    public FosterwxCashOasBox getRandOas(Integer groupId);
+
+    public VoltaHandle<Boolean> importData(List<Map<String, String>> row, User authUser) throws Exception;
 }

+ 22 - 2
src/main/java/com/mokamrp/privates/service/pangu/FosterwxCashScheduleTaskListService.java

@@ -1,9 +1,10 @@
 package com.mokamrp.privates.service.pangu;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.mokamrp.privates.entity.PostBasePageHandle;
 import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.entity.pangu.FosterwxCashScheduleTaskListHandle;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashScheduleTaskList;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashTaskList;
 
 import java.util.List;
 
@@ -17,7 +18,7 @@ import java.util.List;
  */
 public interface FosterwxCashScheduleTaskListService extends IService<FosterwxCashScheduleTaskList> {
     //.@leon 获取数据列表
-    public ResHandle<List<FosterwxCashScheduleTaskList>> getList(PostBasePageHandle handle);
+    public ResHandle<List<FosterwxCashScheduleTaskList>> getList(FosterwxCashScheduleTaskListHandle handle);
 
 
     /**
@@ -26,4 +27,23 @@ public interface FosterwxCashScheduleTaskListService extends IService<FosterwxCa
      * @param userId
      */
     void cancelTask(Integer id, Integer userId);
+
+    /**
+     * 生成任务 正常生成 | 生成失败|检测到公众号封禁重新生成链接
+     * @param newsList
+     */
+    void create(List<FosterwxCashScheduleTaskList> newsList);
+
+    /**
+     * 获取被封禁的任务
+     * @return
+     */
+    List<FosterwxCashScheduleTaskList> getBannedGhid();
+
+    /**
+     * 任务类型为小程序是 拼接一个json字符串返回 供前端展示
+     * @param fosterwxCashScheduleTaskList
+     * @param fosterwxCashTaskList
+     */
+    void editBoxUrl(FosterwxCashScheduleTaskList fosterwxCashScheduleTaskList, FosterwxCashTaskList fosterwxCashTaskList);
 }

+ 2 - 1
src/main/java/com/mokamrp/privates/service/pangu/FosterwxCashTaskListService.java

@@ -1,5 +1,6 @@
 package com.mokamrp.privates.service.pangu;
 
+import com.mokamrp.privates.entity.pangu.FosterwxCashTaskListHandle;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashTaskList;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mokamrp.privates.entity.PostBasePageHandle;
@@ -16,5 +17,5 @@ import java.util.Map;
  */
 public interface FosterwxCashTaskListService extends IService<FosterwxCashTaskList> {
     //.@leon 获取数据列表
-    public ResHandle<List<FosterwxCashTaskList>> getList(PostBasePageHandle handle);
+    public ResHandle<List<FosterwxCashTaskList>> getList(FosterwxCashTaskListHandle handle);
 }

+ 21 - 0
src/main/java/com/mokamrp/privates/service/pangu/FosterwxDomainService.java

@@ -0,0 +1,21 @@
+package com.mokamrp.privates.service.pangu;
+
+import com.mokamrp.privates.entity.pangu.GetForsterCashDomainHandle;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxDomain;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.List;
+import java.util.Map;
+/**
+ * <p>
+ * 盘古养号域名库 服务类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-10-15
+ */
+public interface FosterwxDomainService extends IService<FosterwxDomain> {
+    //.@leon 获取数据列表
+    public ResHandle<List<FosterwxDomain>> getList(GetForsterCashDomainHandle handle);
+}

+ 2 - 1
src/main/java/com/mokamrp/privates/service/pangu/FosterwxMobileService.java

@@ -1,6 +1,7 @@
 package com.mokamrp.privates.service.pangu;
 
 import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.entity.SetIdsHandle;
 import com.mokamrp.privates.entity.VoltaHandle;
 import com.mokamrp.privates.entity.pangu.GetForsterwxMobileHandle;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobile;
@@ -29,6 +30,6 @@ public interface FosterwxMobileService extends IService<FosterwxMobile> {
 
     public List<FosterwxMobileVo> setWxFriend(List<FosterwxMobileVo> list);
     //.@leon 批量加入变现账号
-    public Boolean addCashMobileList(List<Integer> mobileIds);
+    public Boolean addCashMobileList(SetIdsHandle setIdsHandle);
 
 }

+ 107 - 10
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxCashAccountScheduleServiceImpl.java

@@ -1,16 +1,22 @@
 package com.mokamrp.privates.service.pangu.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mokamrp.privates.entity.ResHandle;
 import com.mokamrp.privates.entity.pangu.FosterwxCashAccountScheduleHandle;
 import com.mokamrp.privates.mapper.pangu.FosterwxCashAccountScheduleMapper;
+import com.mokamrp.privates.mapper.pangu.FosterwxCashScheduleTaskListMapper;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashAccountSchedule;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashScheduleTaskList;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashTaskList;
 import com.mokamrp.privates.service.pangu.FosterwxCashAccountScheduleService;
+import com.mokamrp.privates.service.pangu.FosterwxCashScheduleTaskListService;
+import com.mokamrp.privates.service.pangu.FosterwxCashTaskTemplateService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -28,28 +34,59 @@ public class FosterwxCashAccountScheduleServiceImpl extends ServiceImpl<Fosterwx
     @Autowired
     public FosterwxCashAccountScheduleMapper fosterwxCashAccountScheduleMapper;
 
+    @Autowired
+    public FosterwxCashTaskTemplateService fosterwxCashTaskTemplateService;
+
+    @Autowired
+    public FosterwxCashScheduleTaskListMapper fosterwxCashScheduleTaskListMapper;
+
+    @Autowired
+    public FosterwxCashScheduleTaskListService fosterwxCashScheduleTaskListService;
+
     /**
      * 获取数据列表 支持分页
      * @param handle
      * @return
      */
+    @Override
     public ResHandle<List<FosterwxCashAccountSchedule>> getList(FosterwxCashAccountScheduleHandle handle) {
         Integer pagesize = handle.getPageSize();
         Integer page = handle.getPage();
-        LambdaQueryWrapper<FosterwxCashAccountSchedule> fosterwxCashAccountScheduleLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        QueryWrapper<FosterwxCashAccountSchedule> fosterwxCashAccountScheduleQueryWrapper = new QueryWrapper<>();
+        // 排期日期
+        fosterwxCashAccountScheduleQueryWrapper.eq("account_schedule.schedule_date", handle.getScheduleDate());
+        // 任务类型 1:个微任务 2:企微任务
+        fosterwxCashAccountScheduleQueryWrapper.eq("account_schedule.type", handle.getType());
+
         // 任务模板
         if (null != handle.getTemplateId())
-            fosterwxCashAccountScheduleLambdaQueryWrapper.eq(FosterwxCashAccountSchedule::getTemplateId, handle.getTemplateId());
+            fosterwxCashAccountScheduleQueryWrapper.eq("account_schedule.template_id", handle.getTemplateId());
         // 创建人
         if (null != handle.getCreateUid())
-            fosterwxCashAccountScheduleLambdaQueryWrapper.eq(FosterwxCashAccountSchedule::getCreateUid, handle.getCreateUid());
+            fosterwxCashAccountScheduleQueryWrapper.eq("account_schedule.create_uid", handle.getCreateUid());
+
         // 账号组别
         if (null != handle.getGroupId())
-            fosterwxCashAccountScheduleLambdaQueryWrapper.eq(FosterwxCashAccountSchedule::getGroupId, handle.getGroupId());
+            fosterwxCashAccountScheduleQueryWrapper.eq("account_schedule.group_id", handle.getGroupId());
         // 获取总件数
-        Long maxCount = Long.valueOf(fosterwxCashAccountScheduleMapper.selectCount(fosterwxCashAccountScheduleLambdaQueryWrapper));
+        QueryWrapper<FosterwxCashAccountSchedule> countWrapper = new QueryWrapper<>();
+        // 排期日期
+        countWrapper.eq("schedule_date", handle.getScheduleDate());
+        // 任务类型 1:个微任务 2:企微任务
+        countWrapper.eq("type", handle.getType());
+
+        // 任务模板
+        if (null != handle.getTemplateId())
+            countWrapper.eq("template_id", handle.getTemplateId());
+        // 创建人
+        if (null != handle.getCreateUid())
+            countWrapper.eq("create_uid", handle.getCreateUid());
+        // 账号组别
+        if (null != handle.getGroupId())
+            countWrapper.eq("group_id", handle.getGroupId());
+        Long maxCount = Long.valueOf(fosterwxCashAccountScheduleMapper.selectCount(countWrapper));
 
-        List<FosterwxCashAccountSchedule> list = fosterwxCashAccountScheduleMapper.getList(fosterwxCashAccountScheduleLambdaQueryWrapper, pagesize, (page - 1) * pagesize);
+        List<FosterwxCashAccountSchedule> list = fosterwxCashAccountScheduleMapper.getList(fosterwxCashAccountScheduleQueryWrapper, pagesize, (page - 1) * pagesize);
         ResHandle<List<FosterwxCashAccountSchedule>> res = new ResHandle<>();
         res.setList(list);
         res.setTotal(maxCount);
@@ -59,19 +96,79 @@ public class FosterwxCashAccountScheduleServiceImpl extends ServiceImpl<Fosterwx
     /**
      * 根据id创建任务列表
      * @param id
+     *
      */
     @Override
-    public void createTask(Integer id) {
+    public List<FosterwxCashScheduleTaskList> createTask(Integer id) {
         FosterwxCashAccountSchedule fosterwxCashAccountSchedule = fosterwxCashAccountScheduleMapper.selectById(id);
 
         if (null != fosterwxCashAccountSchedule) {
+            // 该接口由立即生成和任务链接生成失败后两种调用方式 因此 在生成任务之前要删除旧任务
+            fosterwxCashScheduleTaskListMapper.delete(new LambdaQueryWrapper<FosterwxCashScheduleTaskList>().eq(FosterwxCashScheduleTaskList::getScheduleId, id));
+
             // 根据任务模板id获取任务模板详情
-            // TODO 需要老王那边配合写个方法
-            List<FosterwxCashTaskList> fosterwxCashTaskLists = new ArrayList<>();
+            ResHandle<List<FosterwxCashTaskList>> resHandle = fosterwxCashTaskTemplateService.getTaskByTemplateId(fosterwxCashAccountSchedule.getTemplateId());
 
-            fosterwxCashTaskLists.forEach(fosterwxCashTaskList -> {
+            List<FosterwxCashScheduleTaskList> newsList = new ArrayList<>();
+            resHandle.getList().forEach(fosterwxCashTaskList -> {
+                // 创建任务
+                FosterwxCashScheduleTaskList fosterwxCashScheduleTaskList = new FosterwxCashScheduleTaskList();
+                fosterwxCashScheduleTaskList.setScheduleId(fosterwxCashAccountSchedule.getId());
+                fosterwxCashScheduleTaskList.setTemplateId(fosterwxCashAccountSchedule.getTemplateId());
+                fosterwxCashScheduleTaskList.setTaskId(fosterwxCashTaskList.getId());
+                fosterwxCashScheduleTaskList.setGroupId(fosterwxCashAccountSchedule.getGroupId());
+                fosterwxCashScheduleTaskList.setTaskType(fosterwxCashTaskList.getTaskType());
+                fosterwxCashScheduleTaskList.setRemark(fosterwxCashTaskList.getRemark());
+                fosterwxCashScheduleTaskList.setTaskContent("");
+                fosterwxCashScheduleTaskList.setGhId("");
+                // 任务类型为链接是直接赋值
+                if (4 == fosterwxCashTaskList.getTaskType()) {
+                    fosterwxCashScheduleTaskList.setSendUrl(fosterwxCashTaskList.getUrl());
+                    fosterwxCashScheduleTaskList.setStatus(4);
+                    fosterwxCashScheduleTaskList.setErrInfo("");
+                } else {
+                    fosterwxCashScheduleTaskList.setSendUrl("");
+                    fosterwxCashScheduleTaskList.setStatus(1);
+                    fosterwxCashScheduleTaskList.setErrInfo("");
+                }
 
+                fosterwxCashScheduleTaskList.setSendTime(LocalDateTime.of(fosterwxCashAccountSchedule.getScheduleDate(), fosterwxCashTaskList.getSendAt()));
+                fosterwxCashScheduleTaskList.setCreateUid(fosterwxCashAccountSchedule.getCreateUid());
+                fosterwxCashScheduleTaskList.setCreateUser(fosterwxCashAccountSchedule.getCreateUser());
+                fosterwxCashScheduleTaskList.setUpdateUid(fosterwxCashAccountSchedule.getCreateUid());
+                fosterwxCashScheduleTaskList.setCreateAt(LocalDateTime.now());
+                fosterwxCashScheduleTaskList.setUpdateAt(LocalDateTime.now());
+
+                fosterwxCashScheduleTaskListMapper.insert(fosterwxCashScheduleTaskList);
+
+                // 小程序和链接的任务不需要发送到typer
+                switch (fosterwxCashTaskList.getTaskType()) {
+                    case 1:
+                        // 发文-小程序
+                        fosterwxCashScheduleTaskListService.editBoxUrl(fosterwxCashScheduleTaskList, fosterwxCashTaskList);
+                    case 2:
+                        newsList.add(fosterwxCashScheduleTaskList);
+                        break;
+                    case 3:
+                        // 小程序本地生成
+                        fosterwxCashScheduleTaskListService.editBoxUrl(fosterwxCashScheduleTaskList, fosterwxCashTaskList);
+                        break;
+                    case 4:
+                        // 任务类型为链接是 不需要操作
+                        break;
+                    default:
+                        break;
+
+                }
             });
+
+            // 任务列表创建完成后 账号排期状态设置成正常
+            fosterwxCashAccountSchedule.setStatus(1);
+            fosterwxCashAccountSchedule.setUpdateAt(LocalDateTime.now());
+            fosterwxCashAccountScheduleMapper.updateById(fosterwxCashAccountSchedule);
+
+            return newsList;
         }
+        return null;
     }
 }

+ 44 - 0
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxCashOasBoxMobileGroupServiceImpl.java

@@ -0,0 +1,44 @@
+package com.mokamrp.privates.service.pangu.impl;
+
+import com.mokamrp.privates.entity.pangu.GetFosterwxCashOasBoxMobileGroupHandle;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBoxMobileGroup;
+import com.mokamrp.privates.mapper.pangu.FosterwxCashOasBoxMobileGroupMapper;
+import com.mokamrp.privates.service.pangu.FosterwxCashOasBoxMobileGroupService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.*;
+
+/**
+ * <p>
+ * 小程序/公众号库绑定账号分组关联表 服务实现类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-10-15
+ */
+@Service
+public class FosterwxCashOasBoxMobileGroupServiceImpl extends ServiceImpl<FosterwxCashOasBoxMobileGroupMapper, FosterwxCashOasBoxMobileGroup> implements FosterwxCashOasBoxMobileGroupService {
+
+    @Autowired
+    public FosterwxCashOasBoxMobileGroupMapper fosterwxCashOasBoxMobileGroupMapper;
+    /**
+     * 获取数据列表 支持分页
+     * @param handle
+     * @return
+     */
+    public ResHandle<List<FosterwxCashOasBoxMobileGroup>> getList(GetFosterwxCashOasBoxMobileGroupHandle handle) {
+        Integer pagesize = handle.getPagesize();
+        Integer page = handle.getPage();
+        Page<FosterwxCashOasBoxMobileGroup> pageObj = new Page<FosterwxCashOasBoxMobileGroup>(page, pagesize);
+        List<FosterwxCashOasBoxMobileGroup> list = fosterwxCashOasBoxMobileGroupMapper.getList(pageObj,handle);
+        ResHandle<List<FosterwxCashOasBoxMobileGroup>> res = new ResHandle<>();
+        res.setList(list);
+        res.setTotal(pageObj.getTotal());
+        return res;
+    }
+}

+ 152 - 3
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxCashOasBoxServiceImpl.java

@@ -1,16 +1,29 @@
 package com.mokamrp.privates.service.pangu.impl;
 
-import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBox;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.mokamrp.privates.entity.VoltaHandle;
+import com.mokamrp.privates.mapper.pangu.pojo.*;
 import com.mokamrp.privates.mapper.pangu.FosterwxCashOasBoxMapper;
-import com.mokamrp.privates.service.pangu.FosterwxCashOasBoxService;
+import com.mokamrp.privates.mapper.pojo.Corp;
+import com.mokamrp.privates.mapper.pojo.User;
+import com.mokamrp.privates.service.pangu.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mokamrp.privates.utils.StringUtils;
+import org.apache.tomcat.jni.Local;
 import org.springframework.stereotype.Service;
 import com.mokamrp.privates.entity.PostBasePageHandle;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import com.mokamrp.privates.entity.ResHandle;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -25,8 +38,22 @@ public class FosterwxCashOasBoxServiceImpl extends ServiceImpl<FosterwxCashOasBo
 
     @Autowired
     public FosterwxCashOasBoxMapper fosterwxCashOasBoxMapper;
+
+    @Autowired
+    public FosterwxCashMobileService fosterwxCashMobileService;
+
+    @Autowired
+    public FosterwxCashMobileGroupService fosterwxCashMobileGroupService;
+
+    @Autowired
+    public FosterwxCashOasBoxMobileGroupService fosterwxCashOasBoxMobileGroupService;
+
+    @Autowired
+    public FosterwxStationService fosterwxStationService;
+
     /**
      * 获取数据列表 支持分页
+     *
      * @param handle
      * @return
      */
@@ -34,10 +61,132 @@ public class FosterwxCashOasBoxServiceImpl extends ServiceImpl<FosterwxCashOasBo
         Integer pagesize = handle.getPagesize();
         Integer page = handle.getPage();
         Page<FosterwxCashOasBox> pageObj = new Page<FosterwxCashOasBox>(page, pagesize);
-        List<FosterwxCashOasBox> list = fosterwxCashOasBoxMapper.getList(pageObj);
+        List<FosterwxCashOasBox> list = fosterwxCashOasBoxMapper.getList(pageObj,handle);
         ResHandle<List<FosterwxCashOasBox>> res = new ResHandle<>();
         res.setList(list);
         res.setTotal(pageObj.getTotal());
         return res;
     }
+
+    @Transactional(isolation = Isolation.READ_COMMITTED)
+    public Boolean addSendTextCnt(Integer groupId,String ghId) {
+        FosterwxCashOasBox fosterwxCashOasBox = this.getOne(new QueryWrapper<FosterwxCashOasBox>()
+                .eq("gh_id", ghId)
+                .eq("group_id",groupId)
+                .last("for update"));
+        if (fosterwxCashOasBox == null){
+            return false;
+        }
+        FosterwxCashOasBox save = new FosterwxCashOasBox();
+        save.setSendTextCnt(fosterwxCashOasBox.getSendTextCnt()+1);
+        return true;
+    }
+
+    /**
+     * 获取一个有效的小程序
+     *
+     * @return
+     */
+    public FosterwxCashOasBox getRandBox(Integer groupId) {
+        List<FosterwxCashOasBoxMobileGroup> mobileGroupList = fosterwxCashOasBoxMobileGroupService.list(new QueryWrapper<FosterwxCashOasBoxMobileGroup>().eq("cash_mobile_group_id",groupId));
+        List<Integer> boxOasIds = mobileGroupList.stream().map(FosterwxCashOasBoxMobileGroup::getOasBoxId).collect(Collectors.toList());
+        List<FosterwxCashOasBox> list = this.list(new QueryWrapper<FosterwxCashOasBox>()
+                .eq("type", 1)
+                .in("id", boxOasIds)
+                .lt("send_text_cnt", 90)
+                .eq("fobidden_status", 1));
+        if (list == null || list.size() <= 0) {
+            return null;
+        }
+        if (list.size() == 1){
+            return list.get(0);
+        }
+        int max = list.size() - 1;
+        int min = 0;
+        Random random = new Random();
+        int i = random.nextInt(max) % (max - min + 1) + min;
+        return list.get(i);
+    }
+
+    /**
+     * 获取一个有效的公众号
+     *
+     * @return
+     */
+    public FosterwxCashOasBox getRandOas(Integer groupId) {
+        List<FosterwxCashOasBoxMobileGroup> mobileGroupList = fosterwxCashOasBoxMobileGroupService.list(new QueryWrapper<FosterwxCashOasBoxMobileGroup>().eq("cash_mobile_group_id",groupId));
+        List<Integer> boxOasIds = mobileGroupList.stream().map(FosterwxCashOasBoxMobileGroup::getOasBoxId).collect(Collectors.toList());
+        List<FosterwxCashOasBox> list = this.list(new QueryWrapper<FosterwxCashOasBox>()
+                .eq("type", 2)
+                .in("id", boxOasIds)
+                .lt("send_text_cnt", 90)
+                .eq("fobidden_status", 1));
+        if (list == null || list.size() <= 0) {
+            return null;
+        }
+        if (list.size() == 1){
+            return list.get(0);
+        }
+        int max = list.size() - 1;
+        int min = 0;
+        Random random = new Random();
+        int i = random.nextInt(max) % (max - min + 1) + min;
+        return list.get(i);
+    }
+
+    /**
+     * 导入数据
+     *
+     * @param row
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public VoltaHandle<Boolean> importData(List<Map<String, String>> row, User authUser) throws Exception {
+        VoltaHandle<Boolean> res = new VoltaHandle<>();
+        if (row.size() <= 0) {
+            throw new Exception("表格读取完成后,没有获取到任何数据");
+        }
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        for (int i = 0; i < row.size(); i++) {
+            LocalDateTime nowDate = LocalDateTime.now();
+            Map<String, String> cell = row.get(i);
+            FosterwxCashOasBox fosterwxCashOasBox = new FosterwxCashOasBox();
+            FosterwxStation stationInfo = fosterwxStationService.getOne(new QueryWrapper<FosterwxStation>()
+                    .eq("station_name", row.get(i).get("stationName")));
+            if (stationInfo == null) {
+                throw new Exception("站点编号不存在");
+            }
+            FosterwxCashMobileGroup fosterwxCashMobileGroup = fosterwxCashMobileGroupService.getOne(new QueryWrapper<FosterwxCashMobileGroup>().eq("id",Integer.parseInt(row.get(i).get("mobileGroupId"))));
+            if (fosterwxCashMobileGroup == null){
+                throw new Exception("第"+i+"行:账号分组ID不存在");
+            }
+            fosterwxCashOasBox.setStationId(stationInfo.getId());
+            fosterwxCashOasBox.setGroupId(Integer.parseInt(row.get(i).get("groupId")));
+            fosterwxCashOasBox.setType(Integer.parseInt(row.get(i).get("type")));
+            if (row.get(i).get("boxType") != null) fosterwxCashOasBox.setBoxType(Integer.parseInt(row.get(i).get("boxType")));
+            if (row.get(i).get("boxLocation") != null) fosterwxCashOasBox.setBoxLocation(Integer.parseInt(row.get(i).get("boxLocation")));
+            fosterwxCashOasBox.setGhId(row.get(i).get("ghId"));
+            fosterwxCashOasBox.setName(row.get(i).get("name"));
+            fosterwxCashOasBox.setScope(row.get(i).get("scope"));
+            if (row.get(i).get("remark") != null) fosterwxCashOasBox.setRemark(row.get(i).get("remark"));
+            fosterwxCashOasBox.setCreateAt(LocalDateTime.now());
+            fosterwxCashOasBox.setUploadUid(authUser.getId());
+            fosterwxCashOasBox.setUpdateAt(LocalDateTime.now());
+            this.save(fosterwxCashOasBox);
+
+            FosterwxCashOasBoxMobileGroup fosterwxCashOasBoxMobileGroup = fosterwxCashOasBoxMobileGroupService.getOne(new QueryWrapper<FosterwxCashOasBoxMobileGroup>()
+                    .eq("oas_box_id",fosterwxCashOasBox.getId())
+            .eq("cash_mobile_group_id",Integer.parseInt(row.get(i).get("mobileGroupId"))));
+            if (fosterwxCashOasBoxMobileGroup != null){
+                throw new Exception("第"+i+"行:账号分组ID与当前公众号ID绑定关系已经存在");
+            }
+            FosterwxCashOasBoxMobileGroup addBoxOasBindMobileGroup = new FosterwxCashOasBoxMobileGroup();
+            addBoxOasBindMobileGroup.setOasBoxId(fosterwxCashOasBox.getId());
+            addBoxOasBindMobileGroup.setCashMobileGroupId(Integer.parseInt(row.get(i).get("mobileGroupId")));
+            addBoxOasBindMobileGroup.setUpdateAt(LocalDateTime.now());
+            addBoxOasBindMobileGroup.setCreateAt(LocalDateTime.now());
+            fosterwxCashOasBoxMobileGroupService.save(addBoxOasBindMobileGroup);
+        }
+        return res;
+    }
 }

+ 167 - 13
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxCashScheduleTaskListServiceImpl.java

@@ -1,17 +1,24 @@
 package com.mokamrp.privates.service.pangu.impl;
 
+import com.alibaba.fastjson.JSON;
 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.entity.ResHandle;
+import com.mokamrp.privates.entity.pangu.FosterwxCashScheduleTaskListHandle;
 import com.mokamrp.privates.mapper.pangu.FosterwxCashScheduleTaskListMapper;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBox;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashScheduleTaskList;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashTaskList;
+import com.mokamrp.privates.service.CoralApiService;
+import com.mokamrp.privates.service.pangu.FosterwxCashOasBoxService;
 import com.mokamrp.privates.service.pangu.FosterwxCashScheduleTaskListService;
+import com.mokamrp.privates.service.pangu.FosterwxCashTaskListService;
+import com.mokamrp.privates.utils.pangu.redis.task.TaskRedis;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -28,19 +35,50 @@ public class FosterwxCashScheduleTaskListServiceImpl extends ServiceImpl<Fosterw
     @Autowired
     public FosterwxCashScheduleTaskListMapper fosterwxCashScheduleTaskListMapper;
 
+    @Autowired
+    public TaskRedis taskRedis;
+
+    @Autowired
+    public FosterwxCashTaskListService fosterwxCashTaskListService;
+
+    @Autowired
+    public FosterwxCashOasBoxService fosterwxCashOasBoxService;
+
+    @Autowired
+    public CoralApiService coralApiService;
+
     /**
      * 获取数据列表 支持分页
      * @param handle
      * @return
      */
-    public ResHandle<List<FosterwxCashScheduleTaskList>> getList(PostBasePageHandle handle) {
-        Integer pagesize = handle.getPagesize();
+    public ResHandle<List<FosterwxCashScheduleTaskList>> getList(FosterwxCashScheduleTaskListHandle handle) {
+        Integer pagesize = handle.getPageSize();
         Integer page = handle.getPage();
-        Page<FosterwxCashScheduleTaskList> pageObj = new Page<FosterwxCashScheduleTaskList>(page, pagesize);
-        List<FosterwxCashScheduleTaskList> list = fosterwxCashScheduleTaskListMapper.getList(pageObj);
+        LambdaQueryWrapper<FosterwxCashScheduleTaskList> fosterwxCashScheduleTaskListLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        // 任务模板名称
+        if (null != handle.getTemplateId())
+            fosterwxCashScheduleTaskListLambdaQueryWrapper.eq(FosterwxCashScheduleTaskList::getTemplateId, handle.getTemplateId());
+        // 创建人
+        if (null != handle.getCreateUid())
+            fosterwxCashScheduleTaskListLambdaQueryWrapper.eq(FosterwxCashScheduleTaskList::getCreateUid, handle.getCreateUid());
+        // 状态
+        if (null != handle.getStatus())
+            fosterwxCashScheduleTaskListLambdaQueryWrapper.eq(FosterwxCashScheduleTaskList::getStatus, handle.getStatus());
+        // 发送日期
+        if (null != handle.getSendTimeFrom() && null != handle.getSendTimeTo())
+            fosterwxCashScheduleTaskListLambdaQueryWrapper.between(FosterwxCashScheduleTaskList::getSendTime, handle.getSendTimeFrom(), handle.getSendTimeTo());
+        // 账号分组
+        if (null != handle.getGroupId())
+            fosterwxCashScheduleTaskListLambdaQueryWrapper.eq(FosterwxCashScheduleTaskList::getGroupId, handle.getGroupId());
+        // 排期id
+        if (null != handle.getScheduleId())
+            fosterwxCashScheduleTaskListLambdaQueryWrapper.eq(FosterwxCashScheduleTaskList::getScheduleId, handle.getScheduleId());
+
+        List<FosterwxCashScheduleTaskList> list = fosterwxCashScheduleTaskListMapper.getList(fosterwxCashScheduleTaskListLambdaQueryWrapper, pagesize, (page - 1) * pagesize);
         ResHandle<List<FosterwxCashScheduleTaskList>> res = new ResHandle<>();
         res.setList(list);
-        res.setTotal(pageObj.getTotal());
+        res.setTotal(Long.valueOf(fosterwxCashScheduleTaskListMapper.selectCount(fosterwxCashScheduleTaskListLambdaQueryWrapper)));
         return res;
     }
 
@@ -51,14 +89,130 @@ public class FosterwxCashScheduleTaskListServiceImpl extends ServiceImpl<Fosterw
      */
     @Override
     public void cancelTask(Integer id, Integer userId) {
-        LambdaQueryWrapper<FosterwxCashScheduleTaskList> fosterwxCashScheduleTaskListLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        fosterwxCashScheduleTaskListLambdaQueryWrapper.eq(FosterwxCashScheduleTaskList::getScheduleId, id);
-        fosterwxCashScheduleTaskListLambdaQueryWrapper.notIn(FosterwxCashScheduleTaskList::getStatus, 3, 5, 6);
-
-        fosterwxCashScheduleTaskListMapper.update(new FosterwxCashScheduleTaskList() {{
+        fosterwxCashScheduleTaskListMapper.updateById(new FosterwxCashScheduleTaskList() {{
+            setId(id);
             setStatus(6);
             setUpdateUid(userId);
             setUpdateAt(LocalDateTime.now());
-        }}, fosterwxCashScheduleTaskListLambdaQueryWrapper);
+        }});
+    }
+
+    /**
+     * 生成任务 正常生成 | 生成失败|检测到公众号封禁重新生成链接
+     * @param editList
+     */
+    @Override
+    public void create(List<FosterwxCashScheduleTaskList> newsList) {
+        if (newsList.isEmpty()) return;
+        List<FosterwxCashScheduleTaskList> editList = new ArrayList<>();
+        newsList.forEach(fosterwxCashScheduleTaskList -> editList.add(fosterwxCashScheduleTaskList));
+
+        String ghid = "";
+        Integer groupId = editList.get(0).getGroupId();
+        FosterwxCashOasBox fosterwxCashOasBox = fosterwxCashOasBoxService.getRandOas(editList.get(0).getGroupId());
+        if (null != fosterwxCashOasBox) {
+            ghid = fosterwxCashOasBox.getGhId();
+        }
+        int count = 0;
+        List<FosterwxCashScheduleTaskList> tempList = new ArrayList<>();
+        for (int i = 0; i < editList.size(); i++) {
+            if (count == 8) {
+                fosterwxCashOasBoxService.addSendTextCnt(editList.get(0).getGroupId(), ghid);
+
+                taskRedis.createUrlByTyper(JSON.toJSONString(tempList));
+                tempList.clear();
+                fosterwxCashOasBox = fosterwxCashOasBoxService.getRandOas(editList.get(0).getGroupId());
+                if (null != fosterwxCashOasBox) {
+                    ghid = fosterwxCashOasBox.getGhId();
+                }
+                count = 0;
+            }
+            FosterwxCashScheduleTaskList fosterwxCashScheduleTaskList = editList.get(i);
+
+            // 状态
+            fosterwxCashScheduleTaskList.setStatus(1);
+            // 失败原因
+            fosterwxCashScheduleTaskList.setErrInfo("");
+            // 分配的公众号
+            fosterwxCashScheduleTaskList.setGhId(ghid);
+            // 发文链接
+            fosterwxCashScheduleTaskList.setSendUrl("");
+
+            if (fosterwxCashScheduleTaskList.getTaskType() == 1) {
+                fosterwxCashScheduleTaskList.setBoxInfo(coralApiService.getBoxInfo(fosterwxCashScheduleTaskList.getBoxGhid()));
+            }
+
+            fosterwxCashScheduleTaskListMapper.updateById(fosterwxCashScheduleTaskList);
+            fosterwxCashScheduleTaskList.setFosterwxCashTaskList(fosterwxCashTaskListService.getById(fosterwxCashScheduleTaskList.getTaskId()));
+            tempList.add(fosterwxCashScheduleTaskList);
+            count++;
+            editList.remove(i);
+            i--;
+        }
+        fosterwxCashOasBoxService.addSendTextCnt(groupId, ghid);
+        taskRedis.createUrlByTyper(JSON.toJSONString(tempList));
+        tempList.clear();
+    }
+
+    /**
+     * 获取被封禁的任务
+     * @return
+     */
+    @Override
+    public List<FosterwxCashScheduleTaskList> getBannedGhid() {
+        // 获取被封禁的任务
+        List<FosterwxCashScheduleTaskList> fosterwxCashScheduleTaskLists = fosterwxCashScheduleTaskListMapper.getBannedGhid();
+
+        return fosterwxCashScheduleTaskLists;
+    }
+
+    /**
+     * 任务类型为小程序是 拼接一个json字符串返回 供前端展示
+     * @param fosterwxCashScheduleTaskList
+     * @param fosterwxCashTaskList
+     * @return
+     */
+    @Override
+    public void editBoxUrl(FosterwxCashScheduleTaskList fosterwxCashScheduleTaskList, FosterwxCashTaskList fosterwxCashTaskList) {
+        FosterwxCashOasBox fosterwxCashOasBox = fosterwxCashOasBoxService.getRandBox(fosterwxCashScheduleTaskList.getGroupId());
+        if (null == fosterwxCashOasBox) {
+            // 状态
+            fosterwxCashScheduleTaskList.setStatus(3);
+            // 失败原因
+            fosterwxCashScheduleTaskList.setErrInfo("该分组下没有可用的公众号");
+
+            fosterwxCashScheduleTaskListMapper.updateById(fosterwxCashScheduleTaskList);
+        }
+
+        fosterwxCashOasBoxService.addSendTextCnt(fosterwxCashScheduleTaskList.getGroupId(), fosterwxCashOasBox.getGhId());
+
+        // 状态
+        fosterwxCashScheduleTaskList.setStatus(1);
+        // 失败原因
+        fosterwxCashScheduleTaskList.setErrInfo("");
+        // 分配的公众号
+        if (3 == fosterwxCashTaskList.getTaskType()) {
+            fosterwxCashScheduleTaskList.setGhId(fosterwxCashOasBox.getGhId());
+        } else if (1 == fosterwxCashTaskList.getTaskType()) {
+            fosterwxCashScheduleTaskList.setBoxGhid(fosterwxCashOasBox.getGhId());
+        }
+
+        // 小程序链接
+        String sendUrl = "";
+        if (8 == fosterwxCashTaskList.getBoxType()) {
+            // 投放版视频
+            // 发文链接
+            sendUrl = "/pages/index/index?type=tuiguang&videoId=" + fosterwxCashTaskList.getVideoId();
+        } else {
+            // 盘古版视频
+            sendUrl = String.format("pages/index/index?type=tuiguang&materialId=%d&categoryId=&d", fosterwxCashTaskList.getVideoId(), fosterwxCashTaskList.getTagId());
+        }
+
+        fosterwxCashScheduleTaskList.setSendUrl(sendUrl);
+        if (1 == fosterwxCashTaskList.getTaskType()) {
+            fosterwxCashScheduleTaskList.setBoxUrl(sendUrl);
+        }
+
+        fosterwxCashScheduleTaskListMapper.updateById(fosterwxCashScheduleTaskList);
     }
 }

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

@@ -1,5 +1,6 @@
 package com.mokamrp.privates.service.pangu.impl;
 
+import com.mokamrp.privates.entity.pangu.FosterwxCashTaskListHandle;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashTaskList;
 import com.mokamrp.privates.mapper.pangu.FosterwxCashTaskListMapper;
 import com.mokamrp.privates.service.pangu.FosterwxCashTaskListService;
@@ -30,11 +31,11 @@ public class FosterwxCashTaskListServiceImpl extends ServiceImpl<FosterwxCashTas
      * @param handle
      * @return
      */
-    public ResHandle<List<FosterwxCashTaskList>> getList(PostBasePageHandle handle) {
+    public ResHandle<List<FosterwxCashTaskList>> getList(FosterwxCashTaskListHandle handle) {
         Integer pagesize = handle.getPagesize();
         Integer page = handle.getPage();
         Page<FosterwxCashTaskList> pageObj = new Page<FosterwxCashTaskList>(page, pagesize);
-        List<FosterwxCashTaskList> list = fosterwxCashTaskListMapper.getList(pageObj);
+        List<FosterwxCashTaskList> list = fosterwxCashTaskListMapper.getList(pageObj,handle);
         ResHandle<List<FosterwxCashTaskList>> res = new ResHandle<>();
         res.setList(list);
         res.setTotal(pageObj.getTotal());

+ 4 - 2
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxCashTaskTemplateServiceImpl.java

@@ -40,7 +40,7 @@ public class FosterwxCashTaskTemplateServiceImpl extends ServiceImpl<FosterwxCas
         Integer pagesize = handle.getPagesize();
         Integer page = handle.getPage();
         Page<FosterwxCashTaskTemplate> pageObj = new Page<FosterwxCashTaskTemplate>(page, pagesize);
-        List<FosterwxCashTaskTemplate> list = fosterwxCashTaskTemplateMapper.getList(pageObj);
+        List<FosterwxCashTaskTemplate> list = fosterwxCashTaskTemplateMapper.getList(pageObj,handle);
         ResHandle<List<FosterwxCashTaskTemplate>> res = new ResHandle<>();
         res.setList(list);
         res.setTotal(pageObj.getTotal());
@@ -53,7 +53,9 @@ public class FosterwxCashTaskTemplateServiceImpl extends ServiceImpl<FosterwxCas
      * @return
      */
     public ResHandle<List<FosterwxCashTaskList>> getTaskByTemplateId(Integer id){
-        List<FosterwxCashTaskList> list = fosterwxCashTaskListService.list(new QueryWrapper<FosterwxCashTaskList>().eq("template_id",id));
+        List<FosterwxCashTaskList> list = fosterwxCashTaskListService.list(new QueryWrapper<FosterwxCashTaskList>()
+                .eq("template_id",id)
+                .orderByAsc("send_at"));
         ResHandle<List<FosterwxCashTaskList>> res = new ResHandle<>();
         res.setList(list);
         res.setTotal(Long.valueOf(1));

+ 44 - 0
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxDomainServiceImpl.java

@@ -0,0 +1,44 @@
+package com.mokamrp.privates.service.pangu.impl;
+
+import com.mokamrp.privates.entity.pangu.GetForsterCashDomainHandle;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxDomain;
+import com.mokamrp.privates.mapper.pangu.FosterwxDomainMapper;
+import com.mokamrp.privates.service.pangu.FosterwxDomainService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.*;
+
+/**
+ * <p>
+ * 盘古养号域名库 服务实现类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-10-15
+ */
+@Service
+public class FosterwxDomainServiceImpl extends ServiceImpl<FosterwxDomainMapper, FosterwxDomain> implements FosterwxDomainService {
+
+    @Autowired
+    public FosterwxDomainMapper fosterwxDomainMapper;
+    /**
+     * 获取数据列表 支持分页
+     * @param handle
+     * @return
+     */
+    public ResHandle<List<FosterwxDomain>> getList(GetForsterCashDomainHandle handle) {
+        Integer pagesize = handle.getPagesize();
+        Integer page = handle.getPage();
+        Page<FosterwxDomain> pageObj = new Page<FosterwxDomain>(page, pagesize);
+        List<FosterwxDomain> list = fosterwxDomainMapper.getList(pageObj,handle);
+        ResHandle<List<FosterwxDomain>> res = new ResHandle<>();
+        res.setList(list);
+        res.setTotal(pageObj.getTotal());
+        return res;
+    }
+}

+ 11 - 3
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxMobileServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.entity.SetIdsHandle;
 import com.mokamrp.privates.entity.VoltaHandle;
 import com.mokamrp.privates.entity.pangu.GetForsterwxMobileHandle;
 import com.mokamrp.privates.mapper.pangu.FosterwxMobileMapper;
@@ -49,6 +50,9 @@ public class FosterwxMobileServiceImpl extends ServiceImpl<FosterwxMobileMapper,
     public FosterwxMobileService fosterwxMobileService;
 
     @Autowired
+    public FosterwxDomainService fosterwxDomainService;
+
+    @Autowired
     public CorpService corpService;
 
     @Autowired
@@ -255,18 +259,22 @@ public class FosterwxMobileServiceImpl extends ServiceImpl<FosterwxMobileMapper,
 
     /**
      * 批量加入变现账号
-     * @param mobileIds
+     * @param setIdsHandle
      * @return
      */
-    public Boolean addCashMobileList(List<Integer> mobileIds) {
+    public Boolean addCashMobileList(SetIdsHandle setIdsHandle) {
         LocalDateTime now = LocalDateTime.now();
-        for (Integer id : mobileIds) {
+        for (Integer id : setIdsHandle.getIds()) {
             FosterwxMobile fosterwxMobile = this.getOne(new QueryWrapper<FosterwxMobile>().eq("id", id));
             FosterwxCashMobile fosterwxCashMobile = fosterwxCashMobileService.getOne(new QueryWrapper<FosterwxCashMobile>().eq("mobile_id",id));
             if (fosterwxCashMobile != null){
                 continue;
             }
+            List<FosterwxDomain> domainList = fosterwxDomainService.list(new QueryWrapper<FosterwxDomain>().eq("station_id",fosterwxMobile.getStationId()));
+            Integer rand = (int)(0+Math.random()*((domainList.size()-1)-0+1));
             FosterwxCashMobile add = new FosterwxCashMobile();
+            add.setDomainId(domainList.get(rand).getId());
+            add.setGroupId(setIdsHandle.getId());
             add.setMobileId(fosterwxMobile.getId());
             add.setStationId(fosterwxMobile.getStationId());
             add.setCreateAt(now);

+ 185 - 0
src/main/java/com/mokamrp/privates/task/pangu/SyncCreateCashTask.java

@@ -0,0 +1,185 @@
+package com.mokamrp.privates.task.pangu;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.entity.pangu.FosterwxCashAccountScheduleHandle;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashAccountSchedule;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashOasBox;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashScheduleTaskList;
+import com.mokamrp.privates.service.pangu.FosterwxCashAccountScheduleService;
+import com.mokamrp.privates.service.pangu.FosterwxCashOasBoxService;
+import com.mokamrp.privates.service.pangu.FosterwxCashScheduleTaskListService;
+import lombok.extern.slf4j.Slf4j;
+import net.javacrumbs.shedlock.core.SchedulerLock;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpMethod;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.*;
+
+/**
+ * 每天五点定时生成第二天的任务列表
+ */
+@Component
+@Slf4j
+public class SyncCreateCashTask {
+    public static final String FEISHU_ROBOT = "https://open.feishu.cn/open-apis/bot/v2/hook/9bc38791-e7d1-48a1-ae64-0df632e81a36";
+    @Autowired
+    private FosterwxCashAccountScheduleService fosterwxCashAccountScheduleService;
+
+    @Autowired
+    private FosterwxCashScheduleTaskListService fosterwxCashScheduleTaskListService;
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Autowired
+    private FosterwxCashOasBoxService fosterwxCashOasBoxService;
+
+    /**
+     * 每天下午五点生成第二天的任务及链接
+     */
+    @Scheduled(cron = "0 0 17 * * ?")
+    @SchedulerLock(name = "pangu:SyncCreateCashTask", lockAtLeastForString = "PT5S", lockAtMostForString = "PT15M")
+    public void syncCreateCashTask() {
+        // 优先清空公众号 小程序使用次数
+        fosterwxCashOasBoxService.update(new FosterwxCashOasBox() {{
+            setUpdateAt(LocalDateTime.now());
+            setSendTextCnt(0);
+        }}, null);
+        // 获取明天日期
+        LocalDate nextDay = LocalDate.now().plusDays(1);
+
+        List<FosterwxCashAccountSchedule> fosterwxCashAccountSchedules = fosterwxCashAccountScheduleService.list(new LambdaQueryWrapper<FosterwxCashAccountSchedule>().eq(FosterwxCashAccountSchedule::getScheduleDate, nextDay).eq(FosterwxCashAccountSchedule::getStatus, 2));
+
+        List<FosterwxCashScheduleTaskList> newsList = new ArrayList<>();
+        fosterwxCashAccountSchedules.forEach(fosterwxCashAccountSchedule -> {
+            List<FosterwxCashScheduleTaskList> list = fosterwxCashAccountScheduleService.createTask(fosterwxCashAccountSchedule.getId());
+            newsList.addAll(list);
+        });
+
+        // 由于不能浪费公众号发文为 需要整合起来一起发送
+        // 按照组别组合在一起
+        Map<Integer, List<FosterwxCashScheduleTaskList>> groupList = new HashMap<>();
+        newsList.forEach(fosterwxCashScheduleTaskList -> {
+            Integer groupId = fosterwxCashScheduleTaskList.getGroupId();
+            if (groupList.get(groupId) != null) {
+                groupList.get(groupId).add(fosterwxCashScheduleTaskList);
+            } else {
+                groupList.put(groupId, Collections.singletonList(fosterwxCashScheduleTaskList));
+            }
+        });
+        // 调用typer生成链接
+        for (Integer id : groupList.keySet()) {
+            fosterwxCashScheduleTaskListService.create(groupList.get(id));
+        }
+    }
+
+    /**
+     * 每天起点飞书提醒 任务失败详情
+     */
+    @Scheduled(cron = "0 0 7 * * ?")
+    @SchedulerLock(name = "pangu:TaskInfoNotify", lockAtLeastForString = "PT5S", lockAtMostForString = "PT15M")
+    public void taskInfoNotify() {
+        // 获取当天日期
+        LocalDate localDate = LocalDate.now();
+
+        FosterwxCashAccountScheduleHandle handle = new FosterwxCashAccountScheduleHandle();
+        handle.setScheduleDate(localDate);
+        handle.setPage(1);
+        handle.setPageSize(999999999);
+
+        ResHandle<List<FosterwxCashAccountSchedule>> res = fosterwxCashAccountScheduleService.getList(handle);
+
+        Map<String, Object> body = new HashMap<>(1);
+        body.put("msg_type", "post");
+        JSONArray content = new JSONArray();
+        res.getList().forEach(fosterwxCashAccountSchedule -> {
+            content.add(getJsonArray("排期日期:" + fosterwxCashAccountSchedule.getScheduleDate() + " 账号组: " + fosterwxCashAccountSchedule.getGroupName() + " 任务失败数量:" + (fosterwxCashAccountSchedule.getTotalCount() - fosterwxCashAccountSchedule.getCreatedCount()) + "个"));
+        });
+
+        if (content.size() > 0) {
+            JSONObject post = new JSONObject();
+            JSONObject zh_cn = new JSONObject();
+            JSONObject outContent = new JSONObject();
+            zh_cn.put("title", "飞书汇总提醒任务失败详情:");
+            sendTofeishu(body, content, post, zh_cn, outContent);
+        }
+    }
+
+    /**
+     * 检查微信公众号封禁情况 封禁的情况下 需要重新换公众号重新生成
+     */
+    @Scheduled(cron = "0 */1 * * * ?")
+    @SchedulerLock(name = "pangu:TaskInfoNotify", lockAtLeastForString = "PT5S", lockAtMostForString = "PT15M")
+    public void checkGhidStatus() {
+        // 获取待发送状态的封禁的任务
+        List<FosterwxCashScheduleTaskList> fosterwxCashScheduleTaskLists = fosterwxCashScheduleTaskListService.getBannedGhid();
+
+        Map<String, Object> body = new HashMap<>(1);
+        body.put("msg_type", "post");
+        JSONArray content = new JSONArray();
+
+        fosterwxCashScheduleTaskLists.forEach(fosterwxCashScheduleTaskList -> {
+            // 飞书通知消息设置
+            content.add(getJsonArray("任务ID:" + fosterwxCashScheduleTaskList.getId() + " 公众号: " + fosterwxCashScheduleTaskList.getGhId() + " 发送时间:" + fosterwxCashScheduleTaskList.getSendTime()));
+        });
+        // 重新创建
+        fosterwxCashScheduleTaskListService.create(fosterwxCashScheduleTaskLists);
+
+        if (content.size() > 0) {
+            JSONObject post = new JSONObject();
+            JSONObject zh_cn = new JSONObject();
+            JSONObject outContent = new JSONObject();
+            zh_cn.put("title", "飞书汇总公众号封禁任务:");
+
+            // 重新生成提醒
+            content.add(getJsonArray("以上任务已重新生成!"));
+
+            sendTofeishu(body, content, post, zh_cn, outContent);
+        }
+    }
+
+    /**
+     * 发送到飞书
+     * @param body
+     * @param content
+     * @param post
+     * @param zh_cn
+     * @param outContent
+     */
+    private void sendTofeishu(Map<String, Object> body, JSONArray content, JSONObject post, JSONObject zh_cn, JSONObject outContent) {
+        zh_cn.put("content", content);
+        post.put("zh_cn", zh_cn);
+        outContent.put("post", post);
+        body.put("content", outContent);
+        HttpEntity<Map<String, Object>> httpEntity = new HttpEntity<>(body, null);
+        // 发送飞书提醒
+        restTemplate.exchange(FEISHU_ROBOT, HttpMethod.POST, httpEntity, JSONObject.class);
+    }
+
+    /**
+     * 飞书提醒格式化
+     * @param text
+     * @return
+     */
+    private JSONArray getJsonArray(String text) {
+        JSONArray rowData = new JSONArray();
+        rowData.add(new JSONObject() {
+            {
+                {
+                    put("tag", "text");
+                    put("text", text);
+                }
+            }
+        });
+        return rowData;
+    }
+}

+ 92 - 0
src/main/java/com/mokamrp/privates/task/pangu/SyncFosterwxCash.java

@@ -0,0 +1,92 @@
+package com.mokamrp.privates.task.pangu;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashScheduleTaskList;
+import com.mokamrp.privates.service.pangu.FosterwxCashScheduleTaskListService;
+import com.mokamrp.privates.utils.pangu.redis.task.TaskRedis;
+import lombok.extern.slf4j.Slf4j;
+import net.javacrumbs.shedlock.core.SchedulerLock;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+
+/**
+ * 同步变现任务到缓存 供H5页面展示
+ */
+@Component
+@Slf4j
+public class SyncFosterwxCash {
+    @Autowired
+    private StringRedisTemplate stringRedisTemplate;
+
+    @Autowired
+    private FosterwxCashScheduleTaskListService fosterwxCashScheduleTaskListService;
+
+    @Autowired
+    private TaskRedis taskRedis;
+
+    /**
+     * 定时同步typer已经生成的url
+     */
+    @Scheduled(cron = "20 */1 * * * ?")
+    @SchedulerLock(name = "pangu:SyncCreatedUrlInfo", lockAtLeastForString = "PT5S", lockAtMostForString = "PT15M")
+    public void syncCreatedUrlInfo() {
+        String urlInfo = taskRedis.getPanguCashTaskInfo();
+        while (urlInfo != null) {
+            log.info("typer生成的链接信息{}", urlInfo);
+            // 根据获取的信息保存到本地数据库
+            JSONObject jsonObject = JSONObject.parseObject(urlInfo);
+            if ("success".equals(jsonObject.get("status"))) {
+                fosterwxCashScheduleTaskListService.updateById(new FosterwxCashScheduleTaskList() {{
+                    setId(Integer.valueOf(jsonObject.get("automatic_id").toString()));
+                    setSendUrl(jsonObject.get("article_url").toString());
+                    setStatus(4);
+                }});
+            } else {
+                fosterwxCashScheduleTaskListService.updateById(new FosterwxCashScheduleTaskList() {{
+                    setId(Integer.valueOf(jsonObject.get("automatic_id").toString()));
+                    setErrInfo(jsonObject.get("ret_message").toString());
+                    setStatus(3);
+                }});
+            }
+
+            urlInfo = taskRedis.getPanguCashTaskInfo();
+        }
+    }
+
+    /**
+     * 每天一分钟定时更新需要发送的任务的状态
+     * @since: 1.18.1
+     * @param: []
+     * @return: void
+     * @author: lqc
+     * @date: 2021/10/22
+     */
+    @Scheduled(cron = "5 */1 * * * ?")
+    @SchedulerLock(name = "pangu:SyncCreatedUrlInfo", lockAtLeastForString = "PT5S", lockAtMostForString = "PT15M")
+    public void syncTaskListStatus() {
+        LocalDateTime localDateTime = LocalDateTime.now();
+
+        LocalDateTime zeroDateTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
+
+
+        // 更新个微任务
+        fosterwxCashScheduleTaskListService.update(
+                new FosterwxCashScheduleTaskList() {{
+                    setStatus(5);
+                    setUpdateAt(LocalDateTime.now());
+                }},
+                new LambdaQueryWrapper<FosterwxCashScheduleTaskList>().
+                        in(FosterwxCashScheduleTaskList::getStatus, 2, 4).
+                        eq(FosterwxCashScheduleTaskList::getType, 1).
+                        between(FosterwxCashScheduleTaskList::getSendTime, zeroDateTime, localDateTime)
+        );
+
+    }
+}

+ 30 - 0
src/main/java/com/mokamrp/privates/utils/pangu/redis/task/TaskRedis.java

@@ -0,0 +1,30 @@
+package com.mokamrp.privates.utils.pangu.redis.task;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Component;
+
+@Component
+public class TaskRedis {
+    // 缓存的任务信息数据
+    public static final String PANGU_CASH_TASK_INFO = "pangu_cash_task_info";
+    // 缓存生成的链接
+    public static final String PANGU_CASH_CREATED_URL = "pangu_cash_created_url";
+
+    @Autowired
+    private StringRedisTemplate stringRedisTemplate;
+
+    /**
+     * 缓存给typer制作url所需的数据
+     * @param json
+     */
+    public void createUrlByTyper(String json) {
+        // 把数据存放到redis缓存中
+        stringRedisTemplate.opsForList().leftPush(PANGU_CASH_TASK_INFO, json);
+    }
+
+    public String getPanguCashTaskInfo() {
+        // 获取生成链接的结果
+        return stringRedisTemplate.opsForList().rightPop(PANGU_CASH_CREATED_URL);
+    }
+}

BIN
src/main/resources/static/养号变现导入排期.xls


BIN
src/main/resources/static/盘古变现公众号小程序账号导入.xls


+ 67 - 70
src/test/java/com/mokamrp/AutoMPPangu.java

@@ -6,85 +6,82 @@ import com.baomidou.mybatisplus.generator.AutoGenerator;
 import com.baomidou.mybatisplus.generator.InjectionConfig;
 import com.baomidou.mybatisplus.generator.config.*;
 import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.mokamrp.privates.mapper.pangu.pojo.FosterwxTaskTemplate;
 import org.junit.Test;
 
 import java.util.HashMap;
 import java.util.Map;
 
 public class AutoMPPangu {
-	/**
-	 * 代码生成    示例代码
-	 */
-	@Test
-	public void testGenerator() {
+    /**
+     * 代码生成    示例代码
+     */
+    @Test
+    public void testGenerator() {
 
-		//1. 全局配置
-		String outPutDir = "D://project/moka-private/src/main/java";
-		GlobalConfig config = new GlobalConfig();
-		config.setActiveRecord(true) // 是否支持AR模式
-				.setAuthor("leon") // 作者
-				.setOutputDir(outPutDir) // 生成路径
-				.setFileOverride(true)  // 文件覆盖
-				.setIdType(IdType.AUTO) // 主键策略
-				.setServiceName("%sService")  // 设置生成的service接口的名字的首字母是否为I
-				// IEmployeeService
-				.setBaseResultMap(true) //生成sql映射文件
-				.setBaseColumnList(true);//生成sql片段
+        //1. 全局配置
+        String outPutDir = "D://project/moka-private/src/main/java";
+        GlobalConfig config = new GlobalConfig();
+        config.setActiveRecord(true) // 是否支持AR模式
+                .setAuthor("leon") // 作者
+                .setOutputDir(outPutDir) // 生成路径
+                .setFileOverride(true)  // 文件覆盖
+                .setIdType(IdType.AUTO) // 主键策略
+                .setServiceName("%sService")  // 设置生成的service接口的名字的首字母是否为I
+                // IEmployeeService
+                .setBaseResultMap(true) //生成sql映射文件
+                .setBaseColumnList(true);//生成sql片段
 
-		//2. 数据源配置
-		DataSourceConfig  dsConfig  = new DataSourceConfig();
-		dsConfig.setDbType(DbType.MYSQL)  // 设置数据库类型
-				.setDriverName("com.mysql.cj.jdbc.Driver")
-				.setUrl("jdbc:mysql://172.18.71.27:3306/mochat")
-				.setUsername("typer")
-				.setPassword("jch9sh_shl");
-
-		//3. 策略配置
-		StrategyConfig stConfig = new StrategyConfig();
-		stConfig.setCapitalMode(true) //全局大写命名
-				.setRestControllerStyle(true) //.RestController
-				.setSuperControllerClass("BaseController")
-				.setColumnNaming(NamingStrategy.underline_to_camel)
-				.setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略,下划线转驼峰命名
-				.setTablePrefix("pan_") //表名前缀
-				.setInclude("pan_fosterwx_cash_oas_box_group");
-		//4. 包名策略配置
-		PackageConfig pkConfig = new PackageConfig();
-		pkConfig.setParent("com.mokamrp.privates")
-				.setMapper("mapper.pangu")
-				.setService("service.pangu")
-				.setServiceImpl("service.pangu.impl")
-				.setController("controller.pangu")
-				.setEntity("mapper.pangu.pojo")
-				.setXml("mapper.pangu");
-		//5. 注入自定义配置
-		InjectionConfig cfg = new InjectionConfig() {
-			@Override
-			public void initMap() {
-				Map<String, Object> map = new HashMap<String, Object>();
-				this.setMap(map);
-			}
-		};
-
-		//6. 整合配置
-		AutoGenerator  ag = new AutoGenerator();
-		ag.setGlobalConfig(config)
-		  .setDataSource(dsConfig)
-		  .setStrategy(stConfig)
-		  .setPackageInfo(pkConfig);
-		//. @leon 自定义模板
-		TemplateConfig tc = new TemplateConfig();
-		tc.setService("/template/service.java.vm");
-		tc.setServiceImpl("/template/serviceImpl.java.vm");
-		tc.setController("/template/controller.java.vm");
-		tc.setMapper("/template/mapper.java.vm");
-		tc.setXml("/template/mapper.xml.vm");
-		ag.setTemplate(tc);
-		//7. 执行
-		ag.execute();
-	}
+        //2. 数据源配置
+        DataSourceConfig dsConfig = new DataSourceConfig();
+        dsConfig.setDbType(DbType.MYSQL)  // 设置数据库类型
+                .setDriverName("com.mysql.cj.jdbc.Driver")
+                .setUrl("jdbc:mysql://172.18.71.27:3306/mochat")
+                .setUsername("typer")
+                .setPassword("jch9sh_shl");
+        //3. 策略配置
+        StrategyConfig stConfig = new StrategyConfig();
+        stConfig.setCapitalMode(true) //全局大写命名
+                .setRestControllerStyle(true) //.RestController
+                .setSuperControllerClass("BaseController")
+                .setColumnNaming(NamingStrategy.underline_to_camel)
+                .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略,下划线转驼峰命名
+                .setTablePrefix("pan_") //表名前缀
+                .setInclude("pan_fosterwx_cash_schedule_task_list");
+        //4. 包名策略配置
+        PackageConfig pkConfig = new PackageConfig();
+        pkConfig.setParent("com.mokamrp.privates")
+                .setMapper("mapper.pangu")
+                .setService("service.pangu")
+                .setServiceImpl("service.pangu.impl")
+                .setController("controller.pangu")
+                .setEntity("mapper.pangu.pojo")
+                .setXml("mapper.pangu");
+        //5. 注入自定义配置
+        InjectionConfig cfg = new InjectionConfig() {
+            @Override
+            public void initMap() {
+                Map<String, Object> map = new HashMap<String, Object>();
+                this.setMap(map);
+            }
+        };
 
+        //6. 整合配置
+        AutoGenerator ag = new AutoGenerator();
+        ag.setGlobalConfig(config)
+                .setDataSource(dsConfig)
+                .setStrategy(stConfig)
+                .setPackageInfo(pkConfig);
+        //. @leon 自定义模板
+        TemplateConfig tc = new TemplateConfig();
+        tc.setService("/template/service.java.vm");
+        tc.setServiceImpl("/template/serviceImpl.java.vm");
+        tc.setController("/template/controller.java.vm");
+        tc.setMapper("/template/mapper.java.vm");
+        tc.setXml("/template/mapper.xml.vm");
+        ag.setTemplate(tc);
+        //7. 执行
+        ag.execute();
+    }
 
 
 }

+ 12 - 0
src/test/java/com/mokamrp/Tests.java

@@ -91,4 +91,16 @@ public class Tests {
             log.info("{}:{}", i, group);
         }
     }
+
+    @Test
+    public void test8() {
+        List<String> list = new ArrayList<String>() {{
+            add("1");
+            add("2");
+        }};
+
+        list.remove(0);
+
+        log.info("{}", list);
+    }
 }

+ 13 - 0
src/test/java/com/mokamrp/WebTest.java

@@ -5,11 +5,13 @@ import com.mokamrp.privates.PrivateServerStart;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobilePool;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobileTaskTimeList;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxTaskSchedule;
+import com.mokamrp.privates.service.CoralApiService;
 import com.mokamrp.privates.service.CorpService;
 import com.mokamrp.privates.service.pangu.FosterwxMobilePoolService;
 import com.mokamrp.privates.service.pangu.FosterwxMobileService;
 import com.mokamrp.privates.service.pangu.FosterwxMobileTaskTimeListService;
 import com.mokamrp.privates.service.pangu.FosterwxTaskScheduleService;
+import com.mokamrp.privates.task.pangu.SyncCreateCashTask;
 import com.mokamrp.privates.task.pangu.SyncFosterwxMobilePool;
 import com.mokamrp.privates.task.pangu.SyncMobilePoolFans;
 import lombok.extern.slf4j.Slf4j;
@@ -46,6 +48,12 @@ public class WebTest {
     @Autowired
     private SyncMobilePoolFans syncMobilePoolFans;
 
+    @Autowired
+    private SyncCreateCashTask syncCreateCashTask;
+
+    @Autowired
+    private CoralApiService coralApiService;
+
     @Test
     public void test1() {
         // 清洗数据
@@ -99,4 +107,9 @@ public class WebTest {
             }
         });
     }
+
+    @Test
+    public void test4() {
+        syncCreateCashTask.syncCreateCashTask();
+    }
 }