Browse Source

引入DD机器人

ops-management-platform-backend-dev
gjh 3 weeks ago
parent
commit
8ed775863a
  1. 25
      ruoyi-modules/guoyan-platform/pom.xml
  2. 92
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/DingDingPush.java

25
ruoyi-modules/guoyan-platform/pom.xml

@ -13,6 +13,31 @@
<artifactId>guoyan-platform</artifactId>
<dependencies>
<!-- 通用工具-->
<!-- 钉钉消息推送 -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibaba-dingtalk-service-sdk</artifactId>
<version>1.0.1</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>32.1.3-jre</version>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-core</artifactId>

92
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/DingDingPush.java

@ -0,0 +1,92 @@
package org.dromara.platform.domain;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.google.common.collect.Maps;
/**
* 钉钉推送消息demo
* GJH
*/
@Slf4j
public class DingDingPush {
public static void main(String[] args) {
//把webhook设置成对应群的即可
String webhook ="https://oapi.dingtalk.com/robot/send?access_token=361ec6fe80c5b49334f5eab9fc4e92ffcdabd23b25b01269488ab9971ade1963";
String content = getContent();
ArrayList<String> mobileList = Lists.newArrayList();
sendMsgToGroupChat(webhook,false,mobileList,content);
}
/**
* 通知消息发送到群聊
* @param webhook 钉钉机器人地址(配置机器人的webhook)
* @param isAtAll 是否通知所有人
* @param mobileList 通知具体人的手机号码列表
* @param content 消息内容
*/
public static void sendMsgToGroupChat(String webhook, boolean isAtAll, List<String> mobileList, String content){
try {
//组装请求内容
String reqStr = buildReqStr(content, isAtAll, mobileList);
//推送消息(http请求)
String result = HttpUtil.post(webhook, reqStr);
log.info("通知响应结果:{}",result);
}catch (Exception e){
log.error("webhook通知失败",e);
}
}
/**
* 组装请求报文Map封装
* @param content 通知内容
* @param isAtAll 是否@所有人
* @param mobileList 通知具体人的手机号码
* @return
*/
private static String buildReqStr(String content, boolean isAtAll, List mobileList) {
mobileList.add("18797992307");
mobileList.add("13120821702");
//消息内容
Map<String, String> contentMap = Maps.newHashMap();
contentMap.put("content", content);
//通知人
Map atMap = Maps.newHashMap();
//1.是否通知所有人
atMap.put("isAtAll", isAtAll);
//2.通知具体人的手机号码列表
atMap.put("atMobiles", mobileList);
Map reqMap = Maps.newHashMap();
reqMap.put("msgtype", "text");
reqMap.put("text", contentMap);
reqMap.put("at", atMap);
return JSON.toJSONString(reqMap);
}
/**
* 获取通知消息
* @return
*/
private static String getContent() {
//钉钉机器人消息内容
String content;
//通过转码网站http://tool.chinaz.com/Tools/unicode.aspx
// 选择中文转Unicode把钉钉表情转换成unicode编码,也可以直接用表情对应的中文设置
String NEWLINE = "\n";
StringBuffer sb = new StringBuffer();
sb.append("测试推送消息,你好有新的工单请及时处理!")
.append(NEWLINE);
content = sb.toString();
return content;
}
}
Loading…
Cancel
Save