package cn.besteam.modules.system.biz; import cn.besteam.common.constant.DefaultMenusEnum; import cn.besteam.modules.system.entity.SysPermission; import cn.besteam.modules.system.entity.SysRolePermission; import cn.besteam.modules.system.service.ISysPermissionService; import cn.besteam.modules.system.service.ISysRolePermissionService; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; import java.util.stream.Collectors; /** * @author ltri * @date 2020/1/11 11:20 AM */ @Service public class SysPermissionBiz { @Autowired private ISysPermissionService sysPermissionService; @Autowired private ISysRolePermissionService sysRolePermissionService; /** * 添加默认菜单以及其子菜单 */ public List addDefaultMenu(List metaList) { Set set = new HashSet<>(metaList); //默认一级菜单 List topMenus = sysPermissionService.list(Wrappers.lambdaQuery().in(SysPermission::getName, DefaultMenusEnum.SET)); //一级菜单id集合 Set topMenuIds = topMenus.stream().map(SysPermission::getId).collect(Collectors.toSet()); //一级菜单下子菜单 List sonMenus = sysPermissionService.list(Wrappers.lambdaQuery().in(SysPermission::getParentId, topMenuIds)); set.addAll(topMenus); set.addAll(sonMenus); metaList = new ArrayList<>(set); //菜单排序 CollectionUtil.sort(metaList, Comparator.comparing(SysPermission::getSortNo)); return metaList; } /** * 通过角色Id查询角色权限,(添加默认菜单后) * * @param roleId * @return */ public Set queryRolePermission(String roleId) { Set set = sysRolePermissionService.list(Wrappers.lambdaQuery().eq(SysRolePermission::getRoleId, roleId)).stream().map(SysRolePermission::getPermissionId).collect(Collectors.toSet()); //首页菜单ID set.add(6); //新增运营人员菜单权限为空 // if (!set.isEmpty()) { // set.addAll(getDefaultMenusId(set)); // } return set; } /** * 菜单及子菜单id集合 * * @return */ public Set getDefaultMenusId(Set set) { // //一级菜单 // List topMenus = sysPermissionService.listByIds(set); // //子菜单 // List sonMenus = sysPermissionService.list(Wrappers.lambdaQuery().in(SysPermission::getParentId, set)); // Set metaList = new HashSet<>(); // metaList.addAll(topMenus); // metaList.addAll(sonMenus); // return metaList.stream().map(SysPermission::getId).collect(Collectors.toSet()); return set; } }