diff --git a/zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/annotation/FarmMsgAspect.java b/zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/annotation/FarmMsgAspect.java index f6f7fab7..ab74aad1 100644 --- a/zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/annotation/FarmMsgAspect.java +++ b/zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/annotation/FarmMsgAspect.java @@ -6,6 +6,9 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.util.ObjectUtil; 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.TaskDetailDTO; +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.logMsg.LogMsgDO; import cn.iocoder.yudao.module.farm.dal.dataobject.project.ProjectDO; @@ -16,6 +19,8 @@ import cn.iocoder.yudao.module.farm.dal.mysql.logMsg.LogMsgMapper; 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.taskCate.TaskCateMapper; +import cn.iocoder.yudao.module.farm.service.area.AreaService; +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.user.AdminUserDO; import cn.iocoder.yudao.module.system.dal.mysql.CpUser.CpUserMapper; @@ -66,6 +71,10 @@ public class FarmMsgAspect { private AdminUserMapper adminUserMapper; @Resource private WxCpService wxCpService; + @Resource + private TaskService taskService; + @Resource + private AreaService areaService; @Value("${wxma.app_id}") private String appid; @@ -131,6 +140,8 @@ public class FarmMsgAspect { return object; } + + //发送小程序通知消息 public void sendMiniMsg(CpUserDO createUser, FarmMsgDTO farmMsgDTO, String toUserStr) throws WxErrorException { // 发小程序 @@ -148,17 +159,36 @@ public class FarmMsgAspect { message.setDescription(LocalDateTimeUtil.formatNormal(LocalDateTime.now())); message.setPage(farmMsgDTO.getType().equals(FarmMsgTypeEnum.PROJECT) ? "pages/project/index" : "pages/task/taskDetail/index?id="+ farmMsgDTO.getId()); - Map map2 = new HashMap<>(); - map2.put("发起人", createUser.getName()); - map2.put("内容", ObjectUtil.isEmpty(farmMsgDTO.getMsg()) ? farmMsgDTO.getTitle() : farmMsgDTO.getMsg()); - message.setContentItems(map2); - + LinkedHashMap map = new LinkedHashMap<>(); + map.put("发起人", createUser.getName()); + if (farmMsgDTO.getType().equals(FarmMsgTypeEnum.PROJECT)){ + map.put("内容", farmMsgDTO.getTitle()); + }else if(farmMsgDTO.getType().equals(FarmMsgTypeEnum.TASK)){ + this.taskDetail(farmMsgDTO.getId(), map); + } + message.setContentItems(map); log.info("企业微信小程序通知消息发送内容:{}", message); WxCpMessageSendResult result = wxCpMessageService.send(message); log.info("企业微信小程序通知消息发送结果:{}",result); } + /** + * 发送消息为任务时的内容 + */ + public Map taskDetail(Long taskId, Map map){ + Map assemblyMap = taskService.taskAssemble(Arrays.asList(taskService.getTask(taskId))); + TaskAssemblyDTO dto = assemblyMap.get(taskId) ; + dto.getAreas().forEach(area ->{ + AreaDO sonArea = areaService.getArea(area); + AreaDO parentArea = areaService.getArea(sonArea.getParentId()); + map.put("田区", parentArea.getName()); + map.put("田区代号", sonArea.getName()); + }); + map.put("类型", dto.getTaskName()); + map.put("内容", dto.getTaskMsg()); + return map; + } /** * @Description 获取需要接受信息的成员