From aeab5077a918b9017d26a5b7d53d840319bd8a25 Mon Sep 17 00:00:00 2001 From: dimengzhe <251008545@qq.com> Date: Wed, 22 Feb 2023 16:46:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../messagelist/app/MessageReadListQuery.java | 2 +- .../messagelist/app/MessageReadListVo.java | 2 + .../biz/message/MessageService.java | 89 +++++++++++++++++-- .../biz/messagelist/MessageListRest.java | 6 +- .../biz/messagelist/MessageListService.java | 2 +- 5 files changed, 93 insertions(+), 8 deletions(-) diff --git a/message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/MessageReadListQuery.java b/message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/MessageReadListQuery.java index 908dd75..f9f0313 100644 --- a/message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/MessageReadListQuery.java +++ b/message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/MessageReadListQuery.java @@ -18,7 +18,7 @@ public class MessageReadListQuery implements Query { @ApiModelProperty("组织机构全路径") private String orgPath; @ApiModelProperty("0 待阅 1 已阅") - private int state; + private String state; private String names; } diff --git a/message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/MessageReadListVo.java b/message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/MessageReadListVo.java index 859c5dd..ca4686e 100644 --- a/message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/MessageReadListVo.java +++ b/message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/MessageReadListVo.java @@ -59,4 +59,6 @@ public class MessageReadListVo implements Vo { //红点更新时间 private String redTime; + private String dept; + } 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 add1072..9e7c6cf 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 @@ -300,6 +300,89 @@ public class MessageService extends MybatisBaseService { return rb.success().setData(msgSid); } + public ResultBean getMessageRead(MessageFlowableDto dto) { + ResultBean rb = ResultBean.fireFail(); + String msgTitle = dto.getMsgTitle(); + String msgContent = dto.getMsgContent(); + List list = dto.getList(); + List receiveIdList = dto.getReceiveIdList(); + List orgPathList = dto.getOrgPathList(); + // 1、保存消息体 + AppMessageDto messageDto = new AppMessageDto(); + List 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 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> futures = new ArrayList>(); + 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 pushMessage(MessageFlowableQuery query) { ResultBean rb = ResultBean.fireFail(); MessageFlowVo ufVo = query.getUfVo(); @@ -381,10 +464,6 @@ public class MessageService extends MybatisBaseService { messageFlowableDto.setApp_type("2"); if (sysProUrlVo.getUrl().contains("#")) { messageFlowableDto.setModuleAction(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(0)); - List 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 { messageFlowableDto.setMsgTitle(msgTitle); messageFlowableDto.setCreateName(applicationName); messageFlowableDto.setTaskId(ufVo.getTaskId()); - ResultBean stringResultBean = getMessage(messageFlowableDto); + ResultBean stringResultBean = getMessageRead(messageFlowableDto); String msgSid = stringResultBean.getData(); return rb.success().setMsg(msgSid); } diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListRest.java b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListRest.java index 9333b76..759786d 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListRest.java +++ b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListRest.java @@ -217,8 +217,12 @@ public class MessageListRest implements MessageListFeign { @Override public ResultBean> getAppReadListByUserSid(PagerQuery pq) { + ResultBean> rb = ResultBean.fireFail(); if (StringUtils.isBlank(pq.getParams().getUserSid())) { - return new ResultBean().fail().setMsg("用户sid不能为空"); + return rb.setMsg("用户sid不能为空"); + } + if(StringUtils.isBlank(pq.getParams().getState())){ + return rb.setMsg("参数错误:state"); } PagerVo pagerVo = messageListService.getAppReadListByUserSid(pq); return new ResultBean>().success().setData(pagerVo); diff --git a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListService.java b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListService.java index 7bd28f8..5624154 100644 --- a/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListService.java +++ b/message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListService.java @@ -374,7 +374,7 @@ public class MessageListService extends MybatisBaseService