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