From 896d14b328059863b5cc668dfc6c1d375f59de59 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 24 二月 2026 14:42:06 +0800
Subject: [PATCH] 代码提交
---
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java | 52 +++++++++++++++++++++++++++++-----------------------
1 files changed, 29 insertions(+), 23 deletions(-)
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java
index 99fb158..17e8744 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java
@@ -5,17 +5,22 @@
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
-import com.dingtalk.api.request.*;
-import com.dingtalk.api.response.*;
+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.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.http.HttpUtils;
-import com.ruoyi.project.domain.vo.DingDetpInfoVo;
import com.ruoyi.project.domain.vo.DingTalkReqVo;
-import com.ruoyi.project.domain.vo.DingUserInfoVo;
import com.ruoyi.project.service.DingTalkService;
+import com.ruoyi.project.utils.DingTalkProxyClient;
import com.ruoyi.system.mapper.SysUserMapper;
import com.taobao.api.ApiException;
import lombok.extern.log4j.Log4j;
@@ -27,6 +32,7 @@
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -53,6 +59,9 @@
@Autowired
private SysUserMapper sysUserMapper;
+
+ @Autowired
+ private DingTalkProxyClient dingTalkProxyClient;
@Override
public Boolean sendNotification(DingTalkReqVo dingTalkReqVo) {
@@ -174,9 +183,8 @@
*/
public Map<String, Object> noLogin(String authCode) {
try {
- String urlString = "https://oapi.dingtalk.com/topapi/v2/user/getuserinfo";
- String params = "access_token=" + getAccessToken() + "&code=" + authCode;
- String result = HttpUtils.sendPost(urlString, params);
+ String params = "access_token=" + dingTalkProxyClient.getAccessToken() + "&code=" + authCode;
+ String result = HttpUtils.sendPost("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo", params);
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> map = objectMapper.readValue(result, Map.class);
return map;
@@ -193,13 +201,13 @@
//鏍规嵁浼犺繃鏉ョ殑閮ㄩ棬ID锛屽幓鑾峰彇璇ラ儴闂ㄤ笅鐨勭敤鎴蜂俊鎭�
if (begin != 1) DingUserInfoList(deptID);
//鑾峰彇瀛愰儴闂ㄧ殑dept_id
- DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/listsub");
- OapiV2DepartmentListsubRequest req = new OapiV2DepartmentListsubRequest();
- req.setDeptId(deptID);
- req.setLanguage("zh_CN");
- OapiV2DepartmentListsubResponse rsp = client.execute(req, getAccessToken());
+ Map<String, String> params = new HashMap<>();
+ params.put("access_token", dingTalkProxyClient.getAccessToken());
+ params.put("dept_id", deptID.toString());
+ params.put("language", "zh_CN");
+ String rspBody = dingTalkProxyClient.executeGet("/topapi/v2/department/listsub", params);
ObjectMapper objectMapper = new ObjectMapper();
- Map<String, Object> map = objectMapper.readValue(rsp.getBody(), Map.class);
+ Map<String, Object> map = objectMapper.readValue(rspBody, Map.class);
if (ObjectUtils.isNotEmpty(map)) {
List<Map<String, Object>> dingDetpInfoList = (List<Map<String, Object>>) map.get("result");
if (Integer.valueOf(map.get("errcode").toString()) == 0) {
@@ -216,18 +224,17 @@
}
public void DingUserInfoList(Long deptId) {
- DingTalkClient client = null;
try {
- client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/list?access_token=" + getAccessToken());
- OapiV2UserListRequest req = new OapiV2UserListRequest();
- req.setDeptId(deptId);
- req.setCursor(0L);
- req.setSize(100L);
- req.setLanguage("zh_CN");
- OapiV2UserListResponse rsp = client.execute(req, "");
+ Map<String, String> params = new HashMap<>();
+ params.put("access_token", dingTalkProxyClient.getAccessToken());
+ params.put("dept_id", deptId.toString());
+ params.put("cursor", "0");
+ params.put("size", "100");
+ params.put("language", "zh_CN");
+ String rspBody = dingTalkProxyClient.executeGet("/topapi/v2/user/list", params);
//鑾峰彇resp閲岀殑鐢ㄦ埛淇℃伅闆嗗悎
ObjectMapper objectMapper = new ObjectMapper();
- Map<String, Object> map = objectMapper.readValue(rsp.getBody(), Map.class);
+ Map<String, Object> map = objectMapper.readValue(rspBody, Map.class);
Map<String, Object> mapResult = (Map<String, Object>) map.get("result");
List<Map<String, Object>> userInfoMapList = (List<Map<String, Object>>) mapResult.get("list");
if (!CollectionUtils.isEmpty(userInfoMapList)) {
@@ -262,5 +269,4 @@
OapiGettokenResponse response = client.execute(request);
return response.getAccessToken();
}
-
}
--
Gitblit v1.9.3