From 2359f47c2f89a9867e72aa9b171cb118b874afec Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 13 三月 2026 10:29:21 +0800
Subject: [PATCH] 代码提交
---
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java | 32 +++++++++++++++++++++++++++-----
1 files changed, 27 insertions(+), 5 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 17e8744..4e6e151 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
@@ -14,6 +14,7 @@
import com.dingtalk.api.response.OapiUserListidResponse;
import com.dingtalk.api.response.OapiV2UserGetbymobileResponse;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.StringUtils;
@@ -28,6 +29,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestParam;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -183,16 +185,36 @@
*/
public Map<String, Object> noLogin(String authCode) {
try {
- String params = "access_token=" + dingTalkProxyClient.getAccessToken() + "&code=" + authCode;
+ // 澶嶇敤鍚屼竴涓� accessToken锛岄伩鍏嶉噸澶嶈姹�
+ String accessToken = dingTalkProxyClient.getAccessToken();
+
+ // 绗竴姝ワ細authCode 鎹� userid
+ String params = "access_token=" + accessToken + "&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;
+ if (!Integer.valueOf(0).equals(map.get("errcode"))) {
+ throw new BaseException("閽夐拤鐧诲綍澶辫触锛�" + map.get("errmsg"));
+ }
+ Map<String, Object> resultMap = (Map<String, Object>) map.get("result");
+ String userid = (String) resultMap.get("userid");
+
+ // 绗簩姝ワ細userid 鎹㈢敤鎴疯鎯咃紙鍚墜鏈哄彿锛�
+ String params2 = "access_token=" + accessToken + "&userid=" + userid + "&language=zh_CN";
+ String result2 = HttpUtils.sendPost("https://oapi.dingtalk.com/topapi/v2/user/get", params2);
+ Map<String, Object> map2 = objectMapper.readValue(result2, Map.class);
+ if (!Integer.valueOf(0).equals(map2.get("errcode"))) {
+ throw new BaseException("鑾峰彇鐢ㄦ埛璇︽儏澶辫触锛�" + map2.get("errmsg"));
+ }
+ Map<String, Object> userDetail = (Map<String, Object>) map2.get("result");
+
+ return userDetail;
+ } catch (BaseException e) {
+ throw e;
} catch (Exception e) {
- log.error(e.getMessage());
- new BaseException("鐧诲綍鍑哄紓甯镐簡锛岃鑱旂郴绠$悊鍛樺鐞�");
+ log.error("noLogin 寮傚父锛歿}", e);
+ throw new BaseException("鐧诲綍鍑哄紓甯镐簡锛岃鑱旂郴绠$悊鍛樺鐞�");
}
- return null;
}
@Override
--
Gitblit v1.9.3