fix 接口优化
This commit is contained in:
parent
5bfe2768a9
commit
6f5571da1d
@ -4,6 +4,7 @@ import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@ -62,6 +63,9 @@ public class PermissionGroupImpl implements PermissionGroupService {
|
||||
List<SaasPgroupRoleRelation> relationList = null;
|
||||
if (CollectionUtils.isNotEmpty(req.getRoleIds())) {
|
||||
relationList = pgroupRoleRelationDao.lambdaQuery()
|
||||
.select(SaasPgroupRoleRelation::getGroupId)
|
||||
.select(SaasPgroupRoleRelation::getRoleId)
|
||||
.select(SaasPgroupRoleRelation::getId)
|
||||
.in(SaasPgroupRoleRelation::getRoleId, req.getRoleIds())
|
||||
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list();
|
||||
@ -100,10 +104,13 @@ public class PermissionGroupImpl implements PermissionGroupService {
|
||||
if (CollectionUtils.isEmpty(groupList)) {
|
||||
return PageResp.zero(iPage.getCurrent(), iPage.getSize());
|
||||
}
|
||||
List<Long> groupIds = groupList.stream().map(BaseEntity::getId).collect(Collectors.toList());
|
||||
List<Long> groupIds = groupList.stream().map(BaseEntity::getId).distinct().collect(Collectors.toList());
|
||||
|
||||
if (CollectionUtils.isEmpty(relationList)) {
|
||||
relationList = pgroupRoleRelationDao.lambdaQuery()
|
||||
.select(SaasPgroupRoleRelation::getGroupId)
|
||||
.select(SaasPgroupRoleRelation::getRoleId)
|
||||
.select(SaasPgroupRoleRelation::getId)
|
||||
.in(SaasPgroupRoleRelation::getGroupId, groupIds)
|
||||
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list();
|
||||
@ -113,20 +120,26 @@ public class PermissionGroupImpl implements PermissionGroupService {
|
||||
|
||||
// 查询权限集关联的权限
|
||||
List<SaasPgroupPermissionRelation> permissionList = permissionRelationDao.lambdaQuery()
|
||||
.select(SaasPgroupPermissionRelation::getGroupId)
|
||||
.select(SaasPgroupPermissionRelation::getFeatureId)
|
||||
.in(SaasPgroupPermissionRelation::getGroupId, groupIds)
|
||||
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list();
|
||||
List<PermissionPointTreeNode> features = new ArrayList<>();
|
||||
if (CollectionUtils.isNotEmpty(permissionList)) {
|
||||
// 查询全部featureCode
|
||||
features = featureService.listNodesByIds(permissionList.stream().map(SaasPgroupPermissionRelation::getFeatureId).collect(Collectors.toList()));
|
||||
features = featureService.listNodesByIds(permissionList.stream().map(SaasPgroupPermissionRelation::getFeatureId).distinct().collect(Collectors.toList()));
|
||||
}
|
||||
Map<Long, PermissionPointTreeNode> featureMap = features.stream().collect(Collectors.toMap(PermissionPointTreeNode::getPermissionPointId, Function.identity(), (e1, e2) -> e2));
|
||||
Map<Long, List<PermissionPointTreeNode>> pgroupPermissionMap = permissionList.stream()
|
||||
Map<Long, Set<PermissionPointTreeNode>> pgroupPermissionMap = permissionList.stream()
|
||||
.collect(Collectors.groupingBy(SaasPgroupPermissionRelation::getGroupId,
|
||||
Collectors.mapping(releation -> featureMap.get(releation.getFeatureId()), Collectors.toList())));
|
||||
pgroupPermissionMap.forEach((k, v) -> v.removeIf(Objects::isNull));
|
||||
Collectors.mapping(releation -> featureMap.get(releation.getFeatureId()), Collectors.toSet())));
|
||||
List<SaasPermissionGroupScope> saasPermissionGroupScopesSource = saasPermissionGroupScopeDao.lambdaQuery()
|
||||
.select(SaasPermissionGroupScope::getId)
|
||||
.select(SaasPermissionGroupScope::getScopeId)
|
||||
.select(SaasPermissionGroupScope::getPgroupId)
|
||||
.select(SaasPermissionGroupScope::getType)
|
||||
.select(SaasPermissionGroupScope::getScopeType)
|
||||
.in(SaasPermissionGroupScope::getPgroupId, groupIds)
|
||||
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list();
|
||||
@ -148,13 +161,14 @@ public class PermissionGroupImpl implements PermissionGroupService {
|
||||
return true;
|
||||
}).collect(Collectors.toList());
|
||||
Map<Long, List<SaasRolePermissionScopeVO>> permissionGroupScopeMap = saasPermissionGroupScopes.stream().collect(Collectors.groupingBy(SaasPermissionGroupScope::getPgroupId, Collectors.mapping(e -> BeanMapper.copyBean(e, SaasRolePermissionScopeVO.class), Collectors.toList())));
|
||||
|
||||
// 组装填充字段
|
||||
List<SaasPermissionGroupVO> pageList = groupList.stream().map(group -> {
|
||||
SaasPermissionGroupVO pgroupResult = SaasPermissionGroupVO.builder()
|
||||
.id(group.getId())
|
||||
.name(group.getName())
|
||||
.scopes(Optional.ofNullable(permissionGroupScopeMap.get(group.getId())).orElse(new ArrayList<>()))
|
||||
.feature(Optional.ofNullable(pgroupPermissionMap.get(group.getId())).orElse(new ArrayList<>()))
|
||||
.feature( CollectionUtil.newArrayList((pgroupPermissionMap.get(group.getId()))))
|
||||
.createBy(group.getCreateBy())
|
||||
.creatorName(group.getCreatorName())
|
||||
.updateBy(group.getUpdateBy())
|
||||
|
||||
Loading…
Reference in New Issue
Block a user