提交 99781377 作者: obcy

优化

上级 a288f6f9
......@@ -2,10 +2,8 @@ package com.zzsn.knowbase.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zzsn.knowbase.entity.*;
......@@ -262,34 +260,34 @@ public class KbKnowledgeProjectServiceImpl extends ServiceImpl<KbKnowledgeProjec
.in(KbKnowledgeProject::getId,hasViewId));
}
//查询用户在每个节点对应的权限
// Map<Long, KbRolePermissionMap> rolePermissionMap = rolePermissionMapService.list().stream().collect(Collectors.toMap(KbRolePermissionMap::getId, e -> e));
// Map<String, KbPermissions> permissions = permissionsService.list().stream().collect(Collectors.toMap(KbPermissions::getId, e -> e));
// List<String> ids = allknowProjectPermissId.stream().map(KbKnowledgeProject::getId).collect(Collectors.toList());
Map<String, KbKnowledgeProject> collect = allknowProjectPermissId.stream().collect(Collectors.toMap(KbKnowledgeProject::getId, e -> e));
// List<KbUserRoleMap> allIdsRoles = kbUserRoleMapService.list(Wrappers.<KbUserRoleMap>lambdaQuery().eq(KbUserRoleMap::getUserId, userId).in(KbUserRoleMap::getKnowledgeProjectId, ids));
//// Map<String, KbUserRoleMap> collect1 = allIdsRoles.stream().collect(Collectors.toMap(KbUserRoleMap::getKnowledgeProjectId, e -> e));
// Map<String, List<KbUserRoleMap>> collect1 = allIdsRoles.stream().collect(Collectors.groupingBy(KbUserRoleMap::getKnowledgeProjectId));
// Map<String, List<KbRole>> collect2 = new HashMap<>();
// collect1.forEach((k,v)->{
// List<String> collect3 = v.stream().map(KbUserRoleMap::getRoleId).collect(Collectors.toList());
// });
// List<KbRolePermissionMap> permissionMaps = rolePermissionMapService.list(Wrappers.<KbRolePermissionMap>lambdaQuery().in(KbRolePermissionMap::getRoleId, Arrays.asList(one.getRoleId().split(","))));
// List<KbPermissions> permissions = permissionsService.list(Wrappers.<KbPermissions>lambdaQuery().in(KbPermissions::getId, permissionMaps.stream().map(KbRolePermissionMap::getPermissionId).collect(Collectors.toList())));
List<UserKnowPermissionVo> res = authorizedUserMapper.getUserPermission(userInfo.getId());
kbKnowledgeProjects.forEach(e->{
KbKnowledgeProject kbKnowledgeProject = collect.get(e.getId());
if (ObjectUtil.isNotEmpty(kbKnowledgeProject)){
QueryWrapper<KbAuthorizedUser> query = new QueryWrapper<>();
query.eq("a.user_id",userId);
query.eq("a.knowledge_project_id",e.getId());
e.setRoles(userRoleMapMapper.getRoles(query));
}
if (CollectionUtil.isNotEmpty(e.getRoles())){
List<KbRolePermissionMap> permissionMaps = rolePermissionMapService.list(Wrappers.<KbRolePermissionMap>lambdaQuery().in(KbRolePermissionMap::getRoleId, e.getRoles().stream().map(KbRole::getId).collect(Collectors.toList())));
List<KbPermissions> permissions = permissionsService.list(Wrappers.<KbPermissions>lambdaQuery().in(KbPermissions::getId, permissionMaps.stream().map(KbRolePermissionMap::getPermissionId).collect(Collectors.toList())));
e.setPermissions(permissions);
List<UserKnowPermissionVo> collect1 = res.stream().filter(f -> f.getKnowledgeProjectId().equals(e.getId())).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(collect1)){
Map<String, List<UserKnowPermissionVo>> collect2 = collect1.stream().collect(Collectors.groupingBy(UserKnowPermissionVo::getRoleId));
List<KbRole> roles = new ArrayList<>();
List<KbPermissions> permissionsList = new ArrayList<>();
collect2.forEach((key,v)->{
KbRole kbRole = new KbRole();
kbRole.setRoleCode(v.get(0).getRoleCode());
kbRole.setRoleName(v.get(0).getRoleName());
kbRole.setId(key);
roles.add(kbRole);
v.forEach(p -> {
KbPermissions kbPermission = new KbPermissions();
kbPermission.setId(p.getPermissionId());
kbPermission.setPermissionCode(p.getPermissionCode());
kbPermission.setPermissionName(p.getPermissionName());
permissionsList.add(kbPermission);
});
});
e.setRoles(roles);
e.setPermissions(permissionsList);
}
});
return Result.OK(kbKnowledgeProjects);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论