消息退送信息
This commit is contained in:
+43
-30
@@ -7,7 +7,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.task.dto.TaskAssemblyDTO;
|
import cn.iocoder.yudao.module.farm.controller.admin.task.dto.TaskAssemblyDTO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.area.AreaDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.area.AreaDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.discuss.DiscussDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.crop.CropDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.logMsg.LogMsgDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.logMsg.LogMsgDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.project.ProjectDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.project.ProjectDO;
|
||||||
import cn.iocoder.yudao.module.farm.dal.dataobject.task.TaskDO;
|
import cn.iocoder.yudao.module.farm.dal.dataobject.task.TaskDO;
|
||||||
@@ -18,10 +18,13 @@ import cn.iocoder.yudao.module.farm.dal.mysql.project.ProjectMapper;
|
|||||||
import cn.iocoder.yudao.module.farm.dal.mysql.task.TaskMapper;
|
import cn.iocoder.yudao.module.farm.dal.mysql.task.TaskMapper;
|
||||||
import cn.iocoder.yudao.module.farm.dal.mysql.taskCate.TaskCateMapper;
|
import cn.iocoder.yudao.module.farm.dal.mysql.taskCate.TaskCateMapper;
|
||||||
import cn.iocoder.yudao.module.farm.service.area.AreaService;
|
import cn.iocoder.yudao.module.farm.service.area.AreaService;
|
||||||
|
import cn.iocoder.yudao.module.farm.service.crop.CropService;
|
||||||
import cn.iocoder.yudao.module.farm.service.task.TaskService;
|
import cn.iocoder.yudao.module.farm.service.task.TaskService;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.mysql.CpUser.CpUserMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.CpUser.CpUserMapper;
|
||||||
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
|
||||||
|
import lombok.Data;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import me.chanjar.weixin.common.error.WxErrorException;
|
import me.chanjar.weixin.common.error.WxErrorException;
|
||||||
import me.chanjar.weixin.cp.api.WxCpMessageService;
|
import me.chanjar.weixin.cp.api.WxCpMessageService;
|
||||||
@@ -71,6 +74,8 @@ public class FarmMsgAspect {
|
|||||||
private TaskService taskService;
|
private TaskService taskService;
|
||||||
@Resource
|
@Resource
|
||||||
private AreaService areaService;
|
private AreaService areaService;
|
||||||
|
@Resource
|
||||||
|
private CropService cropService;
|
||||||
|
|
||||||
@Value("${wxma.app_id}")
|
@Value("${wxma.app_id}")
|
||||||
private String appid;
|
private String appid;
|
||||||
@@ -108,20 +113,16 @@ public class FarmMsgAspect {
|
|||||||
//草稿不发送
|
//草稿不发送
|
||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
// //创建 更新 删除 发送信息
|
//创建 更新 删除 发送信息
|
||||||
// if (farmMsg.operation().equals(FarmMsgTypeEnum.CREATE) || farmMsg.operation().equals(FarmMsgTypeEnum.UPDATE)
|
if (farmMsg.operation().equals(FarmMsgTypeEnum.CREATE) || farmMsg.operation().equals(FarmMsgTypeEnum.UPDATE)
|
||||||
// || farmMsg.operation().equals(FarmMsgTypeEnum.DELETE)){
|
|| farmMsg.operation().equals(FarmMsgTypeEnum.DELETE)){
|
||||||
// //接受消息的人
|
CombineMsg combineMsg = this.assembleCpUserId(farmMsg.type(), farmMsgDTO.getId());
|
||||||
// String toUserStr = this.assembleCpUserId(farmMsg.type(), farmMsgDTO.getId());
|
//发起人
|
||||||
// //发起人
|
AdminUserDO adminUser = adminUserMapper.selectOne(AdminUserDO::getId, getLoginUserId());
|
||||||
// AdminUserDO adminUser = adminUserMapper.selectOne(AdminUserDO::getId, getLoginUserId());
|
CpUserDO user = cpUserMapper.selectOne(CpUserDO::getUserId, adminUser.getCpUserId());
|
||||||
// CpUserDO user = cpUserMapper.selectOne(CpUserDO::getUserId, adminUser.getCpUserId());
|
//企业微信小程序通知消息
|
||||||
//
|
this.sendMiniMsg(user, farmMsgDTO, combineMsg);
|
||||||
// if (!farmMsgDTO.getNoSendMsg()){
|
}
|
||||||
// //企业微信小程序通知消息
|
|
||||||
// this.sendMiniMsg(user, farmMsgDTO, toUserStr);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
//插入日志
|
//插入日志
|
||||||
LogMsgDO logMsgDO = LogMsgDO.builder()
|
LogMsgDO logMsgDO = LogMsgDO.builder()
|
||||||
@@ -141,14 +142,14 @@ public class FarmMsgAspect {
|
|||||||
|
|
||||||
|
|
||||||
//发送小程序通知消息
|
//发送小程序通知消息
|
||||||
public void sendMiniMsg(CpUserDO createUser, FarmMsgDTO farmMsgDTO, String toUserStr) throws WxErrorException {
|
public void sendMiniMsg(CpUserDO createUser, FarmMsgDTO farmMsgDTO, CombineMsg combineMsg) throws WxErrorException {
|
||||||
// 发小程序
|
// 发小程序
|
||||||
WxCpMessageService wxCpMessageService = wxCpService.getMessageService();
|
WxCpMessageService wxCpMessageService = wxCpService.getMessageService();
|
||||||
// 构造一个企业推送消息
|
// 构造一个企业推送消息
|
||||||
WxCpMessage message = new WxCpMessage();
|
WxCpMessage message = new WxCpMessage();
|
||||||
|
|
||||||
//接受者
|
//接受者
|
||||||
message.setToUser(toUserStr);
|
message.setToUser(combineMsg.getToUserStr());
|
||||||
//消息类型
|
//消息类型
|
||||||
message.setMsgType("miniprogram_notice");
|
message.setMsgType("miniprogram_notice");
|
||||||
|
|
||||||
@@ -159,8 +160,10 @@ public class FarmMsgAspect {
|
|||||||
|
|
||||||
LinkedHashMap<String, String> map = new LinkedHashMap<>();
|
LinkedHashMap<String, String> map = new LinkedHashMap<>();
|
||||||
map.put("发起人", createUser.getName());
|
map.put("发起人", createUser.getName());
|
||||||
|
map.put("负责人", combineMsg.getMainPersonName());
|
||||||
if (farmMsgDTO.getType().equals(FarmMsgTypeEnum.PROJECT)){
|
if (farmMsgDTO.getType().equals(FarmMsgTypeEnum.PROJECT)){
|
||||||
map.put("内容", farmMsgDTO.getTitle());
|
map.put("项目批次号", farmMsgDTO.getId().toString());
|
||||||
|
map.put("作物", combineMsg.getCropName());
|
||||||
}else if(farmMsgDTO.getType().equals(FarmMsgTypeEnum.TASK)){
|
}else if(farmMsgDTO.getType().equals(FarmMsgTypeEnum.TASK)){
|
||||||
this.taskDetail(farmMsgDTO.getId(), map);
|
this.taskDetail(farmMsgDTO.getId(), map);
|
||||||
}
|
}
|
||||||
@@ -189,31 +192,41 @@ public class FarmMsgAspect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description 获取需要接受信息的成员
|
* @Description 获取需要发送的相关信息
|
||||||
* @param id 可能是 projectId taskId 或 discussId
|
* @param id 可能是 projectId taskId 或 discussId
|
||||||
**/
|
**/
|
||||||
public String assembleCpUserId(FarmMsgTypeEnum farmMsgType, Long id){
|
public CombineMsg assembleCpUserId(FarmMsgTypeEnum farmMsgType, Long id){
|
||||||
List<Long> idList = new ArrayList<>();
|
List<Long> idList = new ArrayList<>();
|
||||||
|
Long cropId = 0L;
|
||||||
if (farmMsgType.equals(FarmMsgTypeEnum.PROJECT)){
|
if (farmMsgType.equals(FarmMsgTypeEnum.PROJECT)){
|
||||||
ProjectDO project = projectMapper.selectOne(ProjectDO::getId, id);
|
ProjectDO project = projectMapper.selectOne(ProjectDO::getId, id);
|
||||||
idList.addAll(project.getMembers());
|
idList.add(project.getMainPerson());
|
||||||
}else if (farmMsgType.equals(FarmMsgTypeEnum.TASK)){
|
cropId = project.getCropId();
|
||||||
|
}else {
|
||||||
TaskDO task = taskMapper.selectOne(TaskDO::getId, id);
|
TaskDO task = taskMapper.selectOne(TaskDO::getId, id);
|
||||||
idList.add(task.getMainPerson());
|
idList.add(task.getMainPerson());
|
||||||
idList.addAll(task.getExecutorPerson());
|
cropId = task.getCropId();
|
||||||
}else if (farmMsgType.equals(FarmMsgTypeEnum.DISCUSS)){
|
|
||||||
DiscussDO discuss = discussMapper.selectOne(DiscussDO::getId, id);
|
|
||||||
TaskDO task = taskMapper.selectOne(TaskDO::getId, discuss.getId());
|
|
||||||
idList.add(task.getMainPerson());
|
|
||||||
idList.addAll(task.getExecutorPerson());
|
|
||||||
}
|
}
|
||||||
|
CombineMsg combineMsg = new CombineMsg();
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
List<CpUserDO> userList = cpUserMapper.selectList(CpUserDO::getId, idList);
|
List<CpUserDO> userList = cpUserMapper.selectList(CpUserDO::getId, idList);
|
||||||
userList.forEach(user ->{
|
userList.forEach(user ->{
|
||||||
builder.append(user.getUserId()).append("|");
|
builder.append(user.getUserId()).append("|");
|
||||||
|
combineMsg.setMainPersonName(user.getName());
|
||||||
});
|
});
|
||||||
return builder.toString().substring(0, builder.length() -1);
|
combineMsg.setToUserStr(builder.toString().substring(0, builder.length() -1));
|
||||||
|
CropDO crop = cropService.getCrop(cropId);
|
||||||
|
combineMsg.setCropName(crop.getName());
|
||||||
|
return combineMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CombineMsg{
|
||||||
|
private String toUserStr; //接受消息的人 目前是就负责人一个人接收消息
|
||||||
|
|
||||||
|
private String mainPersonName; //负责人名字
|
||||||
|
|
||||||
|
private String cropName; //作物名
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
-1
@@ -222,7 +222,6 @@ public class AreaServiceImpl implements AreaService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<Long> distinctIdList = areaList.stream().map(AreaDO::getId).distinct().collect(Collectors.toList());
|
List<Long> distinctIdList = areaList.stream().map(AreaDO::getId).distinct().collect(Collectors.toList());
|
||||||
System.out.println(oneArea.getName() +",,"+ secondList.size()+">>>>" + distinctIdList.toString());
|
|
||||||
AreaProjectDTO areaProject = AreaProjectDTO.builder()
|
AreaProjectDTO areaProject = AreaProjectDTO.builder()
|
||||||
.areaId(oneArea.getId())
|
.areaId(oneArea.getId())
|
||||||
.areaName(oneArea.getName())
|
.areaName(oneArea.getName())
|
||||||
|
|||||||
Reference in New Issue
Block a user