|
|
|
@ -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<String, String> map2 = new HashMap<>(); |
|
|
|
|
map2.put("发起人", createUser.getName()); |
|
|
|
|
map2.put("内容", ObjectUtil.isEmpty(farmMsgDTO.getMsg()) ? farmMsgDTO.getTitle() : farmMsgDTO.getMsg()); |
|
|
|
|
message.setContentItems(map2); |
|
|
|
|
|
|
|
|
|
LinkedHashMap<String, String> 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<String, String> taskDetail(Long taskId, Map<String, String> map){ |
|
|
|
|
Map<Long, TaskAssemblyDTO> 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 获取需要接受信息的成员 |
|
|
|
|