From 16335c0ebdbb00381a7c008ccaa387ceadcfd45b Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 14 九月 2026 17:37:01 +0800
Subject: [PATCH] 【景宁】景宁 定时发送异常信息-景宁
---
smartor/src/main/java/com/smartor/service/impl/DingTalkServiceImpl.java | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 109 insertions(+), 1 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/DingTalkServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/DingTalkServiceImpl.java
index 69303b5..35761ab 100644
--- a/smartor/src/main/java/com/smartor/service/impl/DingTalkServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/DingTalkServiceImpl.java
@@ -12,8 +12,12 @@
import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response;
import com.dingtalk.api.response.OapiUserListidResponse;
import com.dingtalk.api.response.OapiV2UserGetbymobileResponse;
+import com.ruoyi.common.core.domain.DingAsyncSendMsgReq;
+import com.ruoyi.common.core.domain.DingAsyncSendMsgResp;
+import com.ruoyi.common.core.domain.DingTalkReqVo;
+import com.ruoyi.common.core.domain.DingTokenResp;
+import com.ruoyi.common.utils.DingTalkUtils;
import com.ruoyi.common.utils.StringUtils;
-import com.smartor.domain.DingTalkReqVo;
import com.smartor.service.DingTalkService;
import com.taobao.api.ApiException;
import lombok.extern.log4j.Log4j;
@@ -40,6 +44,9 @@
@Value("${dingAppSecret}")
private String dingAppSecret;
+
+ @Value("${dingAppAgentId}")
+ private Long dingAppAgentId;
@Override
public Boolean sendNotification(DingTalkReqVo dingTalkReqVo) {
@@ -158,4 +165,105 @@
OapiGettokenResponse response = client.execute(request);
return response.getAccessToken();
}
+
+ /**
+ * 鑾峰彇post access_token
+ */
+ private String getAccessTokenPost() throws ApiException {
+ DefaultDingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.com/v1.0/oauth2/{corpId}/token");
+ OapiGettokenRequest request = new OapiGettokenRequest();
+ //Appkey
+ request.setAppkey(dingAppid);
+ //Appsecret
+ request.setAppsecret(dingAppSecret);
+ /*璇锋眰鏂瑰紡*/
+ request.setHttpMethod("Post");
+ OapiGettokenResponse response = client.execute(request);
+ return response.getAccessToken();
+ }
+
+// /**
+// * 鍙戦�侀拤閽夋秷鎭�-鏅畞
+// * @param sMessageContent
+// * @throws Exception
+// */
+// public void sendDingTalkText(String sMessageContent) throws Exception {
+// String CORP_ID = "浣犵殑浼佷笟corpid";
+// String CORP_SECRET = "浼佷笟搴旂敤鐨刢orpsecret";
+// Long AGENT_ID = 4992829038L; // 浣犵殑搴旂敤agentId
+//
+// try {
+// // 1. 鑾峰彇access_token
+// DingTokenResp tokenResp = DingTalkUtils.getAccessToken(CORP_ID, CORP_SECRET);
+// if (tokenResp.getErrcode() != 0) {
+// System.err.println("鑾峰彇token澶辫触锛�" + tokenResp.getErrmsg());
+// return;
+// }
+// String accessToken = tokenResp.getAccess_token();
+// System.out.println("access_token=" + accessToken);
+//
+// // 2. 缁勮鍙戦�佽姹�
+// DingAsyncSendMsgReq sendReq = new DingAsyncSendMsgReq();
+// sendReq.setAgent_id(AGENT_ID);
+// sendReq.setUserid_list("user01,user02"); // 鎺ユ敹浜洪拤閽塽serId锛屽涓�楀彿
+// sendReq.setTo_all_user(false);
+// // 璁剧疆娑堟伅鍐呭锛岃繖閲岀敤鏂囨湰娑堟伅
+// sendReq.setMsg(DingTalkUtils.buildTextMsg("浣犲ソ锛岃繖鏄紓姝ュ彂閫侀拤閽夋秷鎭祴璇�"));
+//
+// // 3. 璋冪敤寮傛鍙戦�佹帴鍙�
+// DingAsyncSendMsgResp sendResp = DingTalkUtils.asyncSendCorpMsg(accessToken, sendReq);
+// if (sendResp.getErrcode() == 0) {
+// System.out.println("鎻愪氦娑堟伅浠诲姟鎴愬姛锛宼ask_id=" + sendResp.getTask_id());
+// System.out.println("娑堟伅瀹為檯鍙戦�佺粨鏋滐紝闇�瑕佸湪閽夐拤鍚庡彴閰嶇疆鍥炶皟鎺ユ敹");
+// } else {
+// System.err.println("鎻愪氦娑堟伅浠诲姟澶辫触锛歝ode=" + sendResp.getErrcode() + ",msg=" + sendResp.getErrmsg());
+// }
+//
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+// }
+
+ /**
+ * 鍙戦�侀拤閽夋秷鎭�-鏅畞
+ * @param sMessageContent
+ * @throws Exception
+ */
+ @Override
+ public void sendDingTalkText(String sMessageContent, String userId) throws Exception {
+ Long agentId = dingAppAgentId;
+ String accessToken = getAccessToken();
+ DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
+ OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request();
+ request.setAgentId(agentId);
+ request.setUseridList(userId);
+ request.setToAllUser(false);
+
+ OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
+ msg.setMsgtype("text");
+ OapiMessageCorpconversationAsyncsendV2Request.Text text = new OapiMessageCorpconversationAsyncsendV2Request.Text();
+ text.setContent(sMessageContent);
+ msg.setText(text);
+ request.setMsg(msg);
+
+ OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(request, accessToken);
+ System.out.println(rsp.getBody());
+ }
+
+ /**
+ * 鏍规嵁鐢佃瘽鑾峰彇鐢ㄦ埛
+ * @param mobile
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public String getDingTalkUserByMobile(String mobile) throws Exception {
+ String accessToken = getAccessToken();
+ DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/getbymobile");
+ OapiV2UserGetbymobileRequest req = new OapiV2UserGetbymobileRequest();
+ req.setMobile(mobile);
+ OapiV2UserGetbymobileResponse rsp = client.execute(req, accessToken);
+ return rsp.getBody();
+ }
+
}
--
Gitblit v1.9.3