|
|
@@ -1,16 +1,24 @@
|
|
|
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.mapper.pangu.pojo.FosterwxCashWorkwxTaskList;
|
|
|
import com.mokamrp.privates.service.pangu.FosterwxCashAccountScheduleService;
|
|
|
+import com.mokamrp.privates.service.pangu.FosterwxCashScheduleTaskListService;
|
|
|
+import com.mokamrp.privates.service.pangu.FosterwxCashTaskTemplateService;
|
|
|
+import com.mokamrp.privates.service.pangu.FosterwxCashWorkwxTaskCatalogService;
|
|
|
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 +36,62 @@ public class FosterwxCashAccountScheduleServiceImpl extends ServiceImpl<Fosterwx
|
|
|
@Autowired
|
|
|
public FosterwxCashAccountScheduleMapper fosterwxCashAccountScheduleMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ public FosterwxCashTaskTemplateService fosterwxCashTaskTemplateService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ public FosterwxCashScheduleTaskListMapper fosterwxCashScheduleTaskListMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ public FosterwxCashScheduleTaskListService fosterwxCashScheduleTaskListService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ public FosterwxCashWorkwxTaskCatalogService fosterwxCashWorkwxTaskCatalogService;
|
|
|
+
|
|
|
/**
|
|
|
* 获取数据列表 支持分页
|
|
|
* @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());
|
|
|
|
|
|
- List<FosterwxCashAccountSchedule> list = fosterwxCashAccountScheduleMapper.getList(fosterwxCashAccountScheduleLambdaQueryWrapper, pagesize, (page - 1) * pagesize);
|
|
|
+ // 任务模板
|
|
|
+ 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(fosterwxCashAccountScheduleQueryWrapper, pagesize, (page - 1) * pagesize);
|
|
|
ResHandle<List<FosterwxCashAccountSchedule>> res = new ResHandle<>();
|
|
|
res.setList(list);
|
|
|
res.setTotal(maxCount);
|
|
|
@@ -59,19 +101,167 @@ 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) {
|
|
|
- // 根据任务模板id获取任务模板详情
|
|
|
- // TODO 需要老王那边配合写个方法
|
|
|
- List<FosterwxCashTaskList> fosterwxCashTaskLists = new ArrayList<>();
|
|
|
+ // 该接口由立即生成和任务链接生成失败后两种调用方式 因此 在生成任务之前要删除旧任务
|
|
|
+ fosterwxCashScheduleTaskListMapper.delete(new LambdaQueryWrapper<FosterwxCashScheduleTaskList>().eq(FosterwxCashScheduleTaskList::getScheduleId, id));
|
|
|
+
|
|
|
+ List<FosterwxCashScheduleTaskList> newsList = new ArrayList<>();
|
|
|
+ if (fosterwxCashAccountSchedule.getType() == 1) {
|
|
|
+ // 创建个微任务
|
|
|
+ newsList = createFosterwxTaskList(fosterwxCashAccountSchedule);
|
|
|
+ } else {
|
|
|
+ // 创建企微任务
|
|
|
+ newsList = createFosterwxWorkTaskList(fosterwxCashAccountSchedule);
|
|
|
+ }
|
|
|
|
|
|
- fosterwxCashTaskLists.forEach(fosterwxCashTaskList -> {
|
|
|
+ // 任务列表创建完成后 账号排期状态设置成正常
|
|
|
+ fosterwxCashAccountSchedule.setStatus(1);
|
|
|
+ fosterwxCashAccountSchedule.setUpdateAt(LocalDateTime.now());
|
|
|
+ fosterwxCashAccountScheduleMapper.updateById(fosterwxCashAccountSchedule);
|
|
|
|
|
|
- });
|
|
|
+ return newsList;
|
|
|
}
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建企微任务
|
|
|
+ * @since: 1.18.1
|
|
|
+ * @param: [fosterwxCashAccountSchedule]
|
|
|
+ * @return: java.util.List<com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashScheduleTaskList>
|
|
|
+ * @author: lqc
|
|
|
+ * @date: 2021/10/25
|
|
|
+ */
|
|
|
+ private List<FosterwxCashScheduleTaskList> createFosterwxWorkTaskList(FosterwxCashAccountSchedule fosterwxCashAccountSchedule) {
|
|
|
+ // 根据任务模板id获取任务模板详情
|
|
|
+ List<FosterwxCashWorkwxTaskList> resHandle = fosterwxCashWorkwxTaskCatalogService.getTaskByTemplateId(fosterwxCashAccountSchedule.getTemplateId());
|
|
|
+
|
|
|
+ List<FosterwxCashScheduleTaskList> newsList = new ArrayList<>();
|
|
|
+ resHandle.forEach(fosterwxCashWorkwxTaskList -> {
|
|
|
+ // 创建任务
|
|
|
+ FosterwxCashScheduleTaskList fosterwxCashScheduleTaskList = new FosterwxCashScheduleTaskList();
|
|
|
+ fosterwxCashScheduleTaskList.setScheduleId(fosterwxCashAccountSchedule.getId());
|
|
|
+ fosterwxCashScheduleTaskList.setTemplateId(fosterwxCashAccountSchedule.getTemplateId());
|
|
|
+ fosterwxCashScheduleTaskList.setTaskId(fosterwxCashWorkwxTaskList.getCatalogId());
|
|
|
+ fosterwxCashScheduleTaskList.setChildTaskId(fosterwxCashWorkwxTaskList.getId());
|
|
|
+ fosterwxCashScheduleTaskList.setGroupId(fosterwxCashAccountSchedule.getGroupId());
|
|
|
+ fosterwxCashScheduleTaskList.setTaskType(fosterwxCashWorkwxTaskList.getTaskType());
|
|
|
+ fosterwxCashScheduleTaskList.setRemark(fosterwxCashWorkwxTaskList.getRemark());
|
|
|
+ fosterwxCashScheduleTaskList.setTaskContent("");
|
|
|
+ fosterwxCashScheduleTaskList.setGhId("");
|
|
|
+ // 任务类型为链接是直接赋值
|
|
|
+ if (4 == fosterwxCashWorkwxTaskList.getTaskType()) {
|
|
|
+ fosterwxCashScheduleTaskList.setSendUrl(fosterwxCashWorkwxTaskList.getUrl());
|
|
|
+ fosterwxCashScheduleTaskList.setStatus(4);
|
|
|
+ fosterwxCashScheduleTaskList.setErrInfo("");
|
|
|
+ } else {
|
|
|
+ fosterwxCashScheduleTaskList.setSendUrl("");
|
|
|
+ fosterwxCashScheduleTaskList.setStatus(1);
|
|
|
+ fosterwxCashScheduleTaskList.setErrInfo("");
|
|
|
+ }
|
|
|
+
|
|
|
+ fosterwxCashScheduleTaskList.setSendTime(LocalDateTime.of(fosterwxCashAccountSchedule.getScheduleDate(), fosterwxCashWorkwxTaskList.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 (fosterwxCashWorkwxTaskList.getTaskType()) {
|
|
|
+ case 1:
|
|
|
+ // 发文-小程序
|
|
|
+ fosterwxCashScheduleTaskListService.editWorkBoxUrl(fosterwxCashScheduleTaskList, fosterwxCashWorkwxTaskList);
|
|
|
+ case 2:
|
|
|
+ newsList.add(fosterwxCashScheduleTaskList);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ // 小程序本地生成
|
|
|
+ fosterwxCashScheduleTaskListService.editWorkBoxUrl(fosterwxCashScheduleTaskList, fosterwxCashWorkwxTaskList);
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ // 任务类型为链接是 不需要操作
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return newsList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建个微任务
|
|
|
+ * @since: 1.18.1
|
|
|
+ * @param: [fosterwxCashAccountSchedule]
|
|
|
+ * @return: java.util.List<com.mokamrp.privates.mapper.pangu.pojo.FosterwxCashScheduleTaskList>
|
|
|
+ * @author: lqc
|
|
|
+ * @date: 2021/10/25
|
|
|
+ */
|
|
|
+ private List<FosterwxCashScheduleTaskList> createFosterwxTaskList(FosterwxCashAccountSchedule fosterwxCashAccountSchedule) {
|
|
|
+ // 根据任务模板id获取任务模板详情
|
|
|
+ ResHandle<List<FosterwxCashTaskList>> resHandle = fosterwxCashTaskTemplateService.getTaskByTemplateId(fosterwxCashAccountSchedule.getTemplateId());
|
|
|
+
|
|
|
+ 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;
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return newsList;
|
|
|
}
|
|
|
}
|