From 87a4adf45da551315fcac701ccd2e154470644db Mon Sep 17 00:00:00 2001 From: opensnail <598092184@qq.com> Date: Sat, 27 Apr 2024 22:59:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(sj=5F1.0.0):=20=E4=BC=98=E5=8C=96=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SystemUserServiceImpl.java | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/SystemUserServiceImpl.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/SystemUserServiceImpl.java index d19011263..3103188d7 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/SystemUserServiceImpl.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/SystemUserServiceImpl.java @@ -64,7 +64,7 @@ public class SystemUserServiceImpl implements SystemUserService { SystemUser systemUser = systemUserMapper.selectOne( new LambdaQueryWrapper() - .eq(SystemUser::getUsername, requestVO.getUsername().trim())); + .eq(SystemUser::getUsername, requestVO.getUsername().trim())); if (Objects.isNull(systemUser)) { throw new SnailJobServerException("用户名或密码错误"); } @@ -206,17 +206,37 @@ public class SystemUserServiceImpl implements SystemUserService { List userResponseVOList = SystemUserResponseVOConverter.INSTANCE.batchConvert( userPageDTO.getRecords()); + if (CollectionUtils.isEmpty(userResponseVOList)) { + return new PageResult<>(userPageDTO, userResponseVOList); + } + List userPermissions = systemUserPermissionMapper.selectList( + new LambdaQueryWrapper() + .in(SystemUserPermission::getSystemUserId, + userResponseVOList.stream().map(SystemUserResponseVO::getId).collect(Collectors.toSet()))); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.select(Namespace::getId, Namespace::getUniqueId, Namespace::getName); + queryWrapper.in(Namespace::getUniqueId, userPermissions.stream().map(SystemUserPermission::getNamespaceId).collect(Collectors.toSet())); + List namespaces = namespaceMapper.selectList(queryWrapper); + Map namespaceMap = namespaces.stream().collect(Collectors.toMap(Namespace::getUniqueId, Namespace::getName)); + + Map> userPermissionsMap = userPermissions.stream().collect(Collectors.groupingBy(SystemUserPermission::getSystemUserId)); userResponseVOList.stream() .filter(systemUserResponseVO -> systemUserResponseVO.getRole().equals(RoleEnum.USER.getRoleId())) .forEach(systemUserResponseVO -> { - List systemUserPermissionList = systemUserPermissionMapper.selectList( - new LambdaQueryWrapper() - .select(SystemUserPermission::getGroupName) - .eq(SystemUserPermission::getSystemUserId, systemUserResponseVO.getId())); + List userPermissions1 = userPermissionsMap.getOrDefault(systemUserResponseVO.getId(), Lists.newArrayList()); - systemUserResponseVO.setGroupNameList(systemUserPermissionList.stream() - .map(SystemUserPermission::getGroupName).collect(Collectors.toList())); + List permissionsResponseVOS = Lists.newArrayList(); + for (SystemUserPermission systemUserPermission : userPermissions1) { + PermissionsResponseVO responseVO = new PermissionsResponseVO(); + responseVO.setGroupName(systemUserPermission.getGroupName()); + responseVO.setNamespaceId(systemUserPermission.getNamespaceId()); + responseVO.setNamespaceName(namespaceMap.get(systemUserPermission.getNamespaceId())); + permissionsResponseVOS.add(responseVO); + } + + systemUserResponseVO.setPermissions(permissionsResponseVOS); }); return new PageResult<>(userPageDTO, userResponseVOList);