From 56ae62dd364b2822016b1b25208133e9177cfae1 Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期五, 19 十二月 2025 15:28:01 +0800
Subject: [PATCH] 整合钉钉和企业微信
---
src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java | 20 ++++++--------------
src/main/java/com/gs/dingtalk/service/WorkWXService.java | 33 +++++++++++++++++++++++++++++++++
2 files changed, 39 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/gs/dingtalk/service/WorkWXService.java b/src/main/java/com/gs/dingtalk/service/WorkWXService.java
index 398ebd5..35f4758 100644
--- a/src/main/java/com/gs/dingtalk/service/WorkWXService.java
+++ b/src/main/java/com/gs/dingtalk/service/WorkWXService.java
@@ -212,6 +212,39 @@
}
}
+ public int syncUsersToQwStaff() throws IOException {
+ List<WorkWXUser> userList = getUserList();
+
+ if (userList == null || userList.isEmpty()) {
+ log.warn("鑾峰彇鍒扮殑鐢ㄦ埛鍒楄〃涓虹┖");
+ return 0;
+ }
+
+ int insertCount = 0;
+ for (WorkWXUser user : userList) {
+ if (user.getUserid() == null || user.getUserid().isEmpty()) {
+ continue;
+ }
+
+ QwStaff existingStaff = qwStaffMapper.selectOne(
+ new LambdaQueryWrapper<QwStaff>().eq(QwStaff::getAccount, user.getUserid())
+ );
+
+ if (existingStaff == null) {
+ QwStaff qwStaff = new QwStaff();
+ qwStaff.setName(user.getName());
+ qwStaff.setAccount(user.getUserid());
+ qwStaff.setDept(user.getDepartment() != null ? user.getDepartment().toString() : null);
+
+ qwStaffMapper.insert(qwStaff);
+ insertCount++;
+ }
+ }
+
+ log.info("鍚屾鐢ㄦ埛鍒癚W_STAFF琛ㄥ畬鎴愶紝鏂板鐢ㄦ埛鏁�: {}", insertCount);
+ return insertCount;
+ }
+
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);
diff --git a/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java b/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java
index 9418e30..e2ab79c 100644
--- a/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java
+++ b/src/test/java/com/gs/dingtalk/DeviceReceivingApplicationTests.java
@@ -172,24 +172,16 @@
}
@Test
- void testGetUserDetail() {
- System.out.println("=== 寮�濮嬫祴璇曡幏鍙栫敤鎴疯鎯� ===");
+ void testSyncUsersToQwStaff() {
+ System.out.println("=== 寮�濮嬫祴璇曞悓姝ヤ紒涓氬井淇$敤鎴峰埌QW_STAFF琛� ===");
try {
- String userid = "ShenJuanYue";
- WorkWXService.WorkWXUserDetail userDetail = workWXService.getUserDetail(userid);
+ int insertCount = workWXService.syncUsersToQwStaff();
- 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("鉁� 鑾峰彇鐢ㄦ埛璇︽儏澶辫触");
- }
+ System.out.println("鉁� 鍚屾瀹屾垚");
+ System.out.println(" - 鏂板鐢ㄦ埛鏁�: " + insertCount);
} catch (IOException e) {
- System.out.println("鉁� 鑾峰彇鐢ㄦ埛璇︽儏澶辫触: " + e.getMessage());
+ System.out.println("鉁� 鍚屾鐢ㄦ埛澶辫触: " + e.getMessage());
e.printStackTrace();
}
--
Gitblit v1.9.3