|
|
@ -92,6 +92,8 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> 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<IssueDao, IssueEntity> 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<IssueDao, IssueEntity> imp |
|
|
|
} |
|
|
|
return messageFeignClient.saveUserMessageList(msgList); |
|
|
|
} |
|
|
|
/** |
|
|
|
* @Description 关闭议题时给话题创建人和议题发起人推送微信订阅消息 |
|
|
|
* @author sun |
|
|
|
*/ |
|
|
|
private Result saveWxmpMessageList(ResiTopicDTO topicDTO, String messageContent, IssueEntity entity) { |
|
|
|
List<WxSubscribeMessageFormDTO> 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 |
|
|
@ -583,6 +612,10 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> 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()); |
|
|
@ -637,6 +670,47 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp |
|
|
|
}); |
|
|
|
return messageFeignClient.saveUserMessageList(msgList); |
|
|
|
} |
|
|
|
/** |
|
|
|
* @Description 议题转项目时给话题创建人、议题发起人、勾选的工作人员分别推送微信订阅消息 |
|
|
|
* @author sun |
|
|
|
*/ |
|
|
|
private Result wxmpShiftProjectMessage(IssueProjectResultDTO issueProjectResultDTO, ShiftProjectFormDTO formDTO, IssueEntity entity) { |
|
|
|
List<WxSubscribeMessageFormDTO> 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<String,String> 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 |
|
|
|