From ed0251beaaf3343fcd14a3520299ad959a14a780 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Mon, 12 Oct 2020 10:17:04 +0800 Subject: [PATCH 01/20] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E6=B6=88=E6=81=AF=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/wxapi/enums/WxMaErrorMsgEnum.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/enums/WxMaErrorMsgEnum.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/enums/WxMaErrorMsgEnum.java index 29e341df7a..1e9425c7ec 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/enums/WxMaErrorMsgEnum.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/enums/WxMaErrorMsgEnum.java @@ -476,6 +476,17 @@ public enum WxMaErrorMsgEnum { CODE_85012(85012, "无效的审核 id"), + CODE_87006(87006, "小游戏不能提交"), + CODE_86007(86007, "小程序禁止提交"), + CODE_85051(85012, "version_desc或者preview_info超限"), + CODE_85092(85092, "preview_info格式错误"), + CODE_85093(85093, "preview_info 视频或者图片个数超限"), + CODE_85094(85094, "需提供审核机制说明信息"), + CODE_86009(86009, "服务商新增小程序代码提审能力被限制"), + CODE_86010(86010, "服务商迭代小程序代码提审能力被限制"), + CODE_9400001(9400001, "该开发小程序已开通小程序直播权限,不支持发布版本。如需发版,请解绑开发小程序后再操作"), + CODE_9402202(9402202, "请勿频繁提交,待上一次操作完成后再提交"), + CODE_87013(87013, "撤回次数达到上限(每天一次,每个月 10 次)"), CODE_85019(85019, "没有审核版本"), @@ -539,6 +550,38 @@ public enum WxMaErrorMsgEnum { CODE_200020(200020, "关键词列表 kidList 参数错误"), CODE_200021(200021, "场景描述 sceneDesc 参数错误"), + + CODE_20002(20002, "商品id不存在"), + CODE_1003(1003, "POST参数非法"), + CODE_40005(40005, "上传素材文件格式不对"), + CODE_40006(40006, "上传素材文件大小超出限制"), + CODE_40008(40008, "不合法的消息类型"), + CODE_40010(40010, "不合法的语音文件大小"), + CODE_40011(40011, "不合法的视频文件大小"), + CODE_40012(40012, "不合法的缩略图文件大小"), + CODE_40015(40015, "不合法的菜单类型"), + CODE_40016(40016, "不合法的按钮个数"), + CODE_40017(40017, "不合法的按钮类型"), + CODE_40018(40018, "不合法的按钮名字长度"), + CODE_40019(40019, "不合法的按钮 KEY 长度"), + CODE_40020(40020, "不合法的按钮 URL 长度"), + CODE_40021(40021, "不合法的菜单版本号"), + CODE_40022(40022, "不合法的子菜单级数"), + CODE_40023(40023, "不合法的子菜单按钮个数"), + CODE_40024(40024, "不合法的子菜单按钮类型"), + CODE_40025(40025, "不合法的子菜单按钮名字长度"), + CODE_40026(40026, "不合法的子菜单按钮 KEY 长度"), + CODE_40027(40027, "不合法的子菜单按钮 URL 长度"), + CODE_40028(40028, "不合法的自定义菜单使用用户"), + CODE_40030(40030, "不合法的 refresh_token"), + CODE_40031(40031, "不合法的 openid 列表"), + CODE_40032(40032, "不合法的 openid 列表长度"), + CODE_40033(40033, "不合法的请求字符,不能包含 \\uxxxx 格式的字符"), + CODE_40034(40034, "无效的模板大小"), + CODE_40035(40035, "不合法的参数"), + CODE_40036(40036, "不合法的 template_id 长度"), + CODE_40038(40038, "不合法的请求格式"), + ; private int code; From 46b71fac7a15039961f324603ffe8e6039b0579a Mon Sep 17 00:00:00 2001 From: liushaowen <565850092@qq.com> Date: Fri, 23 Oct 2020 14:52:14 +0800 Subject: [PATCH 02/20] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=AB=AF=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E5=BB=BA=E7=BB=84=E7=94=B3=E8=AF=B7=E6=97=B6=E5=B0=86?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E7=BB=93=E6=9E=9C=E5=8F=91=E8=B5=B7=E6=8E=A8?= =?UTF-8?q?=E9=80=81=EF=BC=8C=E7=BB=99=E7=94=B3=E8=AF=B7=E5=BB=BA=E5=B0=8F?= =?UTF-8?q?=E7=BB=84=E7=9A=84=E7=94=A8=E6=88=B7=E6=8E=A8=E9=80=81=E4=B8=80?= =?UTF-8?q?=E6=9D=A1=E8=AE=A2=E9=98=85=E6=B6=88=E6=81=AF=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/constant/UserMessageConstant.java | 7 ++++- .../service/impl/ResiGroupServiceImpl.java | 29 +++++++++++++++++++ .../impl/ResiGroupMemberServiceImpl.java | 4 +-- 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java index f9b97bfb9f..c55698acc0 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java @@ -62,6 +62,11 @@ public interface UserMessageConstant { /** * 组长审核入组申请时的微信订阅behavior */ - String WX_APPLY_GROUP_BEHAVIOR = "小组消息"; + String WX_APPLY_JOIN_GROUP_BEHAVIOR = "小组消息"; + + /** + * 建组审核的微信订阅behavior + */ + String WX_APPLY_CREATE_GROUP_BEHAVIOR = "建组审核消息"; } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index dacfd6dbb8..107d96d642 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -21,6 +21,7 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.EpmetRoleKeyConstant; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; @@ -34,6 +35,7 @@ import com.epmet.constant.ReadFlagConstant; import com.epmet.dto.form.*; import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.dto.result.UserRoleResultDTO; +import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.modules.constant.UserMessageConstant; import com.epmet.modules.feign.EpmetMessageFeignClient; import com.epmet.modules.feign.EpmetUserFeignClient; @@ -122,6 +124,9 @@ public class ResiGroupServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -569,6 +574,17 @@ public class ResiGroupServiceImpl extends BaseServiceImpl msgList = new ArrayList<>(); + msgList.add(wxSubscribeMessageFormDTO); + epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); //更新政府端:工作-基层治理-党员认证reddot resiGroupRedis.subtractWorkGrassrootsPartyAuthRedDotValue(resiGroupDTO.getGridId()); return new Result(); @@ -615,6 +631,19 @@ public class ResiGroupServiceImpl extends BaseServiceImpl msgList = new ArrayList<>(); + msgList.add(wxSubscribeMessageFormDTO); + epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); + //更新政府端:工作-基层治理-党员认证reddot resiGroupRedis.subtractWorkGrassrootsPartyAuthRedDotValue(resiGroupDTO.getGridId()); return new Result(); diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java index bd92d6b14a..7bbec871b4 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java @@ -458,7 +458,7 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl msgList = new ArrayList<>(); @@ -534,7 +534,7 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl msgList = new ArrayList<>(); msgList.add(wxSubscribeMessageFormDTO); From 5fb1dadd44f7bd571f9c57daca07a40840e0087b Mon Sep 17 00:00:00 2001 From: liushaowen <565850092@qq.com> Date: Fri, 23 Oct 2020 16:09:00 +0800 Subject: [PATCH 03/20] =?UTF-8?q?=E5=8F=91=E9=80=81=E8=AE=A2=E9=98=85?= =?UTF-8?q?=EF=BC=8C=E8=8E=B7=E5=8F=96templateId=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/dao/WxmpResiUserSubscribeDao.java | 3 +-- .../main/java/com/epmet/dao/WxmpWorkUserSubscribeDao.java | 5 ++--- .../java/com/epmet/service/impl/WxmpMessageServiceImpl.java | 6 +++--- .../src/main/resources/mapper/WxmpResiUserSubscribeDao.xml | 1 - .../src/main/resources/mapper/WxmpWorkUserSubscribeDao.xml | 1 - 5 files changed, 6 insertions(+), 10 deletions(-) diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpResiUserSubscribeDao.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpResiUserSubscribeDao.java index 28080d66e7..2a525fa7c0 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpResiUserSubscribeDao.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpResiUserSubscribeDao.java @@ -67,13 +67,12 @@ public interface WxmpResiUserSubscribeDao extends BaseDao Date: Fri, 23 Oct 2020 17:45:28 +0800 Subject: [PATCH 04/20] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=B5=81=E8=BD=AC?= =?UTF-8?q?=E5=92=8C=E7=88=B1=E5=BF=83=E4=BA=92=E5=8A=A9=E6=8A=A5=E5=90=8D?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E9=80=9A=E8=BF=87=E9=A9=B3=E5=9B=9E=E5=8A=A0?= =?UTF-8?q?=E5=8F=91=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 议题处理进展——已转项目 From a6157ee07ab263c9dd157cf660011e5905512006 Mon Sep 17 00:00:00 2001 From: liushaowen <565850092@qq.com> Date: Fri, 23 Oct 2020 18:33:36 +0800 Subject: [PATCH 05/20] =?UTF-8?q?=E5=8F=91=E9=80=81=E8=AE=A2=E9=98=85bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/constant/WxmpMessageConstant.java | 4 +- .../service/impl/WxmpMessageServiceImpl.java | 430 +++++++++--------- 2 files changed, 225 insertions(+), 209 deletions(-) diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/WxmpMessageConstant.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/WxmpMessageConstant.java index 667a8b3bfc..07350f0695 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/WxmpMessageConstant.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/WxmpMessageConstant.java @@ -22,7 +22,9 @@ public interface WxmpMessageConstant { String RESI = "resi"; - String WORK = "work"; + String GOV_REDIS = "work"; + + String GOV_DB = "gov"; String ACCESS_TOKEN = "access_token"; diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java index 832ef44a33..c7b938a6ff 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java @@ -86,34 +86,34 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { @Autowired private WxmpMsgSendRecordService wxmpMsgSendRecordService; - @Autowired - private WxmpUserSubscribeRecordDao subscribeRecordDao; - - /** - * @Description 保存系统授权信息 - * @return void - * @author wxz - * @date 2020.10.21 17:29 - */ - @Override - public void saveSysAuthorizeInfo(String customerId, String clientType, String alwaysVisit, String subscribeStatus, String userId, String templateId) { - WxmpTemplateMsgSubscribeStatusEntity userSubscribeStatusEntity = msgSubscribeStatusDao.getUserSubscribeStatusEntity(userId, customerId, clientType, templateId); - if (userSubscribeStatusEntity != null) { - userSubscribeStatusEntity.setAlwaysVisit(alwaysVisit); - userSubscribeStatusEntity.setSubscribeStatus(subscribeStatus); - msgSubscribeStatusDao.updateById(userSubscribeStatusEntity); - return; - } - - userSubscribeStatusEntity = new WxmpTemplateMsgSubscribeStatusEntity(); - userSubscribeStatusEntity.setCustomerId(customerId); - userSubscribeStatusEntity.setClientType(clientType); - userSubscribeStatusEntity.setTemplateId(templateId); - userSubscribeStatusEntity.setAlwaysVisit(alwaysVisit); - userSubscribeStatusEntity.setSubscribeStatus(subscribeStatus); - userSubscribeStatusEntity.setUserId(userId); - msgSubscribeStatusDao.insert(userSubscribeStatusEntity); - } + @Autowired + private WxmpUserSubscribeRecordDao subscribeRecordDao; + + /** + * @return void + * @Description 保存系统授权信息 + * @author wxz + * @date 2020.10.21 17:29 + */ + @Override + public void saveSysAuthorizeInfo(String customerId, String clientType, String alwaysVisit, String subscribeStatus, String userId, String templateId) { + WxmpTemplateMsgSubscribeStatusEntity userSubscribeStatusEntity = msgSubscribeStatusDao.getUserSubscribeStatusEntity(userId, customerId, clientType, templateId); + if (userSubscribeStatusEntity != null) { + userSubscribeStatusEntity.setAlwaysVisit(alwaysVisit); + userSubscribeStatusEntity.setSubscribeStatus(subscribeStatus); + msgSubscribeStatusDao.updateById(userSubscribeStatusEntity); + return; + } + + userSubscribeStatusEntity = new WxmpTemplateMsgSubscribeStatusEntity(); + userSubscribeStatusEntity.setCustomerId(customerId); + userSubscribeStatusEntity.setClientType(clientType); + userSubscribeStatusEntity.setTemplateId(templateId); + userSubscribeStatusEntity.setAlwaysVisit(alwaysVisit); + userSubscribeStatusEntity.setSubscribeStatus(subscribeStatus); + userSubscribeStatusEntity.setUserId(userId); + msgSubscribeStatusDao.insert(userSubscribeStatusEntity); + } /** * @param msgList @@ -139,7 +139,7 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { UserBasicInfoFormDTO userBasicInfoFormDTO = new UserBasicInfoFormDTO(); userBasicInfoFormDTO.setUserId(userId); openId = epmetUserOpenFeignClient.getUserBasicInfo(userBasicInfoFormDTO).getData().getOpenId(); - } else if (WxmpMessageConstant.WORK.equals(clientType)) { + } else if (WxmpMessageConstant.GOV_DB.equals(clientType)) { StaffBasicInfoFormDTO staffBasicInfoFormDTO = new StaffBasicInfoFormDTO(); staffBasicInfoFormDTO.setStaffId(userId); openId = epmetUserOpenFeignClient.getStaffBasicInfo(staffBasicInfoFormDTO).getData().getOpenId(); @@ -155,7 +155,14 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { } //获取accessToken - StringBuilder key = new StringBuilder(msg.getCustomerId()).append(":").append(msg.getClientType()); + String clientTypeRedis = null; + if (WxmpMessageConstant.RESI.equals(msg.getClientType())){ + clientTypeRedis = WxmpMessageConstant.RESI; + } + if (WxmpMessageConstant.GOV_DB.equals(msg.getClientType())){ + clientTypeRedis = WxmpMessageConstant.GOV_REDIS; + } + StringBuilder key = new StringBuilder(msg.getCustomerId()).append(":").append(clientTypeRedis); Map authorizerRefreshToken = new HashMap<>(); try { authorizerRefreshToken = wxmpMessageRedis.getAuthorizerRefreshToken(key.toString()); @@ -170,7 +177,7 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { //获取模板id if (WxmpMessageConstant.RESI.equals(clientType)) { templateId = wxmpResiUserSubscribeDao.getResiSubscribeTemplateId(openId, customerId); - } else if (WxmpMessageConstant.WORK.equals(clientType)) { + } else if (WxmpMessageConstant.GOV_DB.equals(clientType)) { templateId = wxmpWorkUserSubscribeDao.getWorkSubscribeTemplateId(openId, customerId); } if (StringUtils.isBlank(templateId)) { @@ -181,7 +188,7 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { Integer count = null; if (WxmpMessageConstant.RESI.equals(clientType)) { count = wxmpResiUserSubscribeDao.getResiSubscribeInfo(openId, templateId, customerId); - } else if (WxmpMessageConstant.WORK.equals(clientType)) { + } else if (WxmpMessageConstant.GOV_DB.equals(clientType)) { count = wxmpWorkUserSubscribeDao.getWorkSubscribeInfo(openId, templateId, customerId); } if (count == null) { @@ -199,15 +206,22 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { jsonObject.put(WxmpMessageConstant.ACCESS_TOKEN, accessToken); jsonObject.put(WxmpMessageConstant.TOUSER, openId); jsonObject.put(WxmpMessageConstant.TEMPLATE_ID, templateId); - data.put(WxmpMessageConstant.TITLE, new JSONObject().put("value", ("您有一条" + msg.getBehaviorType()).substring(0, WxmpMessageConstant.TITLE_LIMIT))); - data.put(WxmpMessageConstant.MESSAGE_CONTENT, new JSONObject().put("value", msg.getMessageContent().substring(0, WxmpMessageConstant.MESSAGE_CONTENT_LIMIT))); - data.put(WxmpMessageConstant.MESSAGE_TIME, new JSONObject().put("value", new SimpleDateFormat("yyyy-MM-dd HH:mm").format(msg.getMessageTime()))); + String title = "您有一条" + msg.getBehaviorType(); + JSONObject titleJson = new JSONObject(); + titleJson.put("value", title.length() > WxmpMessageConstant.TITLE_LIMIT ? title.substring(0, WxmpMessageConstant.TITLE_LIMIT) : title); + data.put(WxmpMessageConstant.TITLE, titleJson); + JSONObject contentJson = new JSONObject(); + contentJson.put("value", msg.getMessageContent().length() > WxmpMessageConstant.MESSAGE_CONTENT_LIMIT ? msg.getMessageContent().substring(0, WxmpMessageConstant.MESSAGE_CONTENT_LIMIT) : msg.getMessageContent()); + data.put(WxmpMessageConstant.MESSAGE_CONTENT, contentJson); + JSONObject timeJson = new JSONObject(); + timeJson.put("value", new SimpleDateFormat("yyyy-MM-dd HH:mm").format(msg.getMessageTime())); + data.put(WxmpMessageConstant.MESSAGE_TIME,timeJson); jsonObject.put(WxmpMessageConstant.DATA, data); EnvEnum envEnum = EnvEnum.getCurrentEnv(); //选填项 if (WxmpMessageConstant.RESI.equals(clientType)) { jsonObject.put(WxmpMessageConstant.PAGE, WxmpMessageConstant.PAGE_RESI); - } else if (WxmpMessageConstant.WORK.equals(clientType)) { + } else if (WxmpMessageConstant.GOV_DB.equals(clientType)) { jsonObject.put(WxmpMessageConstant.PAGE, WxmpMessageConstant.PAGE_WORK); } //开发环境 @@ -229,7 +243,7 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { int decrease = 0; if (WxmpMessageConstant.RESI.equals(clientType)) { decrease = wxmpResiUserSubscribeDao.decreaseResiSubscribeCount(openId, templateId, customerId, 1); - } else if (WxmpMessageConstant.WORK.equals(clientType)) { + } else if (WxmpMessageConstant.GOV_DB.equals(clientType)) { decrease = wxmpWorkUserSubscribeDao.decreaseWorkSubscribeCount(openId, templateId, customerId, 1); } if (decrease == 0) { @@ -247,7 +261,7 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { int clear = 0; if (WxmpMessageConstant.RESI.equals(clientType)) { clear = wxmpResiUserSubscribeDao.clearResiSubscribeCount(openId, templateId, customerId); - } else if (WxmpMessageConstant.WORK.equals(clientType)) { + } else if (WxmpMessageConstant.GOV_DB.equals(clientType)) { clear = wxmpWorkUserSubscribeDao.clearWorkSubscribeCount(openId, templateId, customerId); } if (clear == 0) { @@ -256,7 +270,7 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { } //抛出错误 - throw new WxSubscribeException(String.valueOf(resultMap.get(WxmpMessageConstant.ERR_MSG)),templateId, openId); + throw new WxSubscribeException(String.valueOf(resultMap.get(WxmpMessageConstant.ERR_MSG)), templateId, openId); } succecssCount++; @@ -299,175 +313,175 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { return wxmpMsgSendRecordEntity; } - /** - * @return - * @Description 居民端、工作端-获取客户小程序模板列表 - * @author sun - */ - @Override - public List templateList(GetTemplateListFormDTO formDTO) { - GetTemplateListFormDTO dto = ConvertUtils.sourceToTarget(formDTO, GetTemplateListFormDTO.class); - String url = "https://epmet-cloud.elinkservice.cn/api/third/personaltemplate/templatelist"; - //String url = "http://localhost:8080/api/third/personaltemplate/templatelist"; - String data = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(dto)).getData(); - logger.info("ThirdLoginServiceImpl.getUserWeChat:httpclient->url:"+url+",结果->"+data); - JSONObject toResult = JSON.parseObject(data); - Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class); - if (null != toResult.get("code")) { - mapToResult.setCode(((Integer) toResult.get("code")).intValue()); - } - if (!mapToResult.success()) { - logger.error("调用epmet_third服务获取小程序消息订阅模板数据失败"); - throw new RenException(mapToResult.getCode()); - } - List resultList = (List) mapToResult.getData(); - return resultList; - } - - @Override - public WxMsgAuthInfoResultDTO getAuthorizationInfo(String customerId, String clientType, String loginUserId, String templateId) { - return msgSubscribeStatusDao.getUserSubscribeStatusDTO(loginUserId, customerId, clientType, templateId); - } - - @Override - public void saveWxSubscribe(String customerId, String clientType, String templateId, String wxAlwaysVisit, - String wxSubscribeStatus, String behaviorType, String userId) { - - String openId; - // 1. 用户订阅信息表新增或者更新 - if (AppClientConstant.APP_GOV.equals(clientType)) { - // 工作端 - openId = getWorkOpenId(userId); - saveWxWorkSubscribe(customerId, templateId, wxSubscribeStatus, userId, openId); - } else { - //居民端 - openId = getResiOpenId(userId); - saveWxResiSubscribe(customerId, templateId, wxSubscribeStatus, userId, openId); - } - - // 2.保存行为记录 - WxmpUserSubscribeRecordEntity record = new WxmpUserSubscribeRecordEntity(); - record.setBehaviorType(behaviorType); - record.setCustomerId(customerId); - record.setTemplateId(templateId); - record.setUserId(userId); - record.setWxAlwaysVisit(wxAlwaysVisit); - record.setWxOpenId(openId); - record.setWxSubscribeStatus(wxSubscribeStatus); - subscribeRecordDao.insert(record); - - // 3.更新用户模板订阅状态 - WxmpTemplateMsgSubscribeStatusEntity subscribeStatusEntity = msgSubscribeStatusDao.getUserSubscribeStatusEntity(userId, customerId, clientType, templateId); - if (subscribeStatusEntity == null) { - subscribeStatusEntity = new WxmpTemplateMsgSubscribeStatusEntity(); - subscribeStatusEntity.setUserId(userId); - subscribeStatusEntity.setWxSubscribeStatus(wxSubscribeStatus); - subscribeStatusEntity.setTemplateId(templateId); - subscribeStatusEntity.setWxAlwaysVisit(wxAlwaysVisit); - subscribeStatusEntity.setCustomerId(customerId); - subscribeStatusEntity.setClientType(clientType); - msgSubscribeStatusDao.insert(subscribeStatusEntity); - return; - } - - subscribeStatusEntity.setWxAlwaysVisit(wxAlwaysVisit); - subscribeStatusEntity.setWxSubscribeStatus(wxSubscribeStatus); - - msgSubscribeStatusDao.updateById(subscribeStatusEntity); - } - - /** - * @Description 保存居民端微信订阅信息 - * @return void - * @author wxz - * @date 2020.10.22 09:56 - */ - private void saveWxResiSubscribe(String customerId, String templateId, String wxSubscribeStatus, String userId, String openId) { - - WxmpResiUserSubscribeEntity wxResiSubscribe = wxmpResiUserSubscribeDao.getWxResiSubscribe(userId, customerId, templateId); - if (wxResiSubscribe == null) { - WxmpResiUserSubscribeEntity insert = new WxmpResiUserSubscribeEntity(); - insert.setCount(WxMsgTemplateSubscribeStatus.SUBSCRIBE.equals(wxSubscribeStatus) ? 1 : 0); - insert.setCustomerId(customerId); - insert.setTemplateId(templateId); - insert.setUserId(userId); - insert.setWxOpenId(openId); - insert.setWxSubscribeStatus(wxSubscribeStatus); - return; - } - - if (WxMsgTemplateSubscribeStatus.SUBSCRIBE.equals(wxSubscribeStatus)) { + /** + * @return + * @Description 居民端、工作端-获取客户小程序模板列表 + * @author sun + */ + @Override + public List templateList(GetTemplateListFormDTO formDTO) { + GetTemplateListFormDTO dto = ConvertUtils.sourceToTarget(formDTO, GetTemplateListFormDTO.class); + String url = "https://epmet-cloud.elinkservice.cn/api/third/personaltemplate/templatelist"; + //String url = "http://localhost:8080/api/third/personaltemplate/templatelist"; + String data = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(dto)).getData(); + logger.info("ThirdLoginServiceImpl.getUserWeChat:httpclient->url:" + url + ",结果->" + data); + JSONObject toResult = JSON.parseObject(data); + Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class); + if (null != toResult.get("code")) { + mapToResult.setCode(((Integer) toResult.get("code")).intValue()); + } + if (!mapToResult.success()) { + logger.error("调用epmet_third服务获取小程序消息订阅模板数据失败"); + throw new RenException(mapToResult.getCode()); + } + List resultList = (List) mapToResult.getData(); + return resultList; + } + + @Override + public WxMsgAuthInfoResultDTO getAuthorizationInfo(String customerId, String clientType, String loginUserId, String templateId) { + return msgSubscribeStatusDao.getUserSubscribeStatusDTO(loginUserId, customerId, clientType, templateId); + } + + @Override + public void saveWxSubscribe(String customerId, String clientType, String templateId, String wxAlwaysVisit, + String wxSubscribeStatus, String behaviorType, String userId) { + + String openId; + // 1. 用户订阅信息表新增或者更新 + if (AppClientConstant.APP_GOV.equals(clientType)) { + // 工作端 + openId = getWorkOpenId(userId); + saveWxWorkSubscribe(customerId, templateId, wxSubscribeStatus, userId, openId); + } else { + //居民端 + openId = getResiOpenId(userId); + saveWxResiSubscribe(customerId, templateId, wxSubscribeStatus, userId, openId); + } + + // 2.保存行为记录 + WxmpUserSubscribeRecordEntity record = new WxmpUserSubscribeRecordEntity(); + record.setBehaviorType(behaviorType); + record.setCustomerId(customerId); + record.setTemplateId(templateId); + record.setUserId(userId); + record.setWxAlwaysVisit(wxAlwaysVisit); + record.setWxOpenId(openId); + record.setWxSubscribeStatus(wxSubscribeStatus); + subscribeRecordDao.insert(record); + + // 3.更新用户模板订阅状态 + WxmpTemplateMsgSubscribeStatusEntity subscribeStatusEntity = msgSubscribeStatusDao.getUserSubscribeStatusEntity(userId, customerId, clientType, templateId); + if (subscribeStatusEntity == null) { + subscribeStatusEntity = new WxmpTemplateMsgSubscribeStatusEntity(); + subscribeStatusEntity.setUserId(userId); + subscribeStatusEntity.setWxSubscribeStatus(wxSubscribeStatus); + subscribeStatusEntity.setTemplateId(templateId); + subscribeStatusEntity.setWxAlwaysVisit(wxAlwaysVisit); + subscribeStatusEntity.setCustomerId(customerId); + subscribeStatusEntity.setClientType(clientType); + msgSubscribeStatusDao.insert(subscribeStatusEntity); + return; + } + + subscribeStatusEntity.setWxAlwaysVisit(wxAlwaysVisit); + subscribeStatusEntity.setWxSubscribeStatus(wxSubscribeStatus); + + msgSubscribeStatusDao.updateById(subscribeStatusEntity); + } + + /** + * @return void + * @Description 保存居民端微信订阅信息 + * @author wxz + * @date 2020.10.22 09:56 + */ + private void saveWxResiSubscribe(String customerId, String templateId, String wxSubscribeStatus, String userId, String openId) { + + WxmpResiUserSubscribeEntity wxResiSubscribe = wxmpResiUserSubscribeDao.getWxResiSubscribe(userId, customerId, templateId); + if (wxResiSubscribe == null) { + WxmpResiUserSubscribeEntity insert = new WxmpResiUserSubscribeEntity(); + insert.setCount(WxMsgTemplateSubscribeStatus.SUBSCRIBE.equals(wxSubscribeStatus) ? 1 : 0); + insert.setCustomerId(customerId); + insert.setTemplateId(templateId); + insert.setUserId(userId); + insert.setWxOpenId(openId); + insert.setWxSubscribeStatus(wxSubscribeStatus); + return; + } + + if (WxMsgTemplateSubscribeStatus.SUBSCRIBE.equals(wxSubscribeStatus)) { wxmpResiUserSubscribeDao.incrSubscribeCount(1, userId, customerId, templateId, openId); - } else { + } else { wxmpResiUserSubscribeDao.unSubscribe(userId, customerId, templateId, openId); - } - } - - /** - * @Description 保存工作端订阅信息 - * @return void - * @author wxz - * @date 2020.10.22 14:21 - */ - private void saveWxWorkSubscribe(String customerId, String templateId, String wxSubscribeStatus, String userId, String openId) { - WxmpWorkUserSubscribeEntity wxWorkSubscribe = wxmpWorkUserSubscribeDao.getWxWorkSubscribe(userId, customerId, templateId); - if (wxWorkSubscribe == null) { - WxmpWorkUserSubscribeEntity insert = new WxmpWorkUserSubscribeEntity(); - insert.setCount(WxMsgTemplateSubscribeStatus.SUBSCRIBE.equals(wxSubscribeStatus) ? 1 : 0); - insert.setCustomerId(customerId); - insert.setTemplateId(templateId); - insert.setUserId(userId); - insert.setWxOpenId(openId); - insert.setWxSubscribeStatus(wxSubscribeStatus); - wxmpWorkUserSubscribeDao.insert(insert); - return ; - } - - if (WxMsgTemplateSubscribeStatus.SUBSCRIBE.equals(wxSubscribeStatus)) { - wxmpWorkUserSubscribeDao.incrSubscribeCount(1, userId, customerId, templateId, openId); - } else { - wxmpWorkUserSubscribeDao.unSubscribe(userId, customerId, templateId, openId); - } - - } - - /** - * @Description 根据UserId查询居民OpenId - * @return string - * @author wxz - * @date 2020.10.22 13:35 - */ - public String getResiOpenId(String userId) { - UserBasicInfoFormDTO bif = new UserBasicInfoFormDTO(); - bif.setUserId(userId); - Result result = epmetUserOpenFeignClient.getUserBasicInfo(bif); - if (!result.success()) { - throw new RenException(String.format("查询居民OpenId失败,userId:%s,错误信息:%s",userId , result.getInternalMsg())); - } - UserBasicInfo userBasicInfo = result.getData(); - if (userBasicInfo == null) { - throw new RenException(String.format("根据userId:%s,没有查询到居民OpenId",userId)); - } - return userBasicInfo.getOpenId(); - } - - /** - * @Description 查询工作人员openId - * @return java.lang.String - * @author wxz - * @date 2020.10.22 14:46 - */ - public String getWorkOpenId(String userId) { - StaffBasicInfoFormDTO form = new StaffBasicInfoFormDTO(); - form.setStaffId(userId); - Result result = epmetUserOpenFeignClient.getStaffBasicInfo(form); - if (!result.success()) { - throw new RenException(String.format("查询工作人员OpenId失败,userId:%s,错误信息:%s",userId , result.getInternalMsg())); - } - StaffBasicInfo staffBasicInfo = result.getData(); - if (staffBasicInfo == null) { - throw new RenException(String.format("根据userId:%s,没有查询到工作人员OpenId",userId)); - } - return staffBasicInfo.getOpenId(); - } + } + } + + /** + * @return void + * @Description 保存工作端订阅信息 + * @author wxz + * @date 2020.10.22 14:21 + */ + private void saveWxWorkSubscribe(String customerId, String templateId, String wxSubscribeStatus, String userId, String openId) { + WxmpWorkUserSubscribeEntity wxWorkSubscribe = wxmpWorkUserSubscribeDao.getWxWorkSubscribe(userId, customerId, templateId); + if (wxWorkSubscribe == null) { + WxmpWorkUserSubscribeEntity insert = new WxmpWorkUserSubscribeEntity(); + insert.setCount(WxMsgTemplateSubscribeStatus.SUBSCRIBE.equals(wxSubscribeStatus) ? 1 : 0); + insert.setCustomerId(customerId); + insert.setTemplateId(templateId); + insert.setUserId(userId); + insert.setWxOpenId(openId); + insert.setWxSubscribeStatus(wxSubscribeStatus); + wxmpWorkUserSubscribeDao.insert(insert); + return; + } + + if (WxMsgTemplateSubscribeStatus.SUBSCRIBE.equals(wxSubscribeStatus)) { + wxmpWorkUserSubscribeDao.incrSubscribeCount(1, userId, customerId, templateId, openId); + } else { + wxmpWorkUserSubscribeDao.unSubscribe(userId, customerId, templateId, openId); + } + + } + + /** + * @return string + * @Description 根据UserId查询居民OpenId + * @author wxz + * @date 2020.10.22 13:35 + */ + public String getResiOpenId(String userId) { + UserBasicInfoFormDTO bif = new UserBasicInfoFormDTO(); + bif.setUserId(userId); + Result result = epmetUserOpenFeignClient.getUserBasicInfo(bif); + if (!result.success()) { + throw new RenException(String.format("查询居民OpenId失败,userId:%s,错误信息:%s", userId, result.getInternalMsg())); + } + UserBasicInfo userBasicInfo = result.getData(); + if (userBasicInfo == null) { + throw new RenException(String.format("根据userId:%s,没有查询到居民OpenId", userId)); + } + return userBasicInfo.getOpenId(); + } + + /** + * @return java.lang.String + * @Description 查询工作人员openId + * @author wxz + * @date 2020.10.22 14:46 + */ + public String getWorkOpenId(String userId) { + StaffBasicInfoFormDTO form = new StaffBasicInfoFormDTO(); + form.setStaffId(userId); + Result result = epmetUserOpenFeignClient.getStaffBasicInfo(form); + if (!result.success()) { + throw new RenException(String.format("查询工作人员OpenId失败,userId:%s,错误信息:%s", userId, result.getInternalMsg())); + } + StaffBasicInfo staffBasicInfo = result.getData(); + if (staffBasicInfo == null) { + throw new RenException(String.format("根据userId:%s,没有查询到工作人员OpenId", userId)); + } + return staffBasicInfo.getOpenId(); + } } From 7a0b6ba3cb8ccfc0f08976abfb2c8b3d31bb59fb Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 26 Oct 2020 11:19:17 +0800 Subject: [PATCH 06/20] =?UTF-8?q?=E5=8F=91=E5=B8=83=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E3=80=81=E5=8F=96=E6=B6=88=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8F=91=E9=80=81=E5=BE=AE=E4=BF=A1=E8=AE=A2?= =?UTF-8?q?=E9=98=85=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WorkActServiceImpl.java | 16 ++++++++++++++ .../service/impl/WorkActUserServiceImpl.java | 4 ++-- .../service/impl/ArticleServiceImpl.java | 22 +++++++++++++++++++ .../java/com/epmet/utils/ModuleConstant.java | 4 ++++ 4 files changed, 44 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java index f8cd7eb1d2..28b0ecd054 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java @@ -24,6 +24,7 @@ import com.epmet.constant.ReadFlagConstant; import com.epmet.dao.*; import com.epmet.dto.*; import com.epmet.dto.form.UserMessageFormDTO; +import com.epmet.dto.form.WxSubscribeMessageFormDTO; import com.epmet.dto.form.work.*; import com.epmet.dto.result.ActSponsorResultDTO; import com.epmet.dto.result.work.*; @@ -31,6 +32,7 @@ import com.epmet.entity.*; import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.service.*; +import com.epmet.utils.ModuleConstant; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -680,6 +682,7 @@ public class WorkActServiceImpl implements WorkActService { List userIdList=actUserRelationDao.selectUserIdList(formDTO.getActId(),ActConstant.ACT_USER_STATUS_PASSED); if(null!=userIdList&&userIdList.size()>0){ List userMessageFormDTOS=new ArrayList<>(); + List msgList = new ArrayList<>(); for(String userId:userIdList){ UserMessageFormDTO userMessageFormDTO = new UserMessageFormDTO(); userMessageFormDTO.setCustomerId(actInfoDTO.getCustomerId()); @@ -692,11 +695,24 @@ public class WorkActServiceImpl implements WorkActService { actInfoDTO.getTitle(), formDTO.getCancelReason())); userMessageFormDTOS.add(userMessageFormDTO); + //2020.10.26 添加发送微信订阅消息功能 sun + WxSubscribeMessageFormDTO dto = new WxSubscribeMessageFormDTO(); + dto.setCustomerId(actInfoDTO.getCustomerId()); + dto.setClientType(AppClientConstant.APP_RESI); + dto.setUserId(userId); + dto.setBehaviorType(ActMessageConstant.WXMP_TITLE); + dto.setMessageContent(String.format(ActMessageConstant.ACT_CANCELED, actInfoDTO.getTitle(), formDTO.getCancelReason())); + dto.setMessageTime(new Date()); + msgList.add(dto); } Result sendMessageRes= epmetMessageOpenFeignClient.saveUserMessageList(userMessageFormDTOS); if(sendMessageRes.success()){ logger.info("给审核通过的用户发送消息成功"); } + Result wxmpMsg = epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); + if (wxmpMsg.success()) { + logger.info("给审核通过的用户推送微信订阅消息成功"); + } } } 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 a594e0134a..4fd7a650d6 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 @@ -465,7 +465,7 @@ public class WorkActUserServiceImpl implements WorkActUserService { actUserLogDao.insert(actUserLogEntity); //给居民发消息 this.saveUserMessage(actUserRelationEntity,ActConstant.ACT_USER_STATUS_PASSED,actInfo); - //给居民发送微信订阅消息 + //给居民发送微信订阅消息 sun this.saveWxmpMessage(actUserRelationEntity,ActConstant.ACT_USER_STATUS_PASSED,actInfo); } @@ -514,7 +514,7 @@ public class WorkActUserServiceImpl implements WorkActUserService { actUserLogDao.insert(actUserLogEntity); //给居民发消息 this.saveUserMessage(actUserRelationEntity,ActConstant.ACT_USER_STATUS_REFUSED,actInfo); - //给居民发送微信订阅消息 + //给居民发送微信订阅消息 sun this.saveWxmpMessage(actUserRelationEntity,ActConstant.ACT_USER_STATUS_REFUSED,actInfo); } diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java index 435f35c656..8044266aed 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java @@ -970,6 +970,7 @@ public class ArticleServiceImpl extends BaseServiceImpl msgList = new ArrayList<>(); + WxSubscribeMessageFormDTO formDTO = new WxSubscribeMessageFormDTO(); + formDTO.setCustomerId(customerId); + formDTO.setClientType(AppClientConstant.APP_RESI); + formDTO.setUserId(loginUserUtil.getLoginUserId()); + formDTO.setBehaviorType(String.format(ModuleConstant.WXMP_MSG_TITLE, title)); + formDTO.setMessageContent(content); + formDTO.setMessageTime(new Date()); + msgList.add(formDTO); + return epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); + } @Override public void updateDraftPublishStatus(String draftId, String statusFlag, String titleAuditStatus) { diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/ModuleConstant.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/ModuleConstant.java index 6b3fddb443..8a729acf58 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/ModuleConstant.java +++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/ModuleConstant.java @@ -83,6 +83,10 @@ public interface ModuleConstant { * 文章站内消息标题 */ String MSG_TITLE = "您有一条文章【%s】的消息"; + /** + * 文章微信订阅消息 + */ + String WXMP_MSG_TITLE = "文章【%s】的消息"; /** * 文章未审核通过 消息内容模版 From 0aef57ccab927ea5dfc6c88e52ddd6de5efb23eb Mon Sep 17 00:00:00 2001 From: liushaowen <565850092@qq.com> Date: Mon, 26 Oct 2020 13:32:16 +0800 Subject: [PATCH 07/20] =?UTF-8?q?=E5=8F=91=E9=80=81=E8=AE=A2=E9=98=85?= =?UTF-8?q?=EF=BC=9A1.=E7=83=AD=E5=BF=83=E5=B1=85=E6=B0=91=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=203.=E5=BB=BA=E7=BB=84=E7=94=B3=E8=AF=B7=205.?= =?UTF-8?q?=E5=85=A5=E7=BB=84=E7=94=B3=E8=AF=B7=207.=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E8=BF=9B=E7=BB=84=E5=AE=A1=E6=A0=B8=208.=E7=BB=84=E5=91=98?= =?UTF-8?q?=E7=A6=81=E8=A8=80=209.=E5=85=9A=E5=91=98=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/constant/UserMessageConstant.java | 5 ++++ .../service/impl/ResiGroupServiceImpl.java | 14 +++++++++++ .../impl/ResiGroupMemberServiceImpl.java | 23 +++++++++++++++++++ .../constant/PartyMemberMessageConstant.java | 5 ++++ .../impl/PartyMemberConfirmServiceImpl.java | 15 ++++++++++++ .../impl/ResiWarmheartedApplyServiceImpl.java | 14 +++++++++++ .../epmet/feign/EpmetUserOpenFeignClient.java | 6 ++--- 7 files changed, 79 insertions(+), 3 deletions(-) diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java index c55698acc0..880efbac70 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java @@ -69,4 +69,9 @@ public interface UserMessageConstant { */ String WX_APPLY_CREATE_GROUP_BEHAVIOR = "建组审核消息"; + /** + * 申请建组的微信订阅behavior + */ + String WX_CREATE_GROUP_BEHAVIOR = "建组申请消息"; + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index 107d96d642..b968d9c9be 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -979,7 +979,9 @@ public class ResiGroupServiceImpl extends BaseServiceImpl 0){ List msgList = new ArrayList<>(); + List subscribeList = new ArrayList<>(); for(String to : staffRoles.getData()){ + //站内信 UserMessageFormDTO msgObj = new UserMessageFormDTO(); msgObj.setApp(ModuleConstant.APP_GOV); msgObj.setCustomerId(customerId); @@ -989,6 +991,18 @@ public class ResiGroupServiceImpl extends BaseServiceImpl NumConstant.ZERO){ + epmetMessageOpenFeignClient.sendWxSubscribeMessage(subscribeList); } Result result = epmetMessageFeignClient.saveUserMessageList(msgList); if(result.success()){ diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java index 7bbec871b4..96a13e6aad 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java @@ -271,6 +271,18 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl msgList = new ArrayList<>(); + msgList.add(subscribeDTO); + epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); } catch (Exception e) { logger.error("居民申请入群,给组长发送消息通知异常"); e.printStackTrace(); @@ -626,6 +638,17 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl msgList = new ArrayList<>(); + msgList.add(subscribeMessageFormDTO); + epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); result.setMsg(GroupMemberConstant.SLIENT_SUCCESS); return result; } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberMessageConstant.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberMessageConstant.java index 1971a1ac13..7e22178bec 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberMessageConstant.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberMessageConstant.java @@ -25,4 +25,9 @@ public interface PartyMemberMessageConstant { * 党员申请审核驳回给申请人发送消息:您好,您申请的党员,由于不符合条件的原因,已被驳回。 */ String AUDIT_REJECT_MSG = "您好,您申请的%s党员,由于不符合条件的原因,已被驳回。"; + + /** + * 党员申请behavior + */ + String WX_PARTY_AUTH_BEHAVIOR = "党员申请消息"; } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java index ea761610fc..d4b9f32914 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java @@ -697,9 +697,11 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService //4:遍历找出当前网格的所有网格长并给网格长发消息 List msgList = new ArrayList<>(); + List subscribeList = new ArrayList<>(); staffList.forEach(staff->{ roleList.forEach(role->{ if(staff.getUserId().equals(role.getStaffId())){ + //站内信 UserMessageFormDTO msgDTO = new UserMessageFormDTO(); msgDTO.setCustomerId(formDTO.getCustomerId()); msgDTO.setGridId(formDTO.getGridId()); @@ -709,9 +711,22 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService msgDTO.setMessageContent(message); msgDTO.setReadFlag(ReadFlagConstant.UN_READ); msgList.add(msgDTO); + //微信订阅 + //微信订阅 + WxSubscribeMessageFormDTO subscribeDTO = new WxSubscribeMessageFormDTO(); + subscribeDTO.setClientType(AppClientConstant.APP_GOV); + subscribeDTO.setUserId(staff.getUserId()); + subscribeDTO.setCustomerId(formDTO.getCustomerId()); + subscribeDTO.setBehaviorType(PartyMemberMessageConstant.WX_PARTY_AUTH_BEHAVIOR); + subscribeDTO.setMessageContent(message); + subscribeDTO.setMessageTime(new Date()); + subscribeList.add(subscribeDTO); } }); }); + if (subscribeList.size() > NumConstant.ZERO){ + epmetMessageOpenFeignClient.sendWxSubscribeMessage(subscribeList); + } if (msgList.size() > NumConstant.ZERO) { result = epmetMessageOpenFeignClient.saveUserMessageList(msgList); } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedApplyServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedApplyServiceImpl.java index 901bf4e1cc..35c1b19d26 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedApplyServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedApplyServiceImpl.java @@ -265,9 +265,11 @@ public class ResiWarmheartedApplyServiceImpl extends BaseServiceImpl roleList = resultList.getData(); //3:遍历找出当前网格的所有网格长并给网格长发消息 List msgList = new ArrayList<>(); + List subscribeList = new ArrayList<>(); staffList.forEach(staff->{ roleList.forEach(role->{ if(staff.getUserId().equals(role.getStaffId())){ + //站内信 UserMessageFormDTO msgDTO = new UserMessageFormDTO(); msgDTO.setCustomerId(formDTO.getCustomerId()); msgDTO.setGridId(formDTO.getGridId()); @@ -277,9 +279,21 @@ public class ResiWarmheartedApplyServiceImpl extends BaseServiceImpl NumConstant.ZERO){ + epmetMessageOpenFeignClient.sendWxSubscribeMessage(subscribeList); + } if (msgList.size() > NumConstant.ZERO) { result = epmetMessageFeignClient.saveUserMessageList(msgList); } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 5f7c301ad0..7f751a8632 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -20,8 +20,8 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:09 */ -//@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class, url = "localhost:8087") -@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class) +@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class, url = "localhost:8087") +//@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class) public interface EpmetUserOpenFeignClient { /** @@ -50,7 +50,7 @@ public interface EpmetUserOpenFeignClient { * @date 2020/6/2 16:11 */ @PostMapping("/epmetuser/staffrole/staffroles/{staffId}") - Result> getStaffRoles(@PathVariable String staffId); + Result> getStaffRoles(@PathVariable("staffId") String staffId); /** * @param staffId From f4684a499fc93a336418d93625320e6894f5d2b8 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 26 Oct 2020 14:40:12 +0800 Subject: [PATCH 08/20] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E3=80=81=E8=AE=AE=E9=A2=98=E8=BD=AC=E9=A1=B9=E7=9B=AE=E3=80=81?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=80=80=E5=9B=9E=E3=80=81=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BB=93=E6=A1=88=E6=B7=BB=E5=8A=A0=E5=8F=91=E9=80=81=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E8=AE=A2=E9=98=85=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/constant/UserMessageConstant.java | 1 + .../epmet/service/impl/IssueServiceImpl.java | 70 +++++++++++++++++++ .../service/impl/ProjectServiceImpl.java | 45 +++++++++++- 3 files changed, 115 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/UserMessageConstant.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/UserMessageConstant.java index 5bea3d3a3a..89f709e5a5 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/UserMessageConstant.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/UserMessageConstant.java @@ -10,6 +10,7 @@ public interface UserMessageConstant { * 消息标题 */ String ISSUE_TITLE = "您有一条议题消息"; + String WXMP_ISSUE_TITLE = "议题消息"; /** * 项目跟踪-消息标题 */ diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index f5c690be74..2135341700 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -92,6 +92,8 @@ public class IssueServiceImpl extends BaseServiceImpl imp private IssueVoteStatisticalDao issueVoteStatisticalDao; @Autowired private EpmetUserFeignClient epmetUserFeignClient; + @Autowired + private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; @Value("${openapi.scan.server.url}") private String scanApiUrl; @Value("${openapi.scan.method.textSyncScan}") @@ -434,6 +436,10 @@ public class IssueServiceImpl extends BaseServiceImpl imp if (!saveUserMessageList(topicDTO, messageContent, entity).success()) { throw new RenException(IssueConstant.SAVE_MSG_EXCEPTION); } + //4.4:2020.10.26 添加推送微信订阅消息功能 sun + if (!saveWxmpMessageList(topicDTO, messageContent, entity).success()) { + logger.error("议题关闭,推送微信订阅消息失败!"); + } //5:缓存中网格下表决中的议题总数减1 govIssueRedis.subtractWorkGrassrootsIssueRedDotValue(entity.getGridId()); @@ -468,6 +474,29 @@ public class IssueServiceImpl extends BaseServiceImpl imp } return messageFeignClient.saveUserMessageList(msgList); } + /** + * @Description 关闭议题时给话题创建人和议题发起人推送微信订阅消息 + * @author sun + */ + private Result saveWxmpMessageList(ResiTopicDTO topicDTO, String messageContent, IssueEntity entity) { + List msgList = new ArrayList<>(); + //2:分别给话题创建人、议题发起人发送消息 + WxSubscribeMessageFormDTO msgDTO = new WxSubscribeMessageFormDTO(); + msgDTO.setCustomerId(entity.getCustomerId()); + msgDTO.setClientType(AppClientConstant.APP_RESI); + msgDTO.setUserId(topicDTO.getCreatedBy()); + msgDTO.setBehaviorType(UserMessageConstant.WXMP_ISSUE_TITLE); + msgDTO.setMessageContent(messageContent); + msgDTO.setMessageTime(new Date()); + msgList.add(msgDTO); + //话题人和议题人是同一个人时则只发送一条居民消息 + if (!topicDTO.getCreatedBy().equals(entity.getCreatedBy())) { + WxSubscribeMessageFormDTO msgIssue = ConvertUtils.sourceToTarget(msgDTO,WxSubscribeMessageFormDTO.class); + msgIssue.setUserId(entity.getCreatedBy()); + msgList.add(msgIssue); + } + return epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); + } /** * @param formDTO @@ -637,6 +666,47 @@ public class IssueServiceImpl extends BaseServiceImpl imp }); return messageFeignClient.saveUserMessageList(msgList); } + /** + * @Description 议题转项目时给话题创建人、议题发起人、勾选的工作人员分别推送微信订阅消息 + * @author sun + */ + private Result WxmpShiftProjectMessage(IssueProjectResultDTO issueProjectResultDTO, ShiftProjectFormDTO formDTO, IssueEntity entity) { + List msgList = new ArrayList<>(); + //1:创建话题发起人、议题发表人消息对象 + WxSubscribeMessageFormDTO msgDTO = new WxSubscribeMessageFormDTO(); + msgDTO.setCustomerId(entity.getCustomerId()); + msgDTO.setClientType(AppClientConstant.APP_RESI); + msgDTO.setUserId(formDTO.getTopicDTO().getCreatedBy()); + msgDTO.setBehaviorType(UserMessageConstant.WXMP_ISSUE_TITLE); + String topicIssueMessage = String.format(UserMessageConstant.ISSUE_SHIFT_PROJECT_MSG, formDTO.getTopicDTO().getTopicContent(), issueProjectResultDTO.getOrgName()); + msgDTO.setMessageContent(topicIssueMessage); + msgDTO.setMessageTime(new Date()); + msgList.add(msgDTO); + //话题人和议题人是同一个人时则只发送一条居民消息 + if (!formDTO.getTopicDTO().getCreatedBy().equals(entity.getCreatedBy())) { + WxSubscribeMessageFormDTO msgIssue = ConvertUtils.sourceToTarget(msgDTO, WxSubscribeMessageFormDTO.class); + msgIssue.setUserId(entity.getCreatedBy()); + msgList.add(msgIssue); + } + //2:创建项目工作人员消息对象 + String projectStaffMessage = String.format(UserMessageConstant.PROJECT_RESOLVED_MSG, entity.getIssueTitle()); + //所选人员如果即在部门下又在网格下则只发一条消息 + Map map = new HashMap<>(); + formDTO.getStaffList().forEach(staff->{ + if(!map.containsKey(staff.getStaffId())){ + WxSubscribeMessageFormDTO msg = new WxSubscribeMessageFormDTO(); + msg.setCustomerId(entity.getCustomerId()); + msg.setClientType(AppClientConstant.APP_GOV); + msg.setUserId(staff.getStaffId()); + msg.setBehaviorType(UserMessageConstant.WXMP_ISSUE_TITLE); + msg.setMessageContent(projectStaffMessage); + msg.setMessageTime(new Date()); + msgList.add(msg); + map.put(staff.getStaffId(),staff.getStaffId()); + } + }); + return epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); + } /** * @Description diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 38f5ac64a7..07c346b1c8 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -17,6 +17,7 @@ package com.epmet.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -48,6 +49,8 @@ import com.epmet.feign.*; import com.epmet.redis.ProjectRedis; import com.epmet.service.*; import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -65,7 +68,7 @@ import java.util.stream.Collectors; */ @Service public class ProjectServiceImpl extends BaseServiceImpl implements ProjectService { - + private Logger logger = LogManager.getLogger(ProjectServiceImpl.class); @Autowired private ProjectRedis projectRedis; @Autowired @@ -86,6 +89,8 @@ public class ProjectServiceImpl extends BaseServiceImpl msgList = new ArrayList<>(); + //2020.10.26 添加项目结案发送微信订阅消息操作 sun + List wxmpMsgList = new ArrayList<>(); //通知项目相关人员 List personnelList = projectRelatedPersonnelService.getPersonnelListByProjectId(fromDTO.getProjectId()); personnelList.forEach(p -> { @@ -394,6 +401,14 @@ public class ProjectServiceImpl extends BaseServiceImpl staffList = projectStaffService.getStaffsByProjectId(fromDTO.getProjectId()); @@ -408,8 +423,21 @@ public class ProjectServiceImpl extends BaseServiceImpl wxmpMsgList = new ArrayList<>(); + WxSubscribeMessageFormDTO msg = new WxSubscribeMessageFormDTO(); + msg.setCustomerId(projectEntity.getCustomerId()); + msg.setClientType(AppClientConstant.APP_GOV); + msg.setUserId(projectStaffDTO.getStaffId()); + msg.setBehaviorType("项目消息"); + msg.setMessageContent(String.format(UserMessageConstant.PROJECT_RESOLVED_MSG, projectEntity.getTitle())); + msg.setMessageTime(new Date()); + wxmpMsgList.add(msg); + //发送微信订阅消息 sun + Result result = epmetMessageOpenFeignClient.sendWxSubscribeMessage(wxmpMsgList); + if (!result.success()) { + logger.error("项目退回成功,发送微信订阅消息失败" + JSON.toJSONString(result)); + } } @Override From 07d737d1541692c839665fa9aea154fc64a07528 Mon Sep 17 00:00:00 2001 From: liushaowen <565850092@qq.com> Date: Mon, 26 Oct 2020 14:54:45 +0800 Subject: [PATCH 09/20] revert --- .../main/java/com/epmet/feign/EpmetUserOpenFeignClient.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index 7f751a8632..5f7c301ad0 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -20,8 +20,8 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:09 */ -@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class, url = "localhost:8087") -//@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class) +//@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class, url = "localhost:8087") +@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class) public interface EpmetUserOpenFeignClient { /** @@ -50,7 +50,7 @@ public interface EpmetUserOpenFeignClient { * @date 2020/6/2 16:11 */ @PostMapping("/epmetuser/staffrole/staffroles/{staffId}") - Result> getStaffRoles(@PathVariable("staffId") String staffId); + Result> getStaffRoles(@PathVariable String staffId); /** * @param staffId From 40ef8fd6b41527698b78dbd1900239c3aac7641b Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 26 Oct 2020 15:07:16 +0800 Subject: [PATCH 10/20] =?UTF-8?q?=E6=BC=8F=E6=8F=90=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/service/impl/IssueServiceImpl.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index 2135341700..14f5a85331 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -612,6 +612,10 @@ public class IssueServiceImpl extends BaseServiceImpl imp if (!shiftProjectMessage(issueProjectResultDTO, formDTO, entity).success()) { throw new RenException(IssueConstant.SAVE_MSG_EXCEPTION); } + //5-1:2020.10.26 添加推送微信订阅消息功能 sun + if (!wxmpShiftProjectMessage(issueProjectResultDTO, formDTO, entity).success()) { + logger.error("议题转项目,推送微信订阅消息失败!"); + } //6:缓存中网格下表决中的议题总数减1 govIssueRedis.subtractWorkGrassrootsIssueRedDotValue(entity.getGridId()); @@ -670,7 +674,7 @@ public class IssueServiceImpl extends BaseServiceImpl imp * @Description 议题转项目时给话题创建人、议题发起人、勾选的工作人员分别推送微信订阅消息 * @author sun */ - private Result WxmpShiftProjectMessage(IssueProjectResultDTO issueProjectResultDTO, ShiftProjectFormDTO formDTO, IssueEntity entity) { + private Result wxmpShiftProjectMessage(IssueProjectResultDTO issueProjectResultDTO, ShiftProjectFormDTO formDTO, IssueEntity entity) { List msgList = new ArrayList<>(); //1:创建话题发起人、议题发表人消息对象 WxSubscribeMessageFormDTO msgDTO = new WxSubscribeMessageFormDTO(); From a2680974d8db78fdc2f297aa2e85252ac17468e2 Mon Sep 17 00:00:00 2001 From: wxz Date: Mon, 26 Oct 2020 15:07:53 +0800 Subject: [PATCH 11/20] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E6=B1=A0=E9=85=8D=E7=BD=AE=20=E5=B0=86=E5=8F=91=E9=80=81?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E9=80=BB=E8=BE=91=E6=94=B9=E9=80=A0=E6=88=90?= =?UTF-8?q?=E5=BC=82=E6=AD=A5=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-message-server/pom.xml | 24 +++++++++ .../java/com/epmet/config/AsyncConfig.java | 49 +++++++++++++++++++ .../controller/WxmpMessageController.java | 8 ++- .../epmet/properties/ThreadProperties.java | 25 ++++++++++ .../src/main/resources/bootstrap.yml | 10 +++- 5 files changed, 114 insertions(+), 2 deletions(-) create mode 100644 epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/config/AsyncConfig.java create mode 100644 epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/properties/ThreadProperties.java diff --git a/epmet-module/epmet-message/epmet-message-server/pom.xml b/epmet-module/epmet-message/epmet-message-server/pom.xml index 6a8d05d9de..a83a612911 100644 --- a/epmet-module/epmet-message/epmet-message-server/pom.xml +++ b/epmet-module/epmet-message/epmet-message-server/pom.xml @@ -165,6 +165,12 @@ false + + + 5 + 8 + 10 + 30 @@ -197,6 +203,12 @@ false + + + 5 + 8 + 10 + 30 @@ -229,6 +241,12 @@ true + + + 5 + 8 + 10 + 30 @@ -258,6 +276,12 @@ true + + + 5 + 8 + 10 + 30 diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/config/AsyncConfig.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/config/AsyncConfig.java new file mode 100644 index 0000000000..95c0b0c55a --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/config/AsyncConfig.java @@ -0,0 +1,49 @@ +package com.epmet.config; + +import com.epmet.properties.ThreadProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.ThreadPoolExecutor; + +/** + * 线程池配置类 + */ +@Configuration +@EnableConfigurationProperties(ThreadProperties.class) +@EnableAsync +public class AsyncConfig { + + @Autowired + private ThreadProperties threadProperties; + + @Bean + public Executor executor() { + ThreadProperties.ThreadPoolProperties threadPoolProps = threadProperties.getThreadPool(); + + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + executor.setCorePoolSize(threadPoolProps.getCorePoolSize()); + executor.setMaxPoolSize(threadPoolProps.getMaxPoolSize()); + executor.setQueueCapacity(threadPoolProps.getQueueCapacity()); + executor.setThreadNamePrefix("epmet-message-"); + // rejection-policy:当pool已经达到max size的时候,如何处理新任务 + // CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行 + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); //对拒绝task的处理策略 + executor.setKeepAliveSeconds(threadPoolProps.getKeepAlive()); + executor.initialize(); + return executor; + } + + @Bean + public ExecutorService executorService() { + ThreadPoolTaskExecutor executor = (ThreadPoolTaskExecutor) executor(); + return executor.getThreadPoolExecutor(); + } + +} diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageController.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageController.java index 15e8e81d0e..b4c6791ef7 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageController.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageController.java @@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.concurrent.ExecutorService; /** @@ -48,6 +49,9 @@ public class WxmpMessageController { @Autowired private LoginUserUtil loginUserUtil; + @Autowired + private ExecutorService executorService; + /** * @Description 保存系统自身的弹框授权信息 * @return com.epmet.commons.tools.utils.Result @@ -74,7 +78,9 @@ public class WxmpMessageController { for (WxSubscribeMessageFormDTO wxSubscribeMessageFormDTO : msgList) { ValidatorUtils.validateEntity(wxSubscribeMessageFormDTO); } - wxmpMessageService.sendWxSubscribeMessage(msgList); + executorService.execute(() -> { + wxmpMessageService.sendWxSubscribeMessage(msgList); + }); return new Result(); } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/properties/ThreadProperties.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/properties/ThreadProperties.java new file mode 100644 index 0000000000..aaec7cb719 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/properties/ThreadProperties.java @@ -0,0 +1,25 @@ +package com.epmet.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * 线程池属性类 + */ +@ConfigurationProperties(prefix = "thread") +@Data +public class ThreadProperties { + + private ThreadPoolProperties threadPool; + + @Data + public static class ThreadPoolProperties { + private int corePoolSize; + private int maxPoolSize; + private int queueCapacity; + private int keepAlive; + + public ThreadPoolProperties() { + } + } +} diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml index 0f9afbef03..0ccb3c1213 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml @@ -118,4 +118,12 @@ ribbon: #pageHelper分页插件 pagehelper: helper-dialect: mysql - reasonable: false #分页合理化配置,例如输入页码为-1,则自动转化为最小页码1 \ No newline at end of file + reasonable: false #分页合理化配置,例如输入页码为-1,则自动转化为最小页码1 + +thread: + # 线程池配置 + threadPool: + corePoolSize: @thread.pool.core-pool-size@ + maxPoolSize: @thread.pool.max-pool-size@ + queueCapacity: @thread.pool.queue-capacity@ + keepAlive: @thread.pool.keep-alive@ \ No newline at end of file From f060b2656a7b83b669836171df81044e544da69e Mon Sep 17 00:00:00 2001 From: wxz Date: Mon, 26 Oct 2020 15:18:45 +0800 Subject: [PATCH 12/20] =?UTF-8?q?=E5=8F=91=E9=80=81=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E8=AE=A2=E9=98=85=E6=B6=88=E6=81=AF=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0try-catch=E5=92=8C=E8=AE=A1=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/controller/WxmpMessageController.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageController.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageController.java index b4c6791ef7..030d2a634d 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageController.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageController.java @@ -17,6 +17,7 @@ package com.epmet.controller; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -26,6 +27,8 @@ import com.epmet.dto.form.WxSubscribeMessageFormDTO; import com.epmet.dto.result.GetTemplateListResultDTO; import com.epmet.dto.result.WxMsgAuthInfoResultDTO; import com.epmet.service.WxmpMessageService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -43,6 +46,8 @@ import java.util.concurrent.ExecutorService; @RequestMapping("wxmpmessage") public class WxmpMessageController { + private Logger logger = LoggerFactory.getLogger(getClass()); + @Autowired private WxmpMessageService wxmpMessageService; @@ -79,7 +84,14 @@ public class WxmpMessageController { ValidatorUtils.validateEntity(wxSubscribeMessageFormDTO); } executorService.execute(() -> { - wxmpMessageService.sendWxSubscribeMessage(msgList); + try { + long startTs = System.currentTimeMillis(); + wxmpMessageService.sendWxSubscribeMessage(msgList); + long endTs = System.currentTimeMillis(); + logger.info("异步发送消息成功,执行时长:{}", endTs - startTs); + } catch (Exception e) { + logger.error("异步发送消息失败,错误信息:{}", ExceptionUtils.getErrorStackTrace(e)); + } }); return new Result(); } From 64463005c0cc965d6fe85235934993f5da0d12b5 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Mon, 26 Oct 2020 16:39:51 +0800 Subject: [PATCH 13/20] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=BB=93=E6=A1=88?= =?UTF-8?q?=E4=B9=9F=E8=A6=81=E7=BB=99=E8=BD=AC=E9=A1=B9=E7=9B=AE=E4=BA=BA?= =?UTF-8?q?=E5=8F=91=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/service/impl/ProjectServiceImpl.java | 4 ++-- .../src/main/resources/mapper/ProjectStaffDao.xml | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 07c346b1c8..e2d8270046 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -403,7 +403,7 @@ public class ProjectServiceImpl extends BaseServiceImpl + + \ No newline at end of file From b887184649c74b5a3e70f7ec34767d73aca161c4 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 27 Oct 2020 11:14:36 +0800 Subject: [PATCH 15/20] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=A8=A1=E6=9D=BF=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxmpMessageServiceImpl.java | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java index c7b938a6ff..279c392d83 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java @@ -32,14 +32,8 @@ import com.epmet.dao.WxmpResiUserSubscribeDao; import com.epmet.dao.WxmpTemplateMsgSubscribeStatusDao; import com.epmet.dao.WxmpUserSubscribeRecordDao; import com.epmet.dao.WxmpWorkUserSubscribeDao; -import com.epmet.dto.form.GetTemplateListFormDTO; -import com.epmet.dto.form.StaffBasicInfoFormDTO; -import com.epmet.dto.form.UserBasicInfoFormDTO; -import com.epmet.dto.form.WxSubscribeMessageFormDTO; -import com.epmet.dto.result.GetTemplateListResultDTO; -import com.epmet.dto.result.StaffBasicInfo; -import com.epmet.dto.result.UserBasicInfo; -import com.epmet.dto.result.WxMsgAuthInfoResultDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.result.*; import com.epmet.entity.*; import com.epmet.exception.WxSubscribeException; import com.epmet.feign.EpmetUserOpenFeignClient; @@ -337,6 +331,27 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { List resultList = (List) mapToResult.getData(); return resultList; } + /** + * @return + * @Description 查询客户两个端小程序对应的站内信模板Id + * @author sun + */ + private List customerTemplateList(CustomerTemplateListFormDTO formDTO) { + String url = "https://epmet-cloud.elinkservice.cn/api/third/personaltemplate/templatelist"; + String data = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(formDTO)).getData(); + logger.info("ThirdLoginServiceImpl.customerTemplateList:httpclient->url:" + url + ",结果->" + data); + JSONObject toResult = JSON.parseObject(data); + Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class); + if (null != toResult.get("code")) { + mapToResult.setCode(((Integer) toResult.get("code")).intValue()); + } + if (!mapToResult.success()) { + logger.error("调用epmet_third服务获取客户小程序消息订阅模板数据失败"); + throw new RenException(mapToResult.getCode()); + } + List resultList = (List) mapToResult.getData(); + return resultList; + } @Override public WxMsgAuthInfoResultDTO getAuthorizationInfo(String customerId, String clientType, String loginUserId, String templateId) { From 4421c0ba755bd4459885630c2f13c6f3135dd4da Mon Sep 17 00:00:00 2001 From: liushaowen <565850092@qq.com> Date: Tue, 27 Oct 2020 13:29:11 +0800 Subject: [PATCH 16/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0gridId=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java index 84ec028cc5..c9f8b1e4a6 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java @@ -54,4 +54,9 @@ public class WxSubscribeMessageFormDTO implements Serializable { @NotNull(message = "消息时间不能为空") private Date messageTime; + /** + * 网格id-居民端用 + */ + private String gridId; + } From 765f1c704621bf7a11902a10c1a0a8cac87aa40f Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 27 Oct 2020 14:10:18 +0800 Subject: [PATCH 17/20] =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=8F=91=E9=80=81?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E8=A1=A8=E6=B7=BB=E5=8A=A0=E7=BD=91=E6=A0=BC?= =?UTF-8?q?ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/WxmpMsgSendRecordDTO.java | 4 ++++ .../main/java/com/epmet/entity/WxmpMsgSendRecordEntity.java | 5 +++++ .../main/java/com/epmet/excel/WxmpMsgSendRecordExcel.java | 3 +++ 3 files changed, 12 insertions(+) diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpMsgSendRecordDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpMsgSendRecordDTO.java index 99149fde28..745708b221 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpMsgSendRecordDTO.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpMsgSendRecordDTO.java @@ -42,6 +42,10 @@ public class WxmpMsgSendRecordDTO implements Serializable { * 客户Id 客户Id */ private String customerId; + /** + * 网格Id(居民端跟网格有关的则有值,工作端以及一些居民端和网格没关的存*) + */ + private String gridId; /** * 所属端类型 居民端:resi 工作端:work diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpMsgSendRecordEntity.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpMsgSendRecordEntity.java index 89e1837475..cd303c4e6f 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpMsgSendRecordEntity.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpMsgSendRecordEntity.java @@ -43,6 +43,11 @@ public class WxmpMsgSendRecordEntity extends BaseEpmetEntity { */ private String customerId; + /** + * 网格Id(居民端跟网格有关的则有值,工作端以及一些居民端和网格没关的存*) + */ + private String gridId; + /** * 所属端类型 居民端:resi 工作端:work */ diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpMsgSendRecordExcel.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpMsgSendRecordExcel.java index a0d474ba82..d458acb436 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpMsgSendRecordExcel.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpMsgSendRecordExcel.java @@ -37,6 +37,9 @@ public class WxmpMsgSendRecordExcel { @Excel(name = "客户Id 客户Id") private String customerId; + @Excel(name = "网格Id") + private String gridId; + @Excel(name = "所属端类型 居民端:resi 工作端:work") private String clientType; From 7eed6939730a2f44e46329d01fc2ab7c8a4cba2c Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 27 Oct 2020 14:23:14 +0800 Subject: [PATCH 18/20] =?UTF-8?q?=E8=AE=A2=E9=98=85=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=8F=91=E9=80=81=E6=B7=BB=E5=8A=A0gridId=E5=85=A5=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/constant/ActMessageConstant.java | 2 +- .../java/com/epmet/service/impl/WorkActServiceImpl.java | 1 + .../com/epmet/service/impl/WorkActUserServiceImpl.java | 1 + .../main/java/com/epmet/constant/UserMessageConstant.java | 8 ++++---- .../java/com/epmet/service/impl/IssueServiceImpl.java | 5 ++++- .../main/java/com/epmet/constant/UserMessageConstant.java | 4 ++-- .../com/epmet/service/impl/ProjectProcessServiceImpl.java | 1 + .../java/com/epmet/service/impl/ProjectServiceImpl.java | 3 +++ .../java/com/epmet/service/impl/ArticleServiceImpl.java | 1 + .../src/main/java/com/epmet/utils/ModuleConstant.java | 4 ++-- 10 files changed, 20 insertions(+), 10 deletions(-) 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 0b76c9d508..3d7a57cce9 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 @@ -30,5 +30,5 @@ public interface ActMessageConstant { /** * 工作端-重新发布活动,通知待审核+已经审核通过的用户 */ - String RE_PUBLISH_ACT="您好,您参与的%s活动,%s,请注意查看"; + String RE_PUBLISH_ACT="您参与的%s活动,%s,请注意查看"; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java index 28b0ecd054..68915220c9 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java @@ -703,6 +703,7 @@ public class WorkActServiceImpl implements WorkActService { dto.setBehaviorType(ActMessageConstant.WXMP_TITLE); dto.setMessageContent(String.format(ActMessageConstant.ACT_CANCELED, actInfoDTO.getTitle(), formDTO.getCancelReason())); dto.setMessageTime(new Date()); + dto.setGridId("*"); msgList.add(dto); } Result sendMessageRes= epmetMessageOpenFeignClient.saveUserMessageList(userMessageFormDTOS); 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 4fd7a650d6..9e58336c61 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 @@ -664,6 +664,7 @@ public class WorkActUserServiceImpl implements WorkActUserService { msg.setUserId(actUserRelationEntity.getUserId()); msg.setBehaviorType(ActMessageConstant.WXMP_TITLE); msg.setMessageTime(new Date()); + msg.setGridId("*"); 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)) { diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/UserMessageConstant.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/UserMessageConstant.java index 89f709e5a5..2a0cf7b35f 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/UserMessageConstant.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/UserMessageConstant.java @@ -19,21 +19,21 @@ public interface UserMessageConstant { /** * 议题关闭时,选择已解决 */ - String ISSUE_RESOLVED_MSG = "您好,您发表的话题\"%s\"问题已解决,解决方案是:%s"; + String ISSUE_RESOLVED_MSG = "您发表的话题\"%s\"问题已解决,解决方案是:%s"; /** * 议题关闭时,选择无需解决 */ - String ISSUE_UNRESOLVED_MSG = "您好,您发表的话题\"%s\"问题无需解决,原因:%s"; + String ISSUE_UNRESOLVED_MSG = "您发表的话题\"%s\"问题无需解决,原因:%s"; /** * 议题转项目消息模板 */ - String ISSUE_SHIFT_PROJECT_MSG = "您好,您发表的话题\"%s\"的问题,已由%s部门处理,请查看。"; + String ISSUE_SHIFT_PROJECT_MSG = "您发表的话题\"%s\"的问题,已由%s部门处理,请查看。"; /** * 议题转项目消息模板 */ - String PROJECT_RESOLVED_MSG = "您好。您收到一条【%s】的新信息,请您尽快处理。"; + String PROJECT_RESOLVED_MSG = "您收到一条【%s】的新信息,请您尽快处理。"; } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index 14f5a85331..ba08dc7952 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -488,6 +488,7 @@ public class IssueServiceImpl extends BaseServiceImpl imp msgDTO.setBehaviorType(UserMessageConstant.WXMP_ISSUE_TITLE); msgDTO.setMessageContent(messageContent); msgDTO.setMessageTime(new Date()); + msgDTO.setGridId(entity.getGridId()); msgList.add(msgDTO); //话题人和议题人是同一个人时则只发送一条居民消息 if (!topicDTO.getCreatedBy().equals(entity.getCreatedBy())) { @@ -612,7 +613,7 @@ public class IssueServiceImpl extends BaseServiceImpl imp if (!shiftProjectMessage(issueProjectResultDTO, formDTO, entity).success()) { throw new RenException(IssueConstant.SAVE_MSG_EXCEPTION); } - //5-1:2020.10.26 添加推送微信订阅消息功能 sun + //5-1:2020.10.26 添加给居民端话题创建人、议题发起人以及政府端工作人员推送微信订阅消息功能 sun if (!wxmpShiftProjectMessage(issueProjectResultDTO, formDTO, entity).success()) { logger.error("议题转项目,推送微信订阅消息失败!"); } @@ -685,6 +686,7 @@ public class IssueServiceImpl extends BaseServiceImpl imp String topicIssueMessage = String.format(UserMessageConstant.ISSUE_SHIFT_PROJECT_MSG, formDTO.getTopicDTO().getTopicContent(), issueProjectResultDTO.getOrgName()); msgDTO.setMessageContent(topicIssueMessage); msgDTO.setMessageTime(new Date()); + msgDTO.setGridId(entity.getGridId()); msgList.add(msgDTO); //话题人和议题人是同一个人时则只发送一条居民消息 if (!formDTO.getTopicDTO().getCreatedBy().equals(entity.getCreatedBy())) { @@ -705,6 +707,7 @@ public class IssueServiceImpl extends BaseServiceImpl imp msg.setBehaviorType(UserMessageConstant.WXMP_ISSUE_TITLE); msg.setMessageContent(projectStaffMessage); msg.setMessageTime(new Date()); + msg.setGridId("*"); msgList.add(msg); map.put(staff.getStaffId(),staff.getStaffId()); } 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 e7d23feb76..0d712e4daa 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 @@ -19,11 +19,11 @@ public interface UserMessageConstant { /** * 议题转项目、项目流转、项目退回消息模板 */ - String PROJECT_RESOLVED_MSG = "您好。您收到一条【%s】的新信息,请您尽快处理。"; + String PROJECT_RESOLVED_MSG = "您收到一条【%s】的新信息,请您尽快处理。"; /** * 项目结案消息模板 */ - String PROJECT_CLOSED_MSG = "您好,您参与的【%s】项目已结案,原因:%s"; + String PROJECT_CLOSED_MSG = "您参与的【%s】项目已结案,原因:%s"; } 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 ad819bbe65..5d73eb379a 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 @@ -351,6 +351,7 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl Date: Tue, 27 Oct 2020 14:38:35 +0800 Subject: [PATCH 19/20] =?UTF-8?q?=E6=B6=88=E6=81=AF=E8=AE=A2=E9=98=85?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0gridId=EF=BC=8C=E6=B7=BB=E5=8A=A0=E8=B7=B3?= =?UTF-8?q?=E8=BD=ACpage=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/constant/WxmpMessageConstant.java | 8 ++-- .../service/impl/WxmpMessageServiceImpl.java | 45 ++++++++++++++----- .../resources/mapper/WxmpMsgSendRecordDao.xml | 2 + .../service/impl/ResiGroupServiceImpl.java | 3 ++ .../impl/ResiGroupMemberServiceImpl.java | 4 ++ .../impl/PartyMemberConfirmServiceImpl.java | 3 +- .../impl/ResiWarmheartedApplyServiceImpl.java | 2 + 7 files changed, 51 insertions(+), 16 deletions(-) diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/WxmpMessageConstant.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/WxmpMessageConstant.java index 07350f0695..9fdcf435af 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/WxmpMessageConstant.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/WxmpMessageConstant.java @@ -32,8 +32,12 @@ public interface WxmpMessageConstant { String TEMPLATE_ID = "template_id"; + String TEMPLATE_TYPE = "1832"; + String PAGE = "page"; + String PAGE_URL = "/subpages/mine/pages/message/skip"; + String TITLE = "title"; int TITLE_LIMIT = 20; @@ -52,10 +56,6 @@ public interface WxmpMessageConstant { String ERROR = "error"; - String PAGE_RESI = ""; - - String PAGE_WORK = ""; - String STATE_DEV = "developer"; String STATE_TEST = "trial"; diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java index 279c392d83..384b446e21 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java @@ -150,10 +150,10 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { //获取accessToken String clientTypeRedis = null; - if (WxmpMessageConstant.RESI.equals(msg.getClientType())){ + if (WxmpMessageConstant.RESI.equals(msg.getClientType())) { clientTypeRedis = WxmpMessageConstant.RESI; } - if (WxmpMessageConstant.GOV_DB.equals(msg.getClientType())){ + if (WxmpMessageConstant.GOV_DB.equals(msg.getClientType())) { clientTypeRedis = WxmpMessageConstant.GOV_REDIS; } StringBuilder key = new StringBuilder(msg.getCustomerId()).append(":").append(clientTypeRedis); @@ -169,15 +169,30 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { } //获取模板id - if (WxmpMessageConstant.RESI.equals(clientType)) { - templateId = wxmpResiUserSubscribeDao.getResiSubscribeTemplateId(openId, customerId); - } else if (WxmpMessageConstant.GOV_DB.equals(clientType)) { - templateId = wxmpWorkUserSubscribeDao.getWorkSubscribeTemplateId(openId, customerId); +// if (WxmpMessageConstant.RESI.equals(clientType)) { +// templateId = wxmpResiUserSubscribeDao.getResiSubscribeTemplateId(openId, customerId); +// } else if (WxmpMessageConstant.GOV_DB.equals(clientType)) { +// templateId = wxmpWorkUserSubscribeDao.getWorkSubscribeTemplateId(openId, customerId); +// } + CustomerTemplateListFormDTO customerTemplateListFormDTO = new CustomerTemplateListFormDTO(); + customerTemplateListFormDTO.setCustomerId(customerId); + customerTemplateListFormDTO.setPublicId(WxmpMessageConstant.TEMPLATE_TYPE); + List customerTemplateListResultDTOS = customerTemplateList(customerTemplateListFormDTO); + if (customerTemplateListResultDTOS.size() > NumConstant.ZERO) { + for (CustomerTemplateListResultDTO customerTemplateListResultDTO : customerTemplateListResultDTOS) { + if (WxmpMessageConstant.GOV_REDIS.equals(customerTemplateListResultDTO.getClientType())){ + customerTemplateListResultDTO.setClientType(WxmpMessageConstant.GOV_DB); + } + if (clientType.equals(customerTemplateListResultDTO.getClientType())) { + templateId = customerTemplateListResultDTO.getTemplateId(); + } + } + } else { + throw new WxSubscribeException("获取模板id失败", "", openId); } if (StringUtils.isBlank(templateId)) { throw new WxSubscribeException("获取模板id失败", "", openId); } - //判断用户是否有次数 Integer count = null; if (WxmpMessageConstant.RESI.equals(clientType)) { @@ -200,23 +215,30 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { jsonObject.put(WxmpMessageConstant.ACCESS_TOKEN, accessToken); jsonObject.put(WxmpMessageConstant.TOUSER, openId); jsonObject.put(WxmpMessageConstant.TEMPLATE_ID, templateId); + //标题 String title = "您有一条" + msg.getBehaviorType(); JSONObject titleJson = new JSONObject(); titleJson.put("value", title.length() > WxmpMessageConstant.TITLE_LIMIT ? title.substring(0, WxmpMessageConstant.TITLE_LIMIT) : title); data.put(WxmpMessageConstant.TITLE, titleJson); + //内容 JSONObject contentJson = new JSONObject(); contentJson.put("value", msg.getMessageContent().length() > WxmpMessageConstant.MESSAGE_CONTENT_LIMIT ? msg.getMessageContent().substring(0, WxmpMessageConstant.MESSAGE_CONTENT_LIMIT) : msg.getMessageContent()); data.put(WxmpMessageConstant.MESSAGE_CONTENT, contentJson); + //时间 JSONObject timeJson = new JSONObject(); timeJson.put("value", new SimpleDateFormat("yyyy-MM-dd HH:mm").format(msg.getMessageTime())); - data.put(WxmpMessageConstant.MESSAGE_TIME,timeJson); + data.put(WxmpMessageConstant.MESSAGE_TIME, timeJson); jsonObject.put(WxmpMessageConstant.DATA, data); EnvEnum envEnum = EnvEnum.getCurrentEnv(); //选填项 if (WxmpMessageConstant.RESI.equals(clientType)) { - jsonObject.put(WxmpMessageConstant.PAGE, WxmpMessageConstant.PAGE_RESI); + StringBuilder resiPage = new StringBuilder(WxmpMessageConstant.PAGE_URL); + resiPage.append("?customerId=").append(customerId).append("&gridId=").append(msg.getGridId()); + jsonObject.put(WxmpMessageConstant.PAGE, resiPage.toString()); } else if (WxmpMessageConstant.GOV_DB.equals(clientType)) { - jsonObject.put(WxmpMessageConstant.PAGE, WxmpMessageConstant.PAGE_WORK); + StringBuilder govPage = new StringBuilder(WxmpMessageConstant.PAGE_URL); + govPage.append("?customerId=").append(customerId).append("&userId=").append(userId); + jsonObject.put(WxmpMessageConstant.PAGE, govPage.toString()); } //开发环境 if ("dev".equals(envEnum.getCode())) { @@ -266,7 +288,6 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { //抛出错误 throw new WxSubscribeException(String.valueOf(resultMap.get(WxmpMessageConstant.ERR_MSG)), templateId, openId); } - succecssCount++; } catch (Exception e) { String errMsg = e.getMessage(); @@ -297,6 +318,7 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { wxmpMsgSendRecordEntity.setCustomerId(msg.getCustomerId()); wxmpMsgSendRecordEntity.setClientType(msg.getClientType()); wxmpMsgSendRecordEntity.setTemplateId(templateId); + wxmpMsgSendRecordEntity.setGridId(msg.getGridId()==null?"":msg.getGridId()); wxmpMsgSendRecordEntity.setUserId(msg.getUserId()); wxmpMsgSendRecordEntity.setWxOpenId(openId); wxmpMsgSendRecordEntity.setBehaviorType(msg.getBehaviorType()); @@ -331,6 +353,7 @@ public class WxmpMessageServiceImpl implements WxmpMessageService { List resultList = (List) mapToResult.getData(); return resultList; } + /** * @return * @Description 查询客户两个端小程序对应的站内信模板Id diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpMsgSendRecordDao.xml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpMsgSendRecordDao.xml index da33d13106..198d5cd529 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpMsgSendRecordDao.xml +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpMsgSendRecordDao.xml @@ -11,6 +11,7 @@ template_id, user_id, wx_open_id, + grid_id behavior_type, title, message_content, @@ -30,6 +31,7 @@ #{templateId}, #{userId}, #{wxOpenId}, + #{gridId}, #{behaviorType}, #{title}, #{messageContent}, diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java index b968d9c9be..d24ad2e1c4 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java @@ -579,6 +579,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl msgList = new ArrayList<>(); @@ -641,6 +644,7 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl Date: Tue, 27 Oct 2020 14:40:36 +0800 Subject: [PATCH 20/20] =?UTF-8?q?=E6=A8=A1=E6=9D=BFkey=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/constant/WxmpMessageConstant.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/WxmpMessageConstant.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/WxmpMessageConstant.java index 9fdcf435af..62c9e16dcb 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/WxmpMessageConstant.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/WxmpMessageConstant.java @@ -38,15 +38,15 @@ public interface WxmpMessageConstant { String PAGE_URL = "/subpages/mine/pages/message/skip"; - String TITLE = "title"; + String TITLE = "thing5"; int TITLE_LIMIT = 20; - String MESSAGE_CONTENT = "message_content"; + String MESSAGE_CONTENT = "thing4"; int MESSAGE_CONTENT_LIMIT = 20; - String MESSAGE_TIME = "message_time"; + String MESSAGE_TIME = "date2"; String DATA = "data";