【7.6.0】【sys】【permission】【createSelectTreeStructure】创建初始化应用的信息

pull/55/MERGE
fengshuonan 2023-06-13 17:13:28 +08:00
parent 69d0ccfff3
commit 8a1f08d9ae
2 changed files with 45 additions and 9 deletions

View File

@ -1,6 +1,7 @@
package cn.stylefeng.roses.kernel.sys.modular.role.factory;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.roses.kernel.sys.modular.app.entity.SysApp;
import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenu;
import cn.stylefeng.roses.kernel.sys.modular.role.enums.PermissionNodeTypeEnum;
import cn.stylefeng.roses.kernel.sys.modular.role.pojo.response.RoleBindPermissionItem;
@ -51,19 +52,50 @@ public class PermissionAssignFactory {
// 设置节点类型为2-菜单
roleBindPermissionItem.setPermissionNodeType(PermissionNodeTypeEnum.MENU.getCode());
// 父级id是应用id
roleBindPermissionItem.setNodeParentId(leafMenu.getAppId());
// 默认未选中
roleBindPermissionItem.setChecked(false);
// 设置空子集
roleBindPermissionItem.setChildren(new ArrayList<>());
roleBindPermissionItems.add(roleBindPermissionItem);
}
return roleBindPermissionItems;
}
/**
*
*
* @author fengshuonan
* @since 2023/6/13 17:00
*/
public static List<RoleBindPermissionItem> createApps(List<SysApp> sysApps) {
if (ObjectUtil.isEmpty(sysApps)) {
return new ArrayList<>();
}
ArrayList<RoleBindPermissionItem> appResults = new ArrayList<>();
// 封装响应结果
for (SysApp sysApp : sysApps) {
RoleBindPermissionItem roleBindPermissionItem = new RoleBindPermissionItem();
// 设置应用id
roleBindPermissionItem.setNodeId(sysApp.getAppId());
// 设置应用名称
roleBindPermissionItem.setNodeName(sysApp.getAppName());
// 设置未选中
roleBindPermissionItem.setChecked(false);
// 设置类型为1-应用
roleBindPermissionItem.setPermissionNodeType(PermissionNodeTypeEnum.APP.getCode());
appResults.add(roleBindPermissionItem);
}
return appResults;
}
}

View File

@ -56,18 +56,22 @@ public class PermissionAssignServiceImpl implements PermissionAssignService {
menuLambdaQueryWrapper.orderByAsc(SysMenu::getMenuSort);
List<SysMenu> totalMenus = this.sysMenuService.list(menuLambdaQueryWrapper);
// 组装所有的叶子节点菜单
// 组装所有的叶子节点菜单【初始化菜单】
List<RoleBindPermissionItem> totalResultMenus = PermissionAssignFactory.createPermissionMenus(totalMenus);
// 查询菜单对应的所有应用
Set<String> appIdList = totalResultMenus.stream().map(RoleBindPermissionItem::getNodeParentId).collect(Collectors.toSet());
Set<Long> appIdList = totalMenus.stream().map(SysMenu::getAppId).collect(Collectors.toSet());
LambdaQueryWrapper<SysApp> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(SysApp::getAppId, appIdList);
queryWrapper.select(SysApp::getAppId, SysApp::getAppName);
List<SysApp> totalAppList = sysAppService.list(queryWrapper);
// 组装所有的应用节点信息
// 组装所有的应用节点信息【初始化应用】
List<RoleBindPermissionItem> totalResultApps = PermissionAssignFactory.createApps(totalAppList);
// 组装所有的应用节点信息
// 获取所有的菜单上的功能