Browse Source

消息退送信息

zyh
zhanyunjiu 3 years ago
parent
commit
8f96db1483
  1. 73
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/annotation/FarmMsgAspect.java
  2. 1
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/area/AreaServiceImpl.java

73
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/annotation/FarmMsgAspect.java

@ -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
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/area/AreaServiceImpl.java

@ -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())

Loading…
Cancel
Save