From b0ec9895cde2519bc085ac40acbeea89ae8b6f9d Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期四, 17 七月 2025 16:44:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java |  138 ++++++++++++++++++++-------------------------
 1 files changed, 62 insertions(+), 76 deletions(-)

diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java
index 720544c..f25dc67 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/ThirdAppWechatEnterpriseServiceImpl.java
@@ -390,7 +390,7 @@
             return syncInfo;
         }
         // 鑾峰彇浼佷笟寰俊鎵�鏈夌殑鐢ㄦ埛
-        List<User> qwUsersList = JwUserAPI.getDetailUsersByDepartid("1433010418", null, null, accessToken);
+        List<User> qwUsersList = JwUserAPI.getDetailUsersByDepartid("1", null, null, accessToken);
         if (qwUsersList == null) {
             syncInfo.addFailInfo("浼佷笟寰俊鐢ㄦ埛鍒楄〃鏌ヨ澶辫触锛�");
             return syncInfo;
@@ -405,7 +405,7 @@
              * 2. 鏈湴琛ㄩ噷娌℃湁锛屽氨鍏堢敤鎵嬫満鍙峰垽鏂紝涓嶉�氳繃鍐嶇敤username鍒ゆ柇銆�
              */
             SysThirdAccount sysThirdAccount = sysThirdAccountService.getOneByThirdUserId(qwUser.getUserid(), THIRD_TYPE);
-            List<SysUser> collect = sysUsersList.stream().filter(user -> qwUser.getUserid().equals(user.getUsername())
+            List<SysUser> collect = sysUsersList.stream().filter(user -> qwUser.getUserid().equals(user.getWorkNo())
                                                                 ).collect(Collectors.toList());
 
             if (CollectionUtil.isNotEmpty(collect)) {
@@ -643,7 +643,7 @@
         sysUser.setDelFlag(0);
         sysUser.setStatus(1);
         // 閫氳繃 username 鏉ュ叧鑱�
-        sysUser.setUsername(user.getUserid());
+        sysUser.setUsername(user.getUserid().substring(2));
         // 瀵嗙爜榛樿涓� 鈥�123456鈥濓紝闅忔満鍔犵洂
         String password = "123456", salt = oConvertUtils.randomGen(8);
         String passwordEncode = PasswordUtil.encrypt(sysUser.getUsername(), password, salt);
@@ -689,7 +689,9 @@
             sysUser.setStatus(qwUser.getEnable() == 1 ? 1 : 2);
         }
         // 搴ф満鍙�
-        sysUser.setTelephone(qwUser.getTelephone());
+        if (StringUtils.isNotBlank(qwUser.getTelephone())) {
+            sysUser.setTelephone(qwUser.getTelephone());
+        }
 
         // --- 浼佷笟寰俊娌℃湁閫昏緫鍒犻櫎鐨勫姛鑳�
         // sysUser.setDelFlag()
@@ -1031,74 +1033,6 @@
     /**
      * OAuth2鐧诲綍锛屾垚鍔熻繑鍥炵櫥褰曠殑SysUser锛屽け璐ヨ繑鍥瀗ull
      */
-//    public SysUser oauth2Login(String code) {
-//        String accessToken = this.getAppAccessToken();
-//        if (accessToken == null) {
-//            return null;
-//        }
-//        String appUserId = this.getUserIdByThirdCode(code, accessToken);
-//        if (appUserId != null) {
-//            // 鍒ゆ柇绗笁鏂圭敤鎴疯〃鏈夋病鏈夎繖涓汉
-//            LambdaQueryWrapper<SysThirdAccount> queryWrapper = new LambdaQueryWrapper<>();
-//            queryWrapper.eq(SysThirdAccount::getThirdUserUuid, appUserId);
-//            queryWrapper.or().eq(SysThirdAccount::getThirdUserId, appUserId);
-//            queryWrapper.eq(SysThirdAccount::getThirdType, THIRD_TYPE);
-//            SysThirdAccount thirdAccount = sysThirdAccountService.getOne(queryWrapper);
-//            if (thirdAccount != null) {
-//                return this.getSysUserByThird(thirdAccount, null, appUserId, accessToken);
-//            } else {
-//                // 鐩存帴鍒涘缓鏂拌处鍙�
-//                User appUser = JwUserAPI.getUserByUserid(appUserId, accessToken);
-//                ThirdLoginModel tlm = new ThirdLoginModel(THIRD_TYPE, appUser.getUserid(), appUser.getName(), appUser.getAvatar());
-//                thirdAccount = sysThirdAccountService.saveThirdUser(tlm);
-//                return this.getSysUserByThird(thirdAccount, appUser, null, null);
-//            }
-//        }
-//        return null;
-//    }
-
-    /**
-     * 鏍规嵁绗笁鏂硅处鍙疯幏鍙栨湰鍦拌处鍙凤紝濡傛灉涓嶅瓨鍦ㄥ氨鍒涘缓
-     *
-     * @param thirdAccount
-     * @param appUser
-     * @param appUserId
-     * @param accessToken
-     * @return
-     */
-    private SysUser getSysUserByThird(SysThirdAccount thirdAccount, User appUser, String appUserId, String accessToken) {
-        String sysUserId = thirdAccount.getSysUserId();
-        if (oConvertUtils.isNotEmpty(sysUserId)) {
-            return userMapper.selectById(sysUserId);
-        } else {
-            // 濡傛灉娌℃湁 sysUserId 锛岃鏄庢病鏈夌粦瀹氳处鍙凤紝鑾峰彇鍒版墜鏈哄彿涔嬪悗杩涜缁戝畾
-            if (appUser == null) {
-                appUser = JwUserAPI.getUserByUserid(appUserId, accessToken);
-            }
-            // 鍒ゆ柇绯荤粺閲屾槸鍚︽湁杩欎釜鎵嬫満鍙风殑鐢ㄦ埛
-            SysUser sysUser = userMapper.getUserByPhone(appUser.getMobile());
-            if (sysUser != null) {
-                thirdAccount.setAvatar(appUser.getAvatar());
-                thirdAccount.setRealname(appUser.getName());
-                thirdAccount.setThirdUserId(appUser.getUserid());
-                thirdAccount.setThirdUserUuid(appUser.getUserid());
-                thirdAccount.setSysUserId(sysUser.getId());
-                sysThirdAccountService.updateById(thirdAccount);
-                return sysUser;
-            } else {
-                // 娌℃湁灏辫蛋鍒涘缓閫昏緫
-                return sysThirdAccountService.createUser(appUser.getMobile(), appUser.getUserid());
-            }
-
-        }
-    }
-
-
-
-
-    /**
-     * OAuth2鐧诲綍锛屾垚鍔熻繑鍥炵櫥褰曠殑SysUser锛屽け璐ヨ繑鍥瀗ull
-     */
     public SysUser oauth2Login(String code) {
         String accessToken = this.getAppAccessToken();
         if (accessToken == null) {
@@ -1137,8 +1071,7 @@
             } else {
                 // 鐩存帴鍒涘缓鏂拌处鍙凤紝鍖呭惈鎵嬫満鍙蜂俊鎭�
                 User appUser = JwUserAPI.getUserByUserid(appUserId, accessToken);
-                ThirdLoginModel tlm = new ThirdLoginModel(THIRD_TYPE, appUser.getUserid(), appUser.getName(), appUser.getAvatar());
-                tlm.setPhone(mobile); // 璁剧疆鎵嬫満鍙�
+                ThirdLoginModel tlm = new ThirdLoginModel(THIRD_TYPE, appUser.getUserid(), appUser.getName(), appUser.getAvatar(), mobile);
                 thirdAccount = sysThirdAccountService.saveThirdUser(tlm);
                 return this.getSysUserByThird(thirdAccount, appUser, null, null);
             }
@@ -1153,9 +1086,7 @@
         String url = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo" +
                 "?access_token=" + accessToken +
                 "&code=" + code;
-
         try {
-
             String result = String.valueOf(RestUtil.get(url));
             return JSONObject.parseObject(result);
         } catch (Exception e) {
@@ -1181,4 +1112,59 @@
             return new JSONObject(); // 杩斿洖绌哄璞¢伩鍏峃PE
         }
     }
+
+
+    /**
+     * 鏍规嵁绗笁鏂硅处鍙疯幏鍙栨湰鍦拌处鍙凤紝濡傛灉涓嶅瓨鍦ㄥ氨鍒涘缓
+     *
+     * @param thirdAccount
+     * @param appUser
+     * @param appUserId
+     * @param accessToken
+     * @return
+     */
+    private SysUser getSysUserByThird(SysThirdAccount thirdAccount, User appUser, String appUserId, String accessToken) {
+        String sysUserId = thirdAccount.getSysUserId();
+        if (oConvertUtils.isNotEmpty(sysUserId)) {
+            SysUser sysUser = userMapper.selectById(sysUserId);
+            if (sysUser != null && StringUtils.isBlank(sysUser.getPhone())) {
+                //濡傛灉鏈夌敤鎴凤紝骞朵笖娌℃湁鐢佃瘽淇℃伅锛屾洿鏂拌繘鐢佃瘽鍙风爜
+                SysUser user = new SysUser()
+                        .setId(sysUser.getId())
+                        .setPhone(thirdAccount.getPhone());
+                userMapper.updateById(user);
+            }
+            return sysUser;
+        } else {
+            // 濡傛灉娌℃湁 sysUserId 锛岃鏄庢病鏈夌粦瀹氳处鍙凤紝鑾峰彇鍒版墜鏈哄彿涔嬪悗杩涜缁戝畾
+            if (appUser == null) {
+                appUser = JwUserAPI.getUserByUserid(appUserId, accessToken);
+            }
+            appUser.setMobile(thirdAccount.getPhone());
+            // 鍒ゆ柇绯荤粺閲屾槸鍚︽湁杩欎釜鐢ㄦ埛锛屾牴鎹伐鍙峰尮閰�
+            SysUser sysUser = userMapper.getUserByWorkNo(thirdAccount.getThirdUserId());
+            //SysUser sysUser = userMapper.getUserByPhone(appUser.getMobile());
+            if (sysUser != null) {
+                thirdAccount.setAvatar(appUser.getAvatar());
+                thirdAccount.setRealname(appUser.getName());
+                thirdAccount.setThirdUserId(appUser.getUserid());
+                thirdAccount.setThirdUserUuid(appUser.getUserid());
+                thirdAccount.setSysUserId(sysUser.getId());
+                sysThirdAccountService.updateById(thirdAccount);
+                if (StringUtils.isBlank(sysUser.getPhone())) {
+                    //濡傛灉娌℃湁鎵嬫満鍙风爜锛屾洿鏂�
+                    SysUser user = new SysUser()
+                            .setId(sysUser.getId())
+                            .setPhone(appUser.getMobile());
+                    userMapper.updateById(user);
+                }
+                return sysUser;
+            } else {
+                // 娌℃湁灏辫蛋鍒涘缓閫昏緫
+                return sysThirdAccountService.createUser(appUser.getMobile(), appUser.getUserid());
+            }
+
+        }
+    }
+
 }

--
Gitblit v1.9.3