From 7293ef76808fabd088e8ac1ffb28a16fa1e6de45 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 21 Dec 2021 15:35:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=B7=B2=E8=AF=BB=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E3=80=81=E4=BA=8B=E4=BB=B6=E5=9B=9E=E5=A4=8D=E7=AB=8B?= =?UTF-8?q?=E9=A1=B9=E5=8A=9E=E7=BB=93=E6=8E=A8=E9=80=81=E7=AB=99=E5=86=85?= =?UTF-8?q?=E4=BF=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UserMessageController.java | 13 ++++ .../java/com/epmet/dao/UserMessageDao.java | 6 ++ .../com/epmet/service/UserMessageService.java | 6 ++ .../service/impl/UserMessageServiceImpl.java | 10 +++ .../main/resources/mapper/UserMessageDao.xml | 11 ++++ .../java/com/epmet/dto/form/ReplyFormDTO.java | 2 + .../epmet/constant/UserMessageConstant.java | 20 ++++++ .../controller/ResiEventReplyController.java | 1 + .../com/epmet/dao/ResiEventReportOrgDao.java | 2 + .../service/impl/ProjectTraceServiceImpl.java | 45 ++++++++++++++ .../impl/ResiEventReplyServiceImpl.java | 61 +++++++++++++++++-- .../service/impl/ResiEventServiceImpl.java | 42 ++++++++++++- .../mapper/ResiEventReportOrgDao.xml | 8 +++ 13 files changed, 220 insertions(+), 7 deletions(-) diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/UserMessageController.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/UserMessageController.java index a176b3f2ca..61bfa0166a 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/UserMessageController.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/UserMessageController.java @@ -18,7 +18,9 @@ package com.epmet.controller; import com.baomidou.mybatisplus.extension.api.R; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -162,4 +164,15 @@ public class UserMessageController { List list = userMessageService.queryStaffMessage(formDTO); return new Result>().ok(list); } + + /** + * @Author sun + * @Description 【消息】删除已读消息列表 + **/ + @PostMapping("delreadmsg") + public Result delReadMsg(@LoginUser TokenDto tokenDto) { + userMessageService.delReadMsg(tokenDto.getUserId()); + return new Result(); + } + } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/UserMessageDao.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/UserMessageDao.java index bc89c54224..9a5bb0d739 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/UserMessageDao.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/UserMessageDao.java @@ -62,4 +62,10 @@ public interface UserMessageDao extends BaseDao { * @Date 2020/5/17 16:47 **/ List queryStaffMessage(StaffMessageFormDTO formDTO); + + /** + * @Author sun + * @Description 【消息】删除已读消息列表 + **/ + int delReadMsg(@Param("userId") String userId); } \ No newline at end of file diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/UserMessageService.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/UserMessageService.java index cdc41470c8..ce8417175c 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/UserMessageService.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/UserMessageService.java @@ -142,4 +142,10 @@ public interface UserMessageService extends BaseService { StaffUnReadMsgResultDTO queryUnReadMsg(StaffMessageCommonFormDTO formDTO); List queryStaffMessage(StaffMessageFormDTO formDTO); + + /** + * @Author sun + * @Description 【消息】删除已读消息列表 + **/ + void delReadMsg(String userId); } \ No newline at end of file diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/UserMessageServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/UserMessageServiceImpl.java index eb0e559e74..0bdec194d4 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/UserMessageServiceImpl.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/UserMessageServiceImpl.java @@ -209,4 +209,14 @@ public class UserMessageServiceImpl extends BaseServiceImpl list = baseDao.queryStaffMessage(formDTO); return list; } + + /** + * @Author sun + * @Description 【消息】删除已读消息列表 + **/ + @Override + public void delReadMsg(String userId) { + baseDao.delReadMsg(userId); + } + } \ No newline at end of file diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/UserMessageDao.xml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/UserMessageDao.xml index 7aca569542..a8e323ccfa 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/UserMessageDao.xml +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/UserMessageDao.xml @@ -81,4 +81,15 @@ ORDER BY CREATED_TIME DESC LIMIT #{pageNo}, #{pageSize} + + + UPDATE user_message + SET del_flag = '0', + updated_by = #{userId}, + updated_time = NOW() + WHERE + read_flag = 'read' + AND user_id = #{userId} + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReplyFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReplyFormDTO.java index a6729ff46f..c3b94741cb 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReplyFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReplyFormDTO.java @@ -31,4 +31,6 @@ public class ReplyFormDTO implements Serializable { */ @NotBlank(message = "userId不能为空",groups = AddUserInternalGroup.class) private String userId; + + private String customerId; } 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 9a1323f55f..8d40c4ebe9 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 @@ -57,4 +57,24 @@ public interface UserMessageConstant { */ String STAY_REMINDER_MSG_3 = "滞留项目:%n%s"; + /** + * 事件消息标题 + */ + String EVENT_TITILE = "您有一条事件消息!"; + + /** + * 事件被@的人或上报给网格或组织的回复 + */ + String REPLY_EVENT = "%s对您上报的事件进行了回复,请查看。"; + + /** + * 事件被立项 + */ + String PROJECT_EVENT = "%s将您上报的事件转为项目,请查看。"; + + /** + * 事件被办结 + */ + String RCLOSE_PROJECT_EVENT = "%s将您上报的事件状态调整为已办结,请查看。"; + } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventReplyController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventReplyController.java index 0d7f93a2d8..915851c5de 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventReplyController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventReplyController.java @@ -72,6 +72,7 @@ public class ResiEventReplyController { @PostMapping("govReply") public Result govReply(@LoginUser TokenDto tokenDto,@RequestBody ReplyFormDTO replyFormDTO){ replyFormDTO.setUserId(tokenDto.getUserId()); + replyFormDTO.setCustomerId(tokenDto.getCustomerId()); ValidatorUtils.validateEntity(replyFormDTO,ReplyFormDTO.AddUserShowGroup.class,ReplyFormDTO.AddUserInternalGroup.class); resiEventReplyService.govReply(replyFormDTO); return new Result(); diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventReportOrgDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventReportOrgDao.java index 0668eb78f7..ddddb65c63 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventReportOrgDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventReportOrgDao.java @@ -64,4 +64,6 @@ public interface ResiEventReportOrgDao extends BaseDao Integer selectUnReadCount(String agencyId); Integer selectRedCount(String agencyId); + + ResiEventReportOrgEntity getByEventId(@Param("resiEventId") String resiEventId); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java index 1150ecc9f5..c7258c8d50 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java @@ -41,6 +41,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -879,6 +880,10 @@ public class ProjectTraceServiceImpl implements ProjectTraceS log.error("【项目流转】上链失败,错误信息:{}", errorMsg); } + //2021.12.21 给报事人推送站内信 sun start + sendMsg(resiEventEntity); + //2021.12.21 给报事人推送站内信 sun end + return resultDTO; } @@ -1011,4 +1016,44 @@ public class ProjectTraceServiceImpl implements ProjectTraceS logger.info("事件立项,推送微信订阅消息"); return epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList); } + + /** + * @author sun + * 事件立项-给报事人推送站内信 + */ + private void sendMsg(ResiEventEntity resiEventEntity){ + //查询事件上报给网格还是组织信息 + ResiEventReportOrgEntity reportOrg = resiEventReportOrgDao.getByEventId(resiEventEntity.getId()); + String name = ""; + if ("grid".equals(reportOrg.getOrgType())) { + Result gridInfoRes = govOrgOpenFeignClient.queryGridInfo(reportOrg.getOrgId()); + if (!gridInfoRes.success() || null == gridInfoRes.getData()) { + throw new RenException("网格信息查询异常"); + } + name = gridInfoRes.getData().getGridName(); + } else { + AgencyInfoFormDTO dto = new AgencyInfoFormDTO(); + dto.setOrgId(reportOrg.getOrgId()); + dto.setOrgType(reportOrg.getOrgType()); + Result agencyResult = govOrgOpenFeignClient.agencyInfo(dto); + if (!agencyResult.success() || null == agencyResult.getData()) { + throw new RenException("组织信息查询异常"); + } + name = agencyResult.getData().getAgencyName(); + } + UserMessageFormDTO userMessage = new UserMessageFormDTO(); + userMessage.setApp(AppClientConstant.APP_RESI); + userMessage.setCustomerId(resiEventEntity.getCustomerId()); + userMessage.setGridId(resiEventEntity.getGridId()); + String messageContent = String.format(UserMessageConstant.PROJECT_EVENT, name); + userMessage.setMessageContent(messageContent); + userMessage.setReadFlag(ReadFlagConstant.UN_READ); + userMessage.setTitle(UserMessageConstant.EVENT_TITILE); + userMessage.setMessageType(UserMessageTypeConstant.EVENT); + userMessage.setTargetId(resiEventEntity.getId()); + //通知事件上报人 + userMessage.setUserId(resiEventEntity.getReportUserId()); + epmetMessageOpenFeignClient.saveUserMessage(userMessage); + } + } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventReplyServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventReplyServiceImpl.java index 0cc50a69b2..1521c76bc6 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventReplyServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventReplyServiceImpl.java @@ -18,24 +18,28 @@ package com.epmet.service.impl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.AppClientConstant; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextTaskDTO; import com.epmet.commons.tools.scan.result.SyncScanResult; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.ScanContentUtils; -import com.epmet.constant.EventConstant; -import com.epmet.constant.ResiEventAction; +import com.epmet.constant.*; import com.epmet.dao.*; import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.form.ReplyFormDTO; import com.epmet.dto.form.ReplyListFormDTO; +import com.epmet.dto.form.UserMessageFormDTO; +import com.epmet.dto.result.GridInfoResultDTO; import com.epmet.dto.result.ReplyListResultDTO; import com.epmet.dto.result.UserBaseInfoResultDTO; -import com.epmet.entity.ResiEventEntity; -import com.epmet.entity.ResiEventOperationLogEntity; -import com.epmet.entity.ResiEventReplyEntity; +import com.epmet.entity.*; +import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.service.ResiEventReplyService; @@ -71,6 +75,8 @@ public class ResiEventReplyServiceImpl extends BaseServiceImpl gridInfoRes = govOrgOpenFeignClient.queryGridInfo(reportOrgEntity.getOrgId()); + if (!gridInfoRes.success() || null == gridInfoRes.getData()) { + throw new RenException("网格信息查询异常"); + } + name = gridInfoRes.getData().getGridName(); + } + UserMessageFormDTO userMessage = new UserMessageFormDTO(); + userMessage.setApp(AppClientConstant.APP_RESI); + userMessage.setCustomerId(replyFormDTO.getCustomerId()); + userMessage.setGridId(eventEntity.getGridId()); + String messageContent = String.format(UserMessageConstant.REPLY_EVENT, name); + userMessage.setMessageContent(messageContent); + userMessage.setReadFlag(ReadFlagConstant.UN_READ); + userMessage.setTitle(UserMessageConstant.EVENT_TITILE); + userMessage.setMessageType(UserMessageTypeConstant.EVENT); + userMessage.setTargetId(eventEntity.getId()); + //通知事件上报人 + userMessage.setUserId(eventEntity.getReportUserId()); + epmetMessageOpenFeignClient.saveUserMessage(userMessage); + //2021.12.21 给报事人推送站内信 sun end } private ResiEventEntity queryResiEntity(String resiEventId) { @@ -254,6 +286,25 @@ public class ResiEventReplyServiceImpl extends BaseServiceImpl gridInfoRes = govOrgOpenFeignClient.queryGridInfo(reportOrgEntity.getOrgId()); + if (!gridInfoRes.success() || null == gridInfoRes.getData()) { + throw new RenException("网格信息查询异常"); + } + name = gridInfoRes.getData().getGridName(); + } else { + AgencyInfoFormDTO dto = new AgencyInfoFormDTO(); + dto.setOrgId(reportOrgEntity.getOrgId()); + dto.setOrgType(reportOrgEntity.getOrgType()); + Result agencyResult = govOrgOpenFeignClient.agencyInfo(dto); + if (!agencyResult.success() || null == agencyResult.getData()) { + throw new RenException("组织信息查询异常"); + } + name = agencyResult.getData().getAgencyName(); + } + UserMessageFormDTO userMessage = new UserMessageFormDTO(); + userMessage.setApp(AppClientConstant.APP_RESI); + userMessage.setCustomerId(resiEventEntity.getCustomerId()); + userMessage.setGridId(resiEventEntity.getGridId()); + String messageContent = String.format(UserMessageConstant.RCLOSE_PROJECT_EVENT, name); + userMessage.setMessageContent(messageContent); + userMessage.setReadFlag(ReadFlagConstant.UN_READ); + userMessage.setTitle(UserMessageConstant.EVENT_TITILE); + userMessage.setMessageType(UserMessageTypeConstant.EVENT); + userMessage.setTargetId(resiEventEntity.getId()); + //通知事件上报人 + userMessage.setUserId(resiEventEntity.getReportUserId()); + epmetMessageOpenFeignClient.saveUserMessage(userMessage); + //2021.12.21 给报事人推送站内信 sun end } /** diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventReportOrgDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventReportOrgDao.xml index 1838d12f93..95fafc5135 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventReportOrgDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventReportOrgDao.xml @@ -56,4 +56,12 @@ AND M.ORG_READ='read' and m.RED_DOT='1' + \ No newline at end of file