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