From 574f63b57552e85406076bc0a2da511a040d263f Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 14 九月 2026 18:03:53 +0800
Subject: [PATCH] 【景宁】记录Url
---
ruoyi-common/src/main/java/com/ruoyi/common/utils/DingTalkUtils.java | 79 +++++++++++++++++++++++++++++++++++++++
1 files changed, 79 insertions(+), 0 deletions(-)
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/DingTalkUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DingTalkUtils.java
new file mode 100644
index 0000000..01c6202
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DingTalkUtils.java
@@ -0,0 +1,79 @@
+package com.ruoyi.common.utils;
+
+import com.alibaba.fastjson2.JSON;
+import com.ruoyi.common.core.domain.DingAsyncSendMsgReq;
+import com.ruoyi.common.core.domain.DingAsyncSendMsgResp;
+import com.ruoyi.common.core.domain.DingTokenResp;
+import okhttp3.*;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+public class DingTalkUtils {
+
+ private static final OkHttpClient HTTP_CLIENT = new OkHttpClient.Builder()
+ .connectTimeout(10, TimeUnit.SECONDS)
+ .readTimeout(10, TimeUnit.SECONDS)
+ .build();
+
+ /**
+ * 鑾峰彇浼佷笟access_token
+ * @param corpid 浼佷笟ID
+ * @param corpsecret 搴旂敤鐨勫嚟璇佸瘑閽�
+ * @return DingTokenResp
+ */
+ public static DingTokenResp getAccessToken(String corpid, String corpsecret) throws IOException {
+ String url = "https://oapi.dingtalk.com/gettoken?corpid=" + corpid + "&corpsecret=" + corpsecret;
+ Request request = new Request.Builder()
+ .url(url)
+ .get()
+ .build();
+ try (Response response = HTTP_CLIENT.newCall(request).execute()) {
+ String body = response.body().string();
+ return JSON.parseObject(body, DingTokenResp.class);
+ }
+ }
+
+ /**
+ * 寮傛鍙戦�佷紒涓氫細璇濇秷鎭� asyncsend_v2
+ */
+ public static DingAsyncSendMsgResp asyncSendCorpMsg(String accessToken, DingAsyncSendMsgReq req) throws IOException {
+ String url = "https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2?access_token=" + accessToken;
+
+ String jsonBody = JSON.toJSONString(req);
+ RequestBody body = RequestBody.create(jsonBody, MediaType.get("application/json; charset=utf-8"));
+
+ Request request = new Request.Builder()
+ .url(url)
+ .post(body)
+ .build();
+
+ try (Response response = HTTP_CLIENT.newCall(request).execute()) {
+ String respBody = response.body().string();
+ return JSON.parseObject(respBody, DingAsyncSendMsgResp.class);
+ }
+ }
+
+ // ========== 鏋勫缓娑堟伅绀轰緥锛氭枃鏈秷鎭� ==========
+ public static Map<String, Object> buildTextMsg(String content) {
+ Map<String, Object> msgMap = new HashMap<>();
+ msgMap.put("msgtype", "text");
+ Map<String, Object> text = new HashMap<>();
+ text.put("content", content);
+ msgMap.put("text", text);
+ return msgMap;
+ }
+
+ // ========== 鏋勫缓娑堟伅绀轰緥锛歮arkdown娑堟伅 ==========
+ public static Map<String, Object> buildMarkdownMsg(String title, String text) {
+ Map<String, Object> msgMap = new HashMap<>();
+ msgMap.put("msgtype", "markdown");
+ Map<String, Object> markdown = new HashMap<>();
+ markdown.put("title", title);
+ markdown.put("text", text);
+ msgMap.put("markdown", markdown);
+ return msgMap;
+ }
+}
--
Gitblit v1.9.3