fix: 修复企业微信用户查询并添加模拟登录接口

修复企业微信用户查询SQL未过滤已删除和禁用用户的问题
添加模拟企业微信登录接口用于测试环境
This commit is contained in:
dzq 2025-06-30 15:40:06 +08:00
parent 04fd224005
commit 929b70897f
2 changed files with 39 additions and 1 deletions

View File

@ -217,6 +217,44 @@ public class PaymentController {
}
}
@GetMapping("/login/qy/fake")
public ResponseDTO<QyLoginDTO> 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<RouterDTO> routerTree = menuApplicationService.getRouterTree(loginUser);
log.info("getRouterTreeuserid: {}, 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<RouterDTO> routerTree) {
if (routerTree == null || routerTree.isEmpty()) {
return false;

View File

@ -44,7 +44,7 @@ public interface SysUserQyUserMapper extends BaseMapper<SysUserQyUserEntity> {
"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);
}