From b1bd4cbd01cb8d7616de0b3c321439985a149e5e Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 13 十月 2023 14:15:06 +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