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<SysPermission> addDefaultMenu(List<SysPermission> metaList) {
|
|
Set<SysPermission> set = new HashSet<>(metaList);
|
//默认一级菜单
|
List<SysPermission> topMenus = sysPermissionService.list(Wrappers.<SysPermission>lambdaQuery().in(SysPermission::getName, DefaultMenusEnum.SET));
|
//一级菜单id集合
|
Set<Integer> topMenuIds = topMenus.stream().map(SysPermission::getId).collect(Collectors.toSet());
|
//一级菜单下子菜单
|
List<SysPermission> sonMenus = sysPermissionService.list(Wrappers.<SysPermission>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<Integer> queryRolePermission(String roleId) {
|
|
Set<Integer> set = sysRolePermissionService.list(Wrappers.<SysRolePermission>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<Integer> getDefaultMenusId(Set<Integer> set) {
|
// //一级菜单
|
// List<SysPermission> topMenus = sysPermissionService.listByIds(set);
|
// //子菜单
|
// List<SysPermission> sonMenus = sysPermissionService.list(Wrappers.<SysPermission>lambdaQuery().in(SysPermission::getParentId, set));
|
// Set<SysPermission> metaList = new HashSet<>();
|
// metaList.addAll(topMenus);
|
// metaList.addAll(sonMenus);
|
// return metaList.stream().map(SysPermission::getId).collect(Collectors.toSet());
|
return set;
|
}
|
|
}
|