From 04b8f2ff696b53cd3f4b4bcf7d11dc3a62a4a65a Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期三, 26 十一月 2025 14:11:37 +0800
Subject: [PATCH] 新增企业微信的接口
---
src/main/java/com/gs/xky/service/WorkWXService.java | 46 +++++++++++++++++++++++
src/test/java/com/gs/xky/XkyApplicationTests.java | 25 ++++++++++++
2 files changed, 71 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/gs/xky/service/WorkWXService.java b/src/main/java/com/gs/xky/service/WorkWXService.java
index 5852446..e7958b8 100644
--- a/src/main/java/com/gs/xky/service/WorkWXService.java
+++ b/src/main/java/com/gs/xky/service/WorkWXService.java
@@ -180,6 +180,38 @@
return getCheckinData(startTime, endTime, useridList);
}
+ public WorkWXUserDetail getUserDetail(String userid) throws IOException {
+ String accessToken = getContactAccessToken();
+ String url = String.format("https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=%s&userid=%s",
+ accessToken, userid);
+
+ Request request = new Request.Builder()
+ .url(url)
+ .get()
+ .build();
+
+ try (Response response = client.newCall(request).execute()) {
+ if (!response.isSuccessful()) {
+ log.error("鑾峰彇鐢ㄦ埛璇︽儏澶辫触锛孒TTP鐘舵�佺爜: {}", response.code());
+ throw new IOException("鑾峰彇鐢ㄦ埛璇︽儏澶辫触: " + response.message());
+ }
+
+ String responseBody = response.body().string();
+ log.info("鑾峰彇鐢ㄦ埛璇︽儏鍝嶅簲: {}", responseBody);
+
+ WorkWXUserDetailResponse userDetailResponse = objectMapper.readValue(responseBody, WorkWXUserDetailResponse.class);
+
+ if (userDetailResponse.getErrcode() != 0) {
+ log.error("鑾峰彇鐢ㄦ埛璇︽儏澶辫触锛岄敊璇爜: {}, 閿欒淇℃伅: {}",
+ userDetailResponse.getErrcode(), userDetailResponse.getErrmsg());
+ throw new IOException("鑾峰彇鐢ㄦ埛璇︽儏澶辫触: " + userDetailResponse.getErrmsg());
+ }
+
+ log.info("鎴愬姛鑾峰彇鐢ㄦ埛 {} 鐨勮鎯�", userid);
+ return userDetailResponse;
+ }
+ }
+
public List<CheckinData> getCheckinData(long startTime, long endTime, List<String> useridList) throws IOException {
String accessToken = getAccessToken();
String url = String.format("https://qyapi.weixin.qq.com/cgi-bin/checkin/getcheckindata?access_token=%s", accessToken);
@@ -288,6 +320,20 @@
}
@Data
+ public static class WorkWXUserDetail {
+ private Integer errcode;
+ private String errmsg;
+ private String userid;
+ private String name;
+ private String mobile;
+ private String position;
+ }
+
+ @Data
+ private static class WorkWXUserDetailResponse extends WorkWXUserDetail {
+ }
+
+ @Data
private static class WorkWXCheckinResponse {
private Integer errcode;
private String errmsg;
diff --git a/src/test/java/com/gs/xky/XkyApplicationTests.java b/src/test/java/com/gs/xky/XkyApplicationTests.java
index 2d63f9e..4f1bb3a 100644
--- a/src/test/java/com/gs/xky/XkyApplicationTests.java
+++ b/src/test/java/com/gs/xky/XkyApplicationTests.java
@@ -107,4 +107,29 @@
System.out.println("=== 娴嬭瘯缁撴潫 ===");
}
+
+ @Test
+ void testGetUserDetail() {
+ System.out.println("=== 寮�濮嬫祴璇曡幏鍙栫敤鎴疯鎯� ===");
+
+ try {
+ String userid = "ZhangSan";
+ WorkWXService.WorkWXUserDetail userDetail = workWXService.getUserDetail(userid);
+
+ if (userDetail != null && userDetail.getErrcode() == 0) {
+ System.out.println("鉁� 鎴愬姛鑾峰彇鐢ㄦ埛璇︽儏");
+ System.out.println(" - userid: " + userDetail.getUserid());
+ System.out.println(" - 濮撳悕: " + userDetail.getName());
+ System.out.println(" - 鎵嬫満鍙�: " + userDetail.getMobile());
+ System.out.println(" - 鑱屼綅: " + userDetail.getPosition());
+ } else {
+ System.out.println("鉁� 鑾峰彇鐢ㄦ埛璇︽儏澶辫触");
+ }
+ } catch (IOException e) {
+ System.out.println("鉁� 鑾峰彇鐢ㄦ埛璇︽儏澶辫触: " + e.getMessage());
+ e.printStackTrace();
+ }
+
+ System.out.println("=== 娴嬭瘯缁撴潫 ===");
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3