From 0ad1c3df8bd932fe448118ac0f0f682fdc1e7853 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Fri, 23 Oct 2020 17:45:28 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=B5=81=E8=BD=AC=E5=92=8C?= =?UTF-8?q?=E7=88=B1=E5=BF=83=E4=BA=92=E5=8A=A9=E6=8A=A5=E5=90=8D=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E9=80=9A=E8=BF=87=E9=A9=B3=E5=9B=9E=E5=8A=A0=E5=8F=91?= =?UTF-8?q?=E9=80=81=E5=BE=AE=E4=BF=A1=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/constant/ActMessageConstant.java | 1 + .../service/impl/WorkActUserServiceImpl.java | 36 ++++++++++++++++++ .../com/epmet/constant/ProjectConstant.java | 4 ++ .../epmet/constant/UserMessageConstant.java | 5 +++ .../impl/ProjectProcessServiceImpl.java | 38 ++++++++++++++++++- 5 files changed, 83 insertions(+), 1 deletion(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/ActMessageConstant.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/ActMessageConstant.java index 9806de9b80..0b76c9d508 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/ActMessageConstant.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/ActMessageConstant.java @@ -8,6 +8,7 @@ package com.epmet.constant; */ public interface ActMessageConstant { String TITLE="您有一条活动消息"; + String WXMP_TITLE="活动消息"; /** * 报名审核成功,给居民端用户发送消息 */ diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActUserServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActUserServiceImpl.java index 879213f11a..a594e0134a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActUserServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActUserServiceImpl.java @@ -19,6 +19,7 @@ import com.epmet.dto.ActUserLogDTO; import com.epmet.dto.ActUserRelationDTO; import com.epmet.dto.HeartUserInfoDTO; import com.epmet.dto.form.UserMessageFormDTO; +import com.epmet.dto.form.WxSubscribeMessageFormDTO; import com.epmet.dto.form.work.AactUserDetailFormDTO; import com.epmet.dto.form.work.ActIdFormDTO; import com.epmet.dto.form.work.AuditUserFormDTO; @@ -464,6 +465,8 @@ public class WorkActUserServiceImpl implements WorkActUserService { actUserLogDao.insert(actUserLogEntity); //给居民发消息 this.saveUserMessage(actUserRelationEntity,ActConstant.ACT_USER_STATUS_PASSED,actInfo); + //给居民发送微信订阅消息 + this.saveWxmpMessage(actUserRelationEntity,ActConstant.ACT_USER_STATUS_PASSED,actInfo); } /** @@ -511,6 +514,8 @@ public class WorkActUserServiceImpl implements WorkActUserService { actUserLogDao.insert(actUserLogEntity); //给居民发消息 this.saveUserMessage(actUserRelationEntity,ActConstant.ACT_USER_STATUS_REFUSED,actInfo); + //给居民发送微信订阅消息 + this.saveWxmpMessage(actUserRelationEntity,ActConstant.ACT_USER_STATUS_REFUSED,actInfo); } /** @@ -645,6 +650,37 @@ public class WorkActUserServiceImpl implements WorkActUserService { } } + /** + * @param actUserRelationEntity type actInfo + * @author sun + * @description 报名审核--给报名申请人发送微信订阅消息 + **/ + private void saveWxmpMessage(ActUserRelationEntity actUserRelationEntity, String type, ActInfoEntity actInfo) { + List list = new ArrayList<>(); + try { + WxSubscribeMessageFormDTO msg = new WxSubscribeMessageFormDTO(); + msg.setCustomerId(actInfo.getCustomerId()); + msg.setClientType(AppClientConstant.APP_RESI); + msg.setUserId(actUserRelationEntity.getUserId()); + msg.setBehaviorType(ActMessageConstant.WXMP_TITLE); + msg.setMessageTime(new Date()); + if (ActConstant.ACT_USER_STATUS_PASSED.equals(type)) { + msg.setMessageContent(String.format(ActMessageConstant.AUDIT_PASSED, actInfo.getTitle())); + } else if (ActConstant.ACT_USER_STATUS_REFUSED.equals(type)) { + msg.setMessageContent(String.format(ActMessageConstant.AUDIT_REFUSED, actInfo.getTitle(), actUserRelationEntity.getFailureReason())); + } + list.add(msg); + Result result = epmetMessageOpenFeignClient.sendWxSubscribeMessage(list); + if (result.success()) { + logger.info("审核成功,已成功发送微信订阅消息"); + } else { + logger.error("审核成功,发送微信订阅消息失败" + JSON.toJSONString(result)); + } + } catch (Exception e) { + logger.error("审核结果,发送微信订阅消息异常", e.getMessage()); + } + } + /** * @return com.epmet.dto.result.work.HistoricalActInfo * @param userId diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java index dd0f37c086..00164708d6 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java @@ -105,6 +105,10 @@ public interface ProjectConstant { * 调用user-message服务失败 */ String SAVE_MSG_EXCEPTION = "发送消息失败"; + /** + * 调用user-message服务失败 + */ + String SAVE_WXMP_MSG_EXCEPTION = "发送微信订阅消息失败"; /** * 查询项目表数据失败 */ diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/UserMessageConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/UserMessageConstant.java index 756a599ac3..e7d23feb76 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/UserMessageConstant.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/UserMessageConstant.java @@ -11,6 +11,11 @@ public interface UserMessageConstant { */ String PROJECT_TITLE = "您有一条项目消息"; + /** + * 微信订阅消息部分标题 + */ + String WXMP_PROJECT_TITLE = "您有一条项目消息"; + /** * 议题转项目、项目流转、项目退回消息模板 */ diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java index 8c8a2dc776..8f739278ee 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java @@ -43,6 +43,7 @@ import com.epmet.dto.result.*; import com.epmet.entity.ProjectEntity; import com.epmet.entity.ProjectProcessEntity; import com.epmet.entity.ProjectStaffEntity; +import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetUserFeignClient; import com.epmet.feign.GovOrgFeignClient; import com.epmet.redis.ProjectProcessRedis; @@ -87,6 +88,8 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl page(Map params) { @@ -280,8 +283,12 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl msgList = new ArrayList<>(); + ProjectEntity projectEntity = projectService.selectById(formDTO.getProjectId()); + if (null == projectEntity) { + throw new RenException(ProjectConstant.SELECT_PROJECT_EXCEPTION); + } + //3:创建项目工作人员消息对象 + //所选人员如果即在部门下又在网格下则只发一条消息 + Map map = new HashMap<>(); + String projectStaffMessage = String.format(UserMessageConstant.PROJECT_RESOLVED_MSG, projectEntity.getTitle()); + formDTO.getStaffList().forEach(staff->{ + if(!map.containsKey(staff.getStaffId())){ + WxSubscribeMessageFormDTO msg = new WxSubscribeMessageFormDTO(); + msg.setCustomerId(projectEntity.getCustomerId()); + msg.setClientType(ProjectConstant.GOV); + msg.setUserId(staff.getStaffId()); + msg.setBehaviorType(UserMessageConstant.WXMP_PROJECT_TITLE); + msg.setMessageContent(projectStaffMessage); + msg.setMessageTime(new Date()); + msgList.add(msg); + map.put(staff.getStaffId(),staff.getStaffId()); + } + }); + return epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); + } /** * @Description 议题处理进展——已转项目