From 929b70897f352a81daa26d85df70598171e4ffe2 Mon Sep 17 00:00:00 2001 From: dzq Date: Mon, 30 Jun 2025 15:40:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=94=A8=E6=88=B7=E6=9F=A5=E8=AF=A2=E5=B9=B6?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A8=A1=E6=8B=9F=E7=99=BB=E5=BD=95=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复企业微信用户查询SQL未过滤已删除和禁用用户的问题 添加模拟企业微信登录接口用于测试环境 --- .../api/controller/PaymentController.java | 38 +++++++++++++++++++ .../userQySys/db/SysUserQyUserMapper.java | 2 +- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java b/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java index 18ee840..5edf391 100644 --- a/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java +++ b/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java @@ -217,6 +217,44 @@ public class PaymentController { } } + @GetMapping("/login/qy/fake") + public ResponseDTO fakeQyLogin(String corpid, String userid) { + try { + QyAccessTokenEntity qyAccessToken = accessTokenApplicationService.getByAppid("QWTONG_YS_WXSHOP", corpid); + // 通过企业微信code获取用户ID + // 根据企业微信用户ID查询系统用户名 + SysUserEntity sysUserEntity = sysUserQyUserApplicationService.getSysUserByQyUserid(userid); + + SystemLoginUser loginUser = new SystemLoginUser(); + loginUser.setAdmin(false); + loginUser.setUserId(sysUserEntity.getUserId()); + List routerTree = menuApplicationService.getRouterTree(loginUser); + log.info("getRouterTree,userid: {}, routerTree: {}", userid, JSONUtil.toJsonStr(routerTree)); + + int isCabinetAdmin = 0; + if (routerTree != null && !routerTree.isEmpty()) { + isCabinetAdmin = isCabinetAdmin(routerTree) + ? 1 : 0; + } + + OpenidResponse openidResponse = QywxApiUtil.convertToOpenid(qyAccessToken.getAccessToken(), userid); + + QyUserEntity qyUserEntity = qyUserApplicationService.getUserByUserIdAndCorpid(userid, corpid); + Ab98UserEntity ab98User = null; + if (qyUserEntity != null && qyUserEntity.getAb98UserId() != null) { + ab98User = ab98UserApplicationService.getByAb98UserId(qyUserEntity.getAb98UserId()); + } + + return ResponseDTO.ok(new QyLoginDTO(userid, openidResponse.getOpenid(), isCabinetAdmin, + qyUserEntity == null ? 0 : qyUserEntity.getId(), + qyUserEntity == null ? "" : qyUserEntity.getName(), + ab98User)); + } catch (RestClientException e) { + log.error("qyLogin失败", e); + return ResponseDTO.fail(new ApiException(ErrorCode.Client.COMMON_REQUEST_PARAMETERS_INVALID, "微信服务调用失败")); + } + } + private static boolean isCabinetAdmin(List routerTree) { if (routerTree == null || routerTree.isEmpty()) { return false; diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/qywx/userQySys/db/SysUserQyUserMapper.java b/agileboot-domain/src/main/java/com/agileboot/domain/qywx/userQySys/db/SysUserQyUserMapper.java index f7e1393..4798953 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/qywx/userQySys/db/SysUserQyUserMapper.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/qywx/userQySys/db/SysUserQyUserMapper.java @@ -44,7 +44,7 @@ public interface SysUserQyUserMapper extends BaseMapper { "FROM sys_user_qy_user suqy " + "JOIN qy_user qu ON suqy.qy_user_id = qu.id " + "JOIN sys_user su ON suqy.sys_user_id = su.user_id " + - "WHERE qu.userid = #{userid}") + "WHERE qu.userid = #{userid} AND qu.deleted = 0 AND qu.enable = 1") SysUserEntity selectSysUserByQyUserid(@Param("userid") String userid); }