From 71a8e74d4fcd2adbe9f2bd15979def9d5fd74331 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Tue, 26 Mar 2024 11:44:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20hiwork=E6=B6=88=E6=81=AF=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC&=E9=92=89=E9=92=89=E6=B6=88=E6=81=AF=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hiwork/handle/DingDingSendMsgHandle.java | 5 ++-- .../hiwork/handle/SystemSendMsgHandle.java | 2 +- .../hiwork/service/IHiworkMsgService.java | 4 +-- .../service/impl/HiworkMsgServiceImpl.java | 21 +++++++++++++--- .../service/impl/SendMessageServiceImpl.java | 25 +++++++++++++++++-- .../src/main/resources/application-dev.yml | 6 +++++ .../src/main/resources/application-prod.yml | 6 +++++ .../src/main/resources/application-test.yml | 6 +++++ 8 files changed, 63 insertions(+), 12 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/handle/DingDingSendMsgHandle.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/handle/DingDingSendMsgHandle.java index ddb05f3e..42234491 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/handle/DingDingSendMsgHandle.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/handle/DingDingSendMsgHandle.java @@ -6,7 +6,6 @@ import com.jero.modules.message.handle.ISendMsgHandle; import lombok.extern.slf4j.Slf4j; import java.util.Arrays; -import java.util.List; /** * @Author: liao @@ -22,9 +21,9 @@ public class DingDingSendMsgHandle implements ISendMsgHandle { * @Description: Hiwork钉钉消息 **/ @Override - public void SendMsg(String esReceiver, String esTitle, String esContent, String openType, String openPage) { + public void SendMsg(String esReceiver, String esTitle, String esContent, String openType, String messageUrl) { IHiworkMsgService hiworkMsgService = SpringContextUtils.getBean(IHiworkMsgService.class); - hiworkMsgService.sendDingDingMsg(Arrays.asList(esReceiver.split(",")), esTitle, esContent); + hiworkMsgService.sendDingDingMsg(Arrays.asList(esReceiver.split(",")), esTitle, esContent, messageUrl); } } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/handle/SystemSendMsgHandle.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/handle/SystemSendMsgHandle.java index a9afc53e..6671e307 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/handle/SystemSendMsgHandle.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/handle/SystemSendMsgHandle.java @@ -15,7 +15,7 @@ public class SystemSendMsgHandle implements ISendMsgHandle { IHiworkMsgService hiworkMsgService = SpringContextUtils.getBean(IHiworkMsgService.class); // TODO 先写死 01 消息类型(暂未确定) String messageType = "01"; - hiworkMsgService.sendSystemMsg(Arrays.asList(esReceiver.split(",")), messageType, esTitle, esContent); + hiworkMsgService.sendSystemMsg(Arrays.asList(esReceiver.split(",")), messageType, esTitle, esContent, openPage); } } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/IHiworkMsgService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/IHiworkMsgService.java index a21fbca9..990b7ffd 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/IHiworkMsgService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/IHiworkMsgService.java @@ -17,7 +17,7 @@ public interface IHiworkMsgService { * title:消息标题 * content:文本内容 **/ - void sendDingDingMsg(List senderIdList, String title, String content); + void sendDingDingMsg(List senderIdList, String title, String content, String messageUrl); /** * @Author: liao @@ -29,5 +29,5 @@ public interface IHiworkMsgService { * title:消息标题 * content:消息内容 **/ - void sendSystemMsg(List receiverIdList, String messageType, String title, String content); + void sendSystemMsg(List receiverIdList, String messageType, String title, String content, String messageUrl); } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkMsgServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkMsgServiceImpl.java index 08f2e12b..0351c155 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkMsgServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkMsgServiceImpl.java @@ -1,5 +1,7 @@ package com.jero.modules.docking.hiwork.service.impl; +import cn.hutool.core.annotation.Link; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jero.common.exception.JeroBootException; @@ -38,6 +40,7 @@ public class HiworkMsgServiceImpl implements IHiworkMsgService { private ISysUserService sysUserService; private final static String TEXT = "text"; // 消息类型-文本 + private final static String LINK = "link"; // 消息类型-文本 private final static String MSG_TYPE = "msgtype"; // 消息类型 private final static String CONTENT = "content"; // 消息内容 @@ -49,7 +52,7 @@ public class HiworkMsgServiceImpl implements IHiworkMsgService { * content:文本内容 **/ @Override - public void sendDingDingMsg(List senderIdList, String title, String content) { + public void sendDingDingMsg(List senderIdList, String title, String content, String messageUrl) { HiworkDingDingMsg hiworkDingDingMsg = new HiworkDingDingMsg(); // 异步系统标识 hiworkDingDingMsg.setSysCode(HiworkPostUtil.getSysCode()); @@ -66,9 +69,14 @@ public class HiworkMsgServiceImpl implements IHiworkMsgService { // 消息体 JSONObject msgJsonObject = new JSONObject(); - msgJsonObject.put(MSG_TYPE, TEXT); JSONObject textJsonObject = new JSONObject(); textJsonObject.put(CONTENT, content); + if (StrUtil.isBlank(messageUrl)) { + msgJsonObject.put(MSG_TYPE, TEXT); + } else { + msgJsonObject.put(MSG_TYPE, LINK); + textJsonObject.put("messageUrl", messageUrl); + } msgJsonObject.put(TEXT, textJsonObject); hiworkDingDingMsg.setMsg(msgJsonObject); @@ -88,7 +96,7 @@ public class HiworkMsgServiceImpl implements IHiworkMsgService { * content:消息内容 **/ @Override - public void sendSystemMsg(List receiverIdList, String messageType, String title, String content) { + public void sendSystemMsg(List receiverIdList, String messageType, String title, String content, String messageUrl) { HiworkSystemMsg hiworkSystemMsg = new HiworkSystemMsg(); // 异步系统标识 @@ -122,9 +130,14 @@ public class HiworkMsgServiceImpl implements IHiworkMsgService { // 消息体 JSONObject msgJsonObject = new JSONObject(); - msgJsonObject.put(MSG_TYPE, TEXT); JSONObject textJsonObject = new JSONObject(); textJsonObject.put(CONTENT, content); + if (StrUtil.isBlank(messageUrl)) { + msgJsonObject.put(MSG_TYPE, TEXT); + } else { + msgJsonObject.put(MSG_TYPE, LINK); + textJsonObject.put("messageUrl", messageUrl); + } msgJsonObject.put(TEXT, textJsonObject); hiworkSystemMsg.setMsg(msgJsonObject); diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/SendMessageServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/SendMessageServiceImpl.java index 659b785a..ad92d60d 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/SendMessageServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/SendMessageServiceImpl.java @@ -17,6 +17,10 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.CharsetEncoder; +import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -35,6 +39,12 @@ public class SendMessageServiceImpl implements SendMessageAPI { private ISysMessageTemplateService sysMessageTemplateService; @Value("${hiwork.isSend}") private Boolean isSend; + @Value("${hiwork.isHiworkDingDingSend}") + private Boolean isHiworkDingDingSend; + @Value("${hiwork.dingdingUrlPrefix}") + private String dingdingUrlPrefix; + @Value("${hiwork.hiworkUrlPrefix}") + private String hiworkUrlPrefix; /** * @Author: liao @@ -103,8 +113,19 @@ public class SendMessageServiceImpl implements SendMessageAPI { } else { return; } - if (isSend) { - sendMsgHandle.SendMsg(sendMessageDTO.getToUserId(), sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent(), finalOpenType, finalOpenPage); + if (isHiworkDingDingSend) { + String messageUrl = hiworkUrlPrefix + finalOpenPage; + if (sendMsgHandle instanceof DingDingSendMsgHandle) { + // 将tempUrl编码 + String encodeUrl = null; + try { + encodeUrl = URLEncoder.encode(messageUrl, StandardCharsets.UTF_8.name()); + } catch (UnsupportedEncodingException e) { + throw new JeroBootException("钉钉消息跳转url编码异常", e); + } + messageUrl = dingdingUrlPrefix + encodeUrl + "&pc_slide=true"; + } + sendMsgHandle.SendMsg(sendMessageDTO.getToUserId(), sysMessageTemplate.getTemplateName(), sysMessageTemplate.getTemplateContent(), finalOpenType, messageUrl); } }); } catch (Exception e){ diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index 9f51e780..c0509da5 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -416,6 +416,12 @@ hiwork: #hiwork单点登录 appkey: dingshfclphtivrd0r7k appsecret: dqhom_17n6BC8pmLeaf5wNp4aV_4XSt_aYn-dNBo8z__-79NjVvZhDJ_M2REdxRc + # dingding和Hiwork是否发送消息 + isHiworkDingDingSend: false + #hiwork消息跳转前缀 + hiworkUrlPrefix: "http://srms-test.sinotruk.com" + #hiwork钉钉消息跳转前缀 + dingdingUrlPrefix: "dingtalk://dingtalkclient/page/link?url=" # 汽车标准数字化平台ASMS asms: diff --git a/laws-single-startup/src/main/resources/application-prod.yml b/laws-single-startup/src/main/resources/application-prod.yml index 51483caf..37ffd598 100644 --- a/laws-single-startup/src/main/resources/application-prod.yml +++ b/laws-single-startup/src/main/resources/application-prod.yml @@ -388,6 +388,12 @@ hiwork: url: https://iam.sinotruk.com:7011/idp/oauth2/authorize?&state=123&client_id=SRMS&response_type=code&redirect_uri= fontUrl: http://srms.sinotruk.com{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} fontAppUrl: http://222.175.158.138:8120/mobile{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} + # dingding和Hiwork是否发送消息 + isHiworkDingDingSend: false + #hiwork消息跳转前缀 + hiworkUrlPrefix: "http://srms-test.sinotruk.com" + #hiwork钉钉消息跳转前缀 + dingdingUrlPrefix: "dingtalk://dingtalkclient/page/link?url=" # 汽车标准数字化平台ASMS asms: diff --git a/laws-single-startup/src/main/resources/application-test.yml b/laws-single-startup/src/main/resources/application-test.yml index a4af59f4..8cee501a 100644 --- a/laws-single-startup/src/main/resources/application-test.yml +++ b/laws-single-startup/src/main/resources/application-test.yml @@ -388,6 +388,12 @@ hiwork: url: https://iam-uat.sinotruk.com:7011/idp/oauth2/authorize?&state=123&client_id=SRMS&response_type=code&redirect_uri= fontUrl: http://srms-test.sinotruk.com{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} fontAppUrl: http://222.175.158.140:8120/mobile{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} + # dingding和Hiwork是否发送消息 + isHiworkDingDingSend: true + #hiwork消息跳转前缀 + hiworkUrlPrefix: "http://srms-test.sinotruk.com" + #hiwork钉钉消息跳转前缀 + dingdingUrlPrefix: "dingtalk://dingtalkclient/page/link?url=" # 汽车标准数字化平台ASMS asms: