|
|
@ -300,6 +300,89 @@ public class MessageService extends MybatisBaseService<MessageMapper, Message> { |
|
|
|
return rb.success().setData(msgSid); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<String> getMessageRead(MessageFlowableDto dto) { |
|
|
|
ResultBean<String> rb = ResultBean.fireFail(); |
|
|
|
String msgTitle = dto.getMsgTitle(); |
|
|
|
String msgContent = dto.getMsgContent(); |
|
|
|
List<String> list = dto.getList(); |
|
|
|
List<String> receiveIdList = dto.getReceiveIdList(); |
|
|
|
List<String> orgPathList = dto.getOrgPathList(); |
|
|
|
// 1、保存消息体
|
|
|
|
AppMessageDto messageDto = new AppMessageDto(); |
|
|
|
List<MessageTypeVo> messageBean = messageTypeService.selectMsgTypeList("0003"); |
|
|
|
messageBean.removeAll(Collections.singleton(null)); |
|
|
|
if (!messageBean.isEmpty()) { |
|
|
|
for (MessageTypeVo message : messageBean) { |
|
|
|
if (message.getMsgType().equals("抄送")) { |
|
|
|
messageDto.setMsgTypeSid(message.getMsgTypeSid()); |
|
|
|
messageDto.setMsgType(message.getMsgType()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(dto.getTaskId())) { |
|
|
|
messageDto.setTaskId(dto.getTaskId()); |
|
|
|
} |
|
|
|
messageDto.setMsgTitle(msgTitle); |
|
|
|
messageDto.setMsgContent(msgContent); |
|
|
|
messageDto.setMsgSource("抄送"); |
|
|
|
messageDto.setApp_type(dto.getApp_type()); |
|
|
|
messageDto.setModuleSid(dto.getModuleSid()); |
|
|
|
//将json与appMap中的参数融合
|
|
|
|
Map<String, Object> jsonMap = BeanUtil.beanToMap(dto.getJson()); |
|
|
|
jsonMap.putAll(dto.getJson().getAppMap()); |
|
|
|
messageDto.setArgs_json(JSONObject.toJSONString(jsonMap)); |
|
|
|
messageDto.setMsgTargetUri(dto.getModuleAction()); |
|
|
|
messageDto.setSenderName("系统"); |
|
|
|
String msgSid = saveOrUpdateAppMessage(messageDto).getData(); |
|
|
|
String msgTypeSid = messageDto.getMsgTypeSid(); |
|
|
|
// 2、保存至消息列表
|
|
|
|
// 使用多线程保存
|
|
|
|
List<Future<?>> futures = new ArrayList<Future<?>>(); |
|
|
|
ExecutorService executor = Executors.newFixedThreadPool(4); |
|
|
|
for (int i = 0; i < list.size(); i++) { |
|
|
|
int finalI = i; |
|
|
|
Future<?> f = executor.submit(new Runnable() { |
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
try { |
|
|
|
System.out.println("run start-----------------" + System.currentTimeMillis() + ":" + Thread.currentThread().getName()); |
|
|
|
MessageListDto messageList = new MessageListDto(); |
|
|
|
messageList.setMsgSid(msgSid); |
|
|
|
messageList.setRDelStatus(0); |
|
|
|
messageList.setSDelStatus(0); |
|
|
|
messageList.setReceiverSid(list.get(finalI)); |
|
|
|
if (orgPathList.size() > 0) { |
|
|
|
messageList.setReceiverDeptSid(orgPathList.get(finalI)); |
|
|
|
} |
|
|
|
messageListService.saveOrUpdateDto(messageList); |
|
|
|
System.out.println("run end-----------------" + System.currentTimeMillis() + ":" + Thread.currentThread().getName()); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
futures.add(f); |
|
|
|
} |
|
|
|
executor.shutdown(); |
|
|
|
//标题、内容、消息类别key、消息类别名称、
|
|
|
|
YamlPropertiesFactoryBean factoryBean = new YamlPropertiesFactoryBean(); |
|
|
|
factoryBean.setResources(new ClassPathResource("application.yml")); |
|
|
|
Properties properties = factoryBean.getObject(); |
|
|
|
if ("pro".equals(properties.get("spring.profiles.active"))) { |
|
|
|
for (int i = 0; i < receiveIdList.size(); i++) { |
|
|
|
//正式
|
|
|
|
JPushServer.sendPushAliass(msgTitle, msgContent, msgTypeSid, "阅读", receiveIdList.get(i)); |
|
|
|
} |
|
|
|
} else { |
|
|
|
for (int i = 0; i < receiveIdList.size(); i++) { |
|
|
|
//测试或者本地
|
|
|
|
JPushServer.sendPushAliass(msgTitle, msgContent, msgTypeSid, "阅读", "T" + receiveIdList.get(i)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return rb.success().setData(msgSid); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<String> pushMessage(MessageFlowableQuery query) { |
|
|
|
ResultBean<String> rb = ResultBean.fireFail(); |
|
|
|
MessageFlowVo ufVo = query.getUfVo(); |
|
|
@ -381,10 +464,6 @@ public class MessageService extends MybatisBaseService<MessageMapper, Message> { |
|
|
|
messageFlowableDto.setApp_type("2"); |
|
|
|
if (sysProUrlVo.getUrl().contains("#")) { |
|
|
|
messageFlowableDto.setModuleAction(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(0)); |
|
|
|
List<Integer> codesInteger = Arrays.asList(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(1).split(",")).stream().map(Integer::parseInt).collect(Collectors.toList()); |
|
|
|
int[] ints = codesInteger.stream().mapToInt(Integer::valueOf).toArray(); |
|
|
|
; |
|
|
|
messageJsonDto.setButtons(ints); |
|
|
|
} else { |
|
|
|
messageFlowableDto.setModuleAction(sysProUrlVo.getUrl()); |
|
|
|
} |
|
|
@ -400,7 +479,7 @@ public class MessageService extends MybatisBaseService<MessageMapper, Message> { |
|
|
|
messageFlowableDto.setMsgTitle(msgTitle); |
|
|
|
messageFlowableDto.setCreateName(applicationName); |
|
|
|
messageFlowableDto.setTaskId(ufVo.getTaskId()); |
|
|
|
ResultBean<String> stringResultBean = getMessage(messageFlowableDto); |
|
|
|
ResultBean<String> stringResultBean = getMessageRead(messageFlowableDto); |
|
|
|
String msgSid = stringResultBean.getData(); |
|
|
|
return rb.success().setMsg(msgSid); |
|
|
|
} |
|
|
|