|
|
@ -540,4 +540,102 @@ public class MessageService extends MybatisBaseService<MessageMapper, Message> { |
|
|
|
System.out.println("process end"); |
|
|
|
return rb.success().setMsg(msgSid); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean sendAppVersionMessage(AppVersionMessageDto dto) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
// 1、保存消息体
|
|
|
|
AppMessageDto messageDto = new AppMessageDto(); |
|
|
|
List<MessageTypeVo> typeVoList = messageTypeService.selectMsgTypeList(IDENTIFIER); |
|
|
|
if (typeVoList.size() > 0) { |
|
|
|
for (MessageTypeVo message : typeVoList) { |
|
|
|
if (message.getMsgType().equals("系统消息")) { |
|
|
|
messageDto.setMsgTypeSid(message.getMsgTypeSid()); |
|
|
|
messageDto.setMsgType(message.getMsgType()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
messageDto.setMsgTitle("版本更新"); |
|
|
|
messageDto.setMsgContent(dto.getVersionName() + "版本已更新"); |
|
|
|
messageDto.setMsgSource("app版本更新"); |
|
|
|
messageDto.setMsgTargetUri(MsgTargetUriEnum.APPUPDATE.getUri()); |
|
|
|
messageDto.setApp_type("0"); |
|
|
|
JSONObject json = new JSONObject(); |
|
|
|
json.put("content", "检查更新中…"); |
|
|
|
messageDto.setArgs_json(json.toJSONString()); |
|
|
|
String msgSid = saveOrUpdateAppMessage(messageDto).getData(); |
|
|
|
String msgTypeSid = messageDto.getMsgTypeSid(); |
|
|
|
// 2、保存至消息列表
|
|
|
|
List<String> list = dto.getReceiveSids(); |
|
|
|
ResultBean<String> stringList = sysUserFeign.selectIdBySid(list); |
|
|
|
List<String> reveiveIdList = Arrays.asList(stringList.getData().split(",")); |
|
|
|
// 使用多线程保存
|
|
|
|
List<Future<?>> futures = new ArrayList<Future<?>>(); |
|
|
|
ExecutorService executor = Executors.newFixedThreadPool(4); |
|
|
|
for (String receverSid : list) { |
|
|
|
Future<?> f = executor.submit(new Runnable() { |
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
try { |
|
|
|
System.out.println("run start-----------------" + System.currentTimeMillis() + ":" + Thread.currentThread().getName()); |
|
|
|
MessageList messageList = new MessageList(); |
|
|
|
messageList.setMsgSid(msgSid); |
|
|
|
messageList.setRDelStatus(0); |
|
|
|
messageList.setSDelStatus(0); |
|
|
|
messageList.setReceiverSid(receverSid); |
|
|
|
messageListService.save(messageList); |
|
|
|
System.out.println("run end-----------------" + System.currentTimeMillis() + ":" + Thread.currentThread().getName()); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
futures.add(f); |
|
|
|
} |
|
|
|
executor.shutdown(); |
|
|
|
YamlPropertiesFactoryBean factoryBean = new YamlPropertiesFactoryBean(); |
|
|
|
factoryBean.setResources(new ClassPathResource("application.yml")); |
|
|
|
Properties properties = factoryBean.getObject(); |
|
|
|
// 使用多线程保存
|
|
|
|
futures = new ArrayList<Future<?>>(); |
|
|
|
executor = Executors.newFixedThreadPool(4); |
|
|
|
if ("pro".equals(properties.get("spring.profiles.active"))) { |
|
|
|
for (int i = 0; i < reveiveIdList.size(); i++) { |
|
|
|
int finalI = i; |
|
|
|
Future<?> f = executor.submit(new Runnable() { |
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
try { |
|
|
|
JPushServer.sendPushAlias(messageDto.getMsgTitle(), messageDto.getMsgContent(), msgTypeSid, messageDto.getMsgType(), reveiveIdList.get(finalI)); |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
futures.add(f); |
|
|
|
} |
|
|
|
executor.shutdown(); |
|
|
|
} else { |
|
|
|
for (int i = 0; i < reveiveIdList.size(); i++) { |
|
|
|
int finalI = i; |
|
|
|
Future<?> f = executor.submit(new Runnable() { |
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
try { |
|
|
|
JPushServer.sendPushAlias(messageDto.getMsgTitle(), messageDto.getMsgContent(), msgTypeSid, messageDto.getMsgType(), "T" + reveiveIdList.get(finalI)); |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
futures.add(f); |
|
|
|
} |
|
|
|
executor.shutdown(); |
|
|
|
|
|
|
|
} |
|
|
|
System.out.println("process end"); |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
} |