From 5cd878a9053e1e682689e78e37594534e957f46d Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期二, 25 十一月 2025 14:10:27 +0800
Subject: [PATCH] 新增企业微信的接口
---
src/main/java/com/gs/xky/service/WorkWXService.java | 66 +++++++++++++++++++++++++++------
1 files changed, 54 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/gs/xky/service/WorkWXService.java b/src/main/java/com/gs/xky/service/WorkWXService.java
index ac986c5..6aa3594 100644
--- a/src/main/java/com/gs/xky/service/WorkWXService.java
+++ b/src/main/java/com/gs/xky/service/WorkWXService.java
@@ -60,12 +60,12 @@
}
}
- public List<DeptUser> getUserList() throws IOException {
+ public String getUserIdByMobile(String mobile) throws IOException {
String accessToken = getAccessToken();
- String url = String.format("https://qyapi.weixin.qq.com/cgi-bin/user/list_id?access_token=%s", accessToken);
+ String url = String.format("https://qyapi.weixin.qq.com/cgi-bin/user/getuserid?access_token=%s", accessToken);
Map<String, Object> requestBody = new HashMap<>();
- requestBody.put("limit", 10000);
+ requestBody.put("mobile", mobile);
MediaType mediaType = MediaType.parse("application/json; charset=UTF-8");
String jsonBody = objectMapper.writeValueAsString(requestBody);
@@ -79,11 +79,46 @@
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) {
+ log.error("閫氳繃鎵嬫満鍙疯幏鍙杣serid澶辫触锛孒TTP鐘舵�佺爜: {}", response.code());
+ throw new IOException("鑾峰彇userid澶辫触: " + response.message());
+ }
+
+ String responseBody = response.body().string();
+ log.info("閫氳繃鎵嬫満鍙疯幏鍙杣serid鍝嶅簲: {}", responseBody);
+
+ WorkWXUserIdResponse userIdResponse = objectMapper.readValue(responseBody, WorkWXUserIdResponse.class);
+
+ if (userIdResponse.getErrcode() != 0) {
+ log.error("閫氳繃鎵嬫満鍙疯幏鍙杣serid澶辫触锛岄敊璇爜: {}, 閿欒淇℃伅: {}",
+ userIdResponse.getErrcode(), userIdResponse.getErrmsg());
+ throw new IOException("鑾峰彇userid澶辫触: " + userIdResponse.getErrmsg());
+ }
+
+ log.info("鎴愬姛閫氳繃鎵嬫満鍙� {} 鑾峰彇userid: {}", mobile, userIdResponse.getUserid());
+ return userIdResponse.getUserid();
+ }
+ }
+
+ public List<WorkWXUser> getUserList() throws IOException {
+ String accessToken = getAccessToken();
+ String url = String.format(
+ "https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token=%s&department_id=1&fetch_child=1",
+ accessToken);
+
+ 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);
+
WorkWXUserListResponse userListResponse = objectMapper.readValue(responseBody, WorkWXUserListResponse.class);
if (userListResponse.getErrcode() != 0) {
@@ -93,8 +128,8 @@
}
log.info("鎴愬姛鑾峰彇浼佷笟寰俊鐢ㄦ埛鍒楄〃锛岀敤鎴锋暟閲�: {}",
- userListResponse.getDeptUser() != null ? userListResponse.getDeptUser().size() : 0);
- return userListResponse.getDeptUser();
+ userListResponse.getUserlist() != null ? userListResponse.getUserlist().size() : 0);
+ return userListResponse.getUserlist();
}
}
@@ -109,18 +144,25 @@
}
@Data
- private static class WorkWXUserListResponse {
+ private static class WorkWXUserIdResponse {
private Integer errcode;
private String errmsg;
- @JsonProperty("next_cursor")
- private String nextCursor;
- @JsonProperty("dept_user")
- private List<DeptUser> deptUser;
+ private String userid;
}
@Data
- public static class DeptUser {
+ private static class WorkWXUserListResponse {
+ private Integer errcode;
+ private String errmsg;
+ private List<WorkWXUser> userlist;
+ }
+
+ @Data
+ public static class WorkWXUser {
private String userid;
- private Integer department;
+ private String name;
+ private List<Integer> department;
+ @JsonProperty("open_userid")
+ private String openUserid;
}
}
--
Gitblit v1.9.3