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