根据权限对象中的菜单key 和 菜单对象中的菜单key,构建菜单与权限的关系
@Override
public void run(ApplicationArguments args) throws Exception {
// 读取菜单配置
MenuContext menuContext = buildMenu();
// 构建权限
List<AuthVO> authList = buildAuth();
// 构建菜单与权限的关系
buildMenuAuth(menuContext.getMenus(), authList);
// 保存资源
sysSourceService.saveSysSource(menuContext);
}
/**
* 构建菜单与权限的关系
*/
private void buildMenuAuth(List<MenuVO> menus, List<AuthVO> authList) {
for (MenuVO menu : menus) {
if (CollUtil.isNotEmpty(menu.getChildMenu())) {
buildMenuAuth(menu.getChildMenu(), authList);
}
List<AuthVO> auths = authList.stream().filter(x -> x.getMenuKey().equals(menu.getMenuKey())).collect(Collectors.toList());
menu.setAuths(auths);
}
}