From 55cb4e492f782126e941b80c53c496159d8eb3c0 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期五, 06 三月 2026 16:59:31 +0800
Subject: [PATCH] feat:同步用户时,增加 status delflag状态同步

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserSyncServiceImpl.java |   84 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 72 insertions(+), 12 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserSyncServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserSyncServiceImpl.java
index 44e8fa9..7d75003 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserSyncServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserSyncServiceImpl.java
@@ -55,7 +55,7 @@
      * @return 鍚屾缁撴灉
      */
     @Override
-    @Transactional
+    
     public AjaxResult syncOaUsers(List<UserSyncDTO> oaUsers)
     {
         try
@@ -65,7 +65,7 @@
                 return AjaxResult.warn("浼犲叆鐨勭敤鎴锋暟鎹负绌�");
             }
             
-            log.info("寮�濮嬪悓姝� {} 鏉A鐢ㄦ埛鏁版嵁鍒� MySQL 鏁版嵁搴�...", oaUsers.size());
+//            log.info("寮�濮嬪悓姝� {} 鏉A鐢ㄦ埛鏁版嵁鍒� MySQL 鏁版嵁搴�...", oaUsers.size());
             
             int createdCount = 0;
             int updatedCount = 0;
@@ -109,8 +109,8 @@
                         // 鐢ㄦ埛宸插瓨鍦紝鏇存柊淇℃伅
                         updateExistingUser(existingUser, dto, deptId);
                         updatedCount++;
-                        log.info("鏇存柊鐢ㄦ埛: {} ({}), oaUserId: {}", 
-                            dto.getNickName(), dto.getUserName(), dto.getOaUserId());
+//                        log.info("鏇存柊鐢ㄦ埛: {} ({}), oaUserId: {}",
+//                            dto.getNickName(), dto.getUserName(), dto.getOaUserId());
                     }
                     else
                     {
@@ -137,19 +137,21 @@
                             {
                                 userByName.setSex(dto.getSex());
                             }
+                            userByName.setDelFlag(dto.getLevel()==-1?"2":"0");
+                            userByName.setStatus(dto.getLevel()==-1?"1":"0");
                             userByName.setUpdateBy("sync");
                             sysUserMapper.updateUser(userByName);
                             updatedCount++;
-                            log.info("鏇存柊宸插瓨鍦ㄧ敤鎴峰悕鐨勭敤鎴�: {} ({}), 璁剧疆oaUserId: {}", 
-                                dto.getNickName(), dto.getUserName(), dto.getOaUserId());
+//                            log.info("鏇存柊宸插瓨鍦ㄧ敤鎴峰悕鐨勭敤鎴�: {} ({}), 璁剧疆oaUserId: {}",
+//                                dto.getNickName(), dto.getUserName(), dto.getOaUserId());
                         }
                         else
                         {
                             // 鍒涘缓鏂扮敤鎴�
                             createNewUser(dto, deptId);
                             createdCount++;
-                            log.info("鍒涘缓鏂扮敤鎴�: {} ({}), oaUserId: {}, deptId: {}", 
-                                dto.getNickName(), dto.getUserName(), dto.getOaUserId(), deptId);
+//                            log.info("鍒涘缓鏂扮敤鎴�: {} ({}), oaUserId: {}, deptId: {}",
+//                                dto.getNickName(), dto.getUserName(), dto.getOaUserId(), deptId);
                         }
                     }
                 }
@@ -163,7 +165,7 @@
 
             String message = String.format("鍚屾瀹屾垚锛佸垱寤虹敤鎴�: %d, 鏇存柊鐢ㄦ埛: %d, 璺宠繃: %d, 澶辫触: %d",
                 createdCount, updatedCount, skippedCount, errorCount);
-            log.info(message);
+//            log.info(message);
 
             Map<String, Object> result = new HashMap<>();
             result.put("created", createdCount);
@@ -200,15 +202,45 @@
         
         if (StringUtils.isNotEmpty(dto.getPhonenumber()))
         {
-            existingUser.setPhonenumber(dto.getPhonenumber());
+            // 鏍¢獙鎵嬫満鍙锋槸鍚﹀凡琚叾浠栫敤鎴蜂娇鐢紙鎺掗櫎鑷繁锛�
+            SysUser phoneCheck = sysUserMapper.checkPhoneUnique(dto.getPhonenumber());
+            if (StringUtils.isNotNull(phoneCheck) && !phoneCheck.getUserId().equals(existingUser.getUserId()))
+            {
+                log.warn("鏇存柊鐢ㄦ埛 {} 澶辫触锛屾墜鏈哄彿 {} 宸茶鐢ㄦ埛 {} 浣跨敤锛岃烦杩囨墜鏈哄彿鏇存柊", 
+                    existingUser.getUserName(), dto.getPhonenumber(), phoneCheck.getUserName());
+            }
+            else
+            {
+                existingUser.setPhonenumber(dto.getPhonenumber());
+            }
         }
-        
+        existingUser.setStatus(dto.getLevel()==-1?"1":"0");
+        existingUser.setDelFlag(dto.getLevel()==-1?"2":"0");
         if (StringUtils.isNotEmpty(dto.getSex()))
         {
             existingUser.setSex(dto.getSex());
         }
         
         existingUser.setUpdateBy("sync");
+        if (StringUtils.isNotEmpty(dto.getOaOrderClass()))
+        {
+            existingUser.setOaOrderClass(dto.getOaOrderClass());
+        }
+        if (StringUtils.isNotEmpty(dto.getCanViewAllConsult()))
+        {
+            existingUser.setCanViewAllConsult(dto.getCanViewAllConsult());
+        }
+        if (StringUtils.isNotEmpty(dto.getCanCreateTask()))
+        {
+            existingUser.setCanCreateTask(dto.getCanCreateTask());
+        }
+        // 鍚屾浼佷笟寰俊鐢ㄦ埛ID
+        if (StringUtils.isNotEmpty(dto.getOaWeixinUserId()))
+        {
+            existingUser.setQyWechatUserId(dto.getOaWeixinUserId());
+            existingUser.setQyWechatUpdateTime(new Date());
+        }
+
         sysUserMapper.updateUser(existingUser);
     }
 
@@ -221,6 +253,25 @@
         newUser.setUserName(dto.getUserName());
         newUser.setNickName(dto.getNickName());
         newUser.setOaUserId(dto.getOaUserId());
+        if (StringUtils.isNotEmpty(dto.getOaOrderClass()))
+        {
+            newUser.setOaOrderClass(dto.getOaOrderClass());
+        }
+        if (StringUtils.isNotEmpty(dto.getCanViewAllConsult()))
+        {
+            newUser.setCanViewAllConsult(dto.getCanViewAllConsult());
+        }
+        if (StringUtils.isNotEmpty(dto.getCanCreateTask()))
+        {
+            newUser.setCanCreateTask(dto.getCanCreateTask());
+        }
+        
+        // 璁剧疆浼佷笟寰俊鐢ㄦ埛ID
+        if (StringUtils.isNotEmpty(dto.getOaWeixinUserId()))
+        {
+            newUser.setQyWechatUserId(dto.getOaWeixinUserId());
+            newUser.setQyWechatUpdateTime(new Date());
+        }
         
         if (deptId != null)
         {
@@ -239,6 +290,14 @@
         
         if (StringUtils.isNotEmpty(dto.getPhonenumber()))
         {
+            // 鏍¢獙鎵嬫満鍙锋槸鍚﹀凡琚叾浠栫敤鎴蜂娇鐢�
+            SysUser phoneCheck = sysUserMapper.checkPhoneUnique(dto.getPhonenumber());
+            if (StringUtils.isNotNull(phoneCheck))
+            {
+                log.warn("鍒涘缓鐢ㄦ埛澶辫触锛屾墜鏈哄彿 {} 宸茶鐢ㄦ埛 {} 浣跨敤锛岃烦杩囩敤鎴� {}", 
+                    dto.getPhonenumber(), phoneCheck.getUserName(), dto.getUserName());
+                return; // 璺宠繃鍒涘缓
+            }
             newUser.setPhonenumber(dto.getPhonenumber());
         }
         
@@ -255,7 +314,8 @@
         newUser.setPassword(SecurityUtils.encryptPassword("123456"));
         
         // 璁剧疆榛樿鐘舵�佷负姝e父
-        newUser.setStatus("0");
+        newUser.setStatus(dto.getLevel()==-1?"1":"0");
+        newUser.setDelFlag(dto.getLevel()==-1?"2":"0");
         
         newUser.setCreateBy("sync");
         

--
Gitblit v1.9.1