From 95b0d2ca0bb3fab6acbc0b220db350c1978f83e9 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 11 Sep 2023 11:39:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/messageurgeList/MessageListDto.java | 2 + .../biz/message/MessageService.java | 72 +++++++++++++++++++ .../ScheduledMessageService.java | 7 +- 3 files changed, 79 insertions(+), 2 deletions(-) diff --git a/message-center-api/src/main/java/com/yxt/messagecenter/api/messageurgeList/MessageListDto.java b/message-center-api/src/main/java/com/yxt/messagecenter/api/messageurgeList/MessageListDto.java index 9425030..cbeb5ab 100644 --- a/message-center-api/src/main/java/com/yxt/messagecenter/api/messageurgeList/MessageListDto.java +++ b/message-center-api/src/main/java/com/yxt/messagecenter/api/messageurgeList/MessageListDto.java @@ -19,4 +19,6 @@ public class MessageListDto implements Dto { private String urgeName; private String nodeName; + + private String msgSid; } diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageService.java b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageService.java index df2c573..fd665d8 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageService.java +++ b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageService.java @@ -1158,6 +1158,78 @@ public class MessageService extends MybatisBaseService { return rb.success(); } + public ResultBean pushUrgeNoUriMessage(PushMessageQuery query) { + ResultBean rb = ResultBean.fireFail(); + //保存消息体 + String msgTitle = query.getMsgTitle(); + String msgContent = query.getMsgContent(); + String app_type = query.getApp_type(); + List receivedSids = query.getReceivedSids(); + AppMessageDto messageDto = new AppMessageDto(); + List 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(msgTitle); + messageDto.setMsgContent(msgContent); + messageDto.setMsgSource("审批中心"); + messageDto.setApp_type(app_type); + String msgSid = saveOrUpdateAppMessage(messageDto).getData(); + String msgTypeSid = messageDto.getMsgTypeSid(); + // 2、保存至消息列表 + ResultBean stringList = sysUserFeign.selectIdBySid(receivedSids); + List receiveIdList = Arrays.asList(stringList.getData().split(",")); + // 使用多线程保存 + List> futures = new ArrayList>(); + ExecutorService executor = Executors.newFixedThreadPool(4); + for (int i = 0; i < receivedSids.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(receivedSids.get(finalI)); + //根据接收人sid查询接收人名称 + ResultBean sysUserInfoVoResultBean = sysUserFeign.selectUserInfoByUserSid(receivedSids.get(finalI)); + if (sysUserInfoVoResultBean.getData() != null) { + messageList.setReceiverName(sysUserInfoVoResultBean.getData().getStaffName()); + } + 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.sendPushAlias(msgTitle, msgContent, msgTypeSid, "业务", receiveIdList.get(i)); + } + } else { + for (int i = 0; i < receiveIdList.size(); i++) { + JPushServer.sendPushAlias(msgTitle, msgContent, msgTypeSid, "业务", "T" + receiveIdList.get(i)); + } + } + return rb.success().setData(msgSid); + } + public ResultBean pushTest(String userSid) { ResultBean rb = ResultBean.fireFail(); List receivedSids = new ArrayList<>(); diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/ScheduledMessageService.java b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/ScheduledMessageService.java index 24ea168..3776d8a 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/ScheduledMessageService.java +++ b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageurgeList/ScheduledMessageService.java @@ -36,6 +36,7 @@ public class ScheduledMessageService { // @Scheduled(cron = "0 0 0 * * ?") // @Scheduled(cron = "0 0/5 16 * * ?") +// @Scheduled(cron = "0/30 * * * * ?") //每30秒执行一次 public void remindMessage() { Date now = new Date(); //获取当前时间 @@ -55,14 +56,16 @@ public class ScheduledMessageService { List recipientSidList = Arrays.asList(flowableMessageVo.getAssignee().split(",")); PushMessageQuery pushMessageQuery = new PushMessageQuery(); pushMessageQuery.setReceivedSids(recipientSidList); - pushMessageQuery.setModuleName("业务"); + pushMessageQuery.setModuleName("审批中心"); pushMessageQuery.setMsgContent("您有待办理的审批,请登录平台及时处理"); pushMessageQuery.setApp_type("2"); // pushMessageQuery.setModuleSid("e25e13b5-f2ed-421f-bdb3-6f2eca2a3028"); pushMessageQuery.setMsgTitle("审批催办提醒"); // pushMessageQuery.setBusinessSid(busDeliveredApply.getSid()); // 消息推送 - messageService.pushNoUriMessage(pushMessageQuery); + ResultBean msgSidResultBean = messageService.pushUrgeNoUriMessage(pushMessageQuery); + String msgSid = msgSidResultBean.getData(); + messageListDto.setMsgSid(msgSid); messageUrgeListService.saveMessage(messageListDto); } }