From 723d38375c45d24737bfef6f33a9686254abf99b Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 17 十月 2024 13:42:27 +0800
Subject: [PATCH] 代码提交
---
smartor/src/main/java/com/smartor/service/impl/DingTalkServiceImpl.java | 87 ++++++++++++++++++++++++++++---------------
1 files changed, 57 insertions(+), 30 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 423b906..69303b5 100644
--- a/smartor/src/main/java/com/smartor/service/impl/DingTalkServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/DingTalkServiceImpl.java
@@ -7,12 +7,14 @@
import com.dingtalk.api.request.OapiGettokenRequest;
import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request;
import com.dingtalk.api.request.OapiUserListidRequest;
+import com.dingtalk.api.request.OapiV2UserGetbymobileRequest;
import com.dingtalk.api.response.OapiGettokenResponse;
import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response;
import com.dingtalk.api.response.OapiUserListidResponse;
+import com.dingtalk.api.response.OapiV2UserGetbymobileResponse;
+import com.ruoyi.common.utils.StringUtils;
import com.smartor.domain.DingTalkReqVo;
import com.smartor.service.DingTalkService;
-import com.smartor.service.IntelligenceCenterService;
import com.taobao.api.ApiException;
import lombok.extern.log4j.Log4j;
import org.springframework.beans.factory.annotation.Value;
@@ -20,7 +22,8 @@
import java.util.ArrayList;
import java.util.List;
-
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
/**
* 鏅鸿兘涓績
*
@@ -40,61 +43,85 @@
@Override
public Boolean sendNotification(DingTalkReqVo dingTalkReqVo) {
+ String body = null;
+ List<String> userIdlist = new ArrayList();
Boolean result = false;
log.info("鍙戦�侀拤閽夐�氱煡");
+
String accessToken = null;
try {
accessToken = getAccessToken();
} catch (ApiException e) {
e.printStackTrace();
}
- DingTalkClient client3 = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/listid");
+ if (StringUtils.isNotEmpty(dingTalkReqVo.getNumber())) {
+ DingTalkClient clientT = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/getbymobile");
+ OapiV2UserGetbymobileRequest req = new OapiV2UserGetbymobileRequest();
+ req.setMobile(dingTalkReqVo.getNumber());
+ OapiV2UserGetbymobileResponse rsp = null;
+ try {
+ rsp = clientT.execute(req, accessToken);
+ body = rsp.getBody();
+ String jsonObject = JSONObject.parseObject(body).getJSONObject("result").get("userid").toString();
+ userIdlist.add(jsonObject);
- OapiUserListidRequest request2 = new OapiUserListidRequest();
- request2.setDeptId(675909059L); // 璁剧疆瑕佽幏鍙栫殑閮ㄩ棬 ID锛岃繖閲屼互鏍归儴闂ㄤ负渚�
- // 璁剧疆閮ㄩ棬 ID锛屽鏋滆幏鍙栨墍鏈夊憳宸ユ墜鏈哄彿锛屽彲浠ヨ缃负鏍归儴闂ㄧ殑 ID
- OapiUserListidResponse response2 = null;
- try {
- response2 = client3.execute(request2, accessToken);
- } catch (ApiException e) {
- e.printStackTrace();
+ } catch (ApiException e) {
+ e.printStackTrace();
+ }
+ } else {
+ DingTalkClient client3 = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/listid");
+
+ OapiUserListidRequest request2 = new OapiUserListidRequest();
+ request2.setDeptId(dingTalkReqVo.getDeptId()); // 璁剧疆瑕佽幏鍙栫殑閮ㄩ棬 ID锛岃繖閲屼互鏍归儴闂ㄤ负渚�675909059L
+ // 璁剧疆閮ㄩ棬 ID锛屽鏋滆幏鍙栨墍鏈夊憳宸ユ墜鏈哄彿锛屽彲浠ヨ缃负鏍归儴闂ㄧ殑 ID
+ OapiUserListidResponse response2 = null;
+ try {
+ response2 = client3.execute(request2, accessToken);
+ } catch (ApiException e) {
+ e.printStackTrace();
+ }
+ body = response2.getBody();
+ // 瑙f瀽涓篔SONObject
+ JSONObject jsonObject = JSONObject.parseObject(body);
+ // 鎻愬彇鍑篔SONArray
+ JSONArray jsonArray = new JSONArray(jsonObject.getJSONObject("result").getJSONArray("userid_list"));
+ // 灏咼SONArray杞负List鍒楄〃
+ String str = JSONObject.toJSONString(jsonArray);
+ userIdlist = JSONObject.parseObject(str, List.class);
}
- String body = response2.getBody();
- // 瑙f瀽涓篔SONObject
- JSONObject jsonObject = JSONObject.parseObject(body);
- // 鎻愬彇鍑篔SONArray
- JSONArray jsonArray = new JSONArray(jsonObject.getJSONObject("result").getJSONArray("userid_list"));
- // 灏咼SONArray杞负List鍒楄〃
- String str = JSONObject.toJSONString(jsonArray);
- List<String> list = JSONObject.parseObject(str, List.class);
+
//userid鏁扮粍
- for (String urid : list) {
+ for (String urid : userIdlist) {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request();
request.setUseridList(urid);
request.setAgentId(1779052814L);
request.setToAllUser(false);
- List<String> contents = dingTalkReqVo.getContents();
+ //鍙戦�佸唴瀹瑰鐞�
+ List<ConcurrentHashMap<String, String>> contents = dingTalkReqVo.getContents();
ArrayList<OapiMessageCorpconversationAsyncsendV2Request.Form> objects = new ArrayList<>();
for (int i = 0; i < contents.size(); i++) {
- OapiMessageCorpconversationAsyncsendV2Request.Form formSeverityDesc = new OapiMessageCorpconversationAsyncsendV2Request.Form();
- formSeverityDesc.setKey("闂" + i);
- formSeverityDesc.setValue(contents.get(i).toString());
- objects.add(formSeverityDesc);
+ ConcurrentHashMap<String, String> map = contents.get(i);
+ for (Map.Entry<String, String> entry : map.entrySet()) {
+ OapiMessageCorpconversationAsyncsendV2Request.Form formSeverityDesc = new OapiMessageCorpconversationAsyncsendV2Request.Form();
+ formSeverityDesc.setKey(entry.getKey());
+ formSeverityDesc.setValue(entry.getValue());
+ objects.add(formSeverityDesc);
+ }
}
OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
msg.setOa(new OapiMessageCorpconversationAsyncsendV2Request.OA());
- msg.getOa().setMessageUrl("https://www.baidu.com");
- msg.getOa().setPcMessageUrl("https://www.baidu.com");
+ msg.getOa().setMessageUrl(dingTalkReqVo.getUrl());
+ msg.getOa().setPcMessageUrl(dingTalkReqVo.getUrl());
msg.getOa().setHead(new OapiMessageCorpconversationAsyncsendV2Request.Head());
- msg.getOa().getHead().setText("寰呭姙浜嬪疁");
+ // msg.getOa().getHead().setText("浣犲湪璇村暐鍛㈢粧椤舵浛鑻涘ず闃挎柉钂傝姮闃挎柉钂傝姮");
msg.getOa().getHead().setBgcolor("00409eff");
msg.getOa().setBody(new OapiMessageCorpconversationAsyncsendV2Request.Body());
- msg.getOa().getBody().setTitle("灏婃暚鐨� " + "AAA" + "(椤圭洰缁忕悊)");
- msg.getOa().getBody().setContent("寰呭鎵�:" + "123" + "鏉�");
+ msg.getOa().getBody().setTitle(dingTalkReqVo.getTitle());
+ // msg.getOa().getBody().setContent("寰呭鐞�:" + "123" + "鏉�");
msg.getOa().getBody().setForm(objects);
msg.setMsgtype("oa");
--
Gitblit v1.9.3