Browse Source

删除已读消息、事件回复立项办结推送站内信

master
sunyuchao 4 years ago
parent
commit
7293ef7680
  1. 13
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/UserMessageController.java
  2. 6
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/UserMessageDao.java
  3. 6
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/UserMessageService.java
  4. 10
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/UserMessageServiceImpl.java
  5. 11
      epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/UserMessageDao.xml
  6. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReplyFormDTO.java
  7. 20
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/UserMessageConstant.java
  8. 1
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventReplyController.java
  9. 2
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventReportOrgDao.java
  10. 45
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java
  11. 61
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventReplyServiceImpl.java
  12. 42
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java
  13. 8
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ResiEventReportOrgDao.xml

13
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<StaffMessageResultDTO> list = userMessageService.queryStaffMessage(formDTO);
return new Result<List<StaffMessageResultDTO>>().ok(list);
}
/**
* @Author sun
* @Description 消息删除已读消息列表
**/
@PostMapping("delreadmsg")
public Result delReadMsg(@LoginUser TokenDto tokenDto) {
userMessageService.delReadMsg(tokenDto.getUserId());
return new Result();
}
}

6
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/UserMessageDao.java

@ -62,4 +62,10 @@ public interface UserMessageDao extends BaseDao<UserMessageEntity> {
* @Date 2020/5/17 16:47
**/
List<StaffMessageResultDTO> queryStaffMessage(StaffMessageFormDTO formDTO);
/**
* @Author sun
* @Description 消息删除已读消息列表
**/
int delReadMsg(@Param("userId") String userId);
}

6
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/UserMessageService.java

@ -142,4 +142,10 @@ public interface UserMessageService extends BaseService<UserMessageEntity> {
StaffUnReadMsgResultDTO queryUnReadMsg(StaffMessageCommonFormDTO formDTO);
List<StaffMessageResultDTO> queryStaffMessage(StaffMessageFormDTO formDTO);
/**
* @Author sun
* @Description 消息删除已读消息列表
**/
void delReadMsg(String userId);
}

10
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<UserMessageDao, User
List<StaffMessageResultDTO> list = baseDao.queryStaffMessage(formDTO);
return list;
}
/**
* @Author sun
* @Description 消息删除已读消息列表
**/
@Override
public void delReadMsg(String userId) {
baseDao.delReadMsg(userId);
}
}

11
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}
</select>
<delete id="delReadMsg">
UPDATE user_message
SET del_flag = '0',
updated_by = #{userId},
updated_time = NOW()
WHERE
read_flag = 'read'
AND user_id = #{userId}
</delete>
</mapper>

2
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;
}

20
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将您上报的事件状态调整为已办结,请查看。";
}

1
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();

2
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ResiEventReportOrgDao.java

@ -64,4 +64,6 @@ public interface ResiEventReportOrgDao extends BaseDao<ResiEventReportOrgEntity>
Integer selectUnReadCount(String agencyId);
Integer selectRedCount(String agencyId);
ResiEventReportOrgEntity getByEventId(@Param("resiEventId") String resiEventId);
}

45
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<ProjectTagService> 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<ProjectTagService> 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<GridInfoResultDTO> 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<AgencyInfoResultDTO> 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);
}
}

61
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<ResiEventReplyDao
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Value("${openapi.scan.server.url}")
private String scanApiUrl;
@ -140,6 +146,32 @@ public class ResiEventReplyServiceImpl extends BaseServiceImpl<ResiEventReplyDao
eventEntity.setLatestOperatedTime(resiEventReplyEntity.getCreatedTime());
resiEventDao.updateById(eventEntity);
// 3、组织改为不显示已经在查看详情中操作了 ,目前只有一个组织,如果后面可以报给多个组织,这里入参要增加orgId todo
//2021.12.21 给报事人推送站内信 sun start
//查询事件上报给网格还是组织信息
ResiEventReportOrgEntity reportOrgEntity = resiEventReportOrgDao.getByEventId(eventEntity.getId());
String name = staffResult.getData().getOrganizationName();
if ("grid".equals(reportOrgEntity.getOrgType())) {
Result<GridInfoResultDTO> 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<ResiEventReplyDao
resiEventDao.updateById(eventEntity);
// 3、组织改为显示
resiEventReportOrgDao.updateRedDotShow(replyFormDTO.getResiEventId());
//2021.12.21 给报事人推送站内信 sun start
//查询被@的人大代表信息
ResiEventMentionEntity eventMentionEntity = resiEventMentionDao.selectUser(replyFormDTO.getResiEventId(), replyFormDTO.getUserId());
String name = "人大代表" + eventMentionEntity.getUserShowName();
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 void scanReplyContent(String content) {

42
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java

@ -19,6 +19,7 @@ package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
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.constant.StrConstant;
import com.epmet.commons.tools.dto.form.FileCommonDTO;
@ -35,8 +36,7 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
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.EventProjectInfoDTO;
import com.epmet.dto.IssueProjectCategoryDictDTO;
@ -44,6 +44,7 @@ import com.epmet.dto.ProjectCategoryDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.*;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovIssueOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
@ -96,6 +97,8 @@ public class ResiEventServiceImpl extends BaseServiceImpl<ResiEventDao, ResiEven
private ProjectCategoryService projectCategoryService;
@Autowired
private GovIssueOpenFeignClient govIssueOpenFeignClient;
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
/**
@ -605,6 +608,41 @@ public class ResiEventServiceImpl extends BaseServiceImpl<ResiEventDao, ResiEven
// 3.2、人大代表在未读/已读列表中展示红点
resiEventMentionDao.updateRedDotShow(formDTO.getEventId(),null);
// 3.3、目前Db设计支持报给多个层级(组织或网格),按理说应该更新非当前组织外,其他的组织,显示红点,先不做了吧 todo
//2021.12.21 给报事人推送站内信 sun start
//查询事件上报给网格还是组织信息
ResiEventReportOrgEntity reportOrgEntity = resiEventReportOrgDao.getByEventId(resiEventEntity.getId());
String name = "";
if ("grid".equals(reportOrgEntity.getOrgType())) {
Result<GridInfoResultDTO> 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<AgencyInfoResultDTO> 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
}
/**

8
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'
</select>
<select id="getByEventId" resultType="com.epmet.entity.ResiEventReportOrgEntity">
SELECT
*
FROM resi_event_report_org
WHERE del_flag='0'
AND resi_event_id = #{resiEventId}
LIMIT 1
</select>
</mapper>
Loading…
Cancel
Save