mirror of https://gitee.com/stylefeng/roses
【7.3.0】【system】增加一个获取菜单的前后台类型接口
parent
42ebe70f75
commit
e99e17c3a2
|
@ -136,4 +136,15 @@ public interface MenuServiceApi {
|
|||
*/
|
||||
List<SysMenuButtonDTO> getTotalMenuButtonIdList(AntdvFrontTypeEnum antdvFrontTypeEnum);
|
||||
|
||||
/**
|
||||
* 获取当前用户拥有的菜单类型
|
||||
* <p>
|
||||
* 判断是拥有前台菜单,还是后台菜单,还是都有
|
||||
*
|
||||
* @param menuIds 用户所拥有的的所有菜单集合
|
||||
* @author fengshuonan
|
||||
* @date 2022/10/13 21:38
|
||||
*/
|
||||
AntdvFrontTypeEnum getUserMenuType(List<Long> menuIds);
|
||||
|
||||
}
|
||||
|
|
|
@ -547,6 +547,35 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
return menuButtonDTOS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AntdvFrontTypeEnum getUserMenuType(List<Long> menuIds) {
|
||||
|
||||
// 用户没有菜单,默认只返回前台菜单类型
|
||||
if (ObjectUtil.isEmpty(menuIds)) {
|
||||
return AntdvFrontTypeEnum.FRONT;
|
||||
}
|
||||
|
||||
// 判断菜单中有多少种类的菜单
|
||||
LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.select(SysMenu::getAntdvFrontType);
|
||||
queryWrapper.in(SysMenu::getMenuId, menuIds);
|
||||
List<SysMenu> sysMenuList = this.list(queryWrapper);
|
||||
|
||||
// 获取各类菜单的数量
|
||||
long frontTypes = sysMenuList.stream().filter(sysMenu -> AntdvFrontTypeEnum.FRONT.getCode().equals(sysMenu.getAntdvFrontType())).count();
|
||||
long backendTypes = sysMenuList.stream().filter(sysMenu -> AntdvFrontTypeEnum.BACKEND.getCode().equals(sysMenu.getAntdvFrontType())).count();
|
||||
|
||||
if (frontTypes > 0 && backendTypes > 0) {
|
||||
return AntdvFrontTypeEnum.TOTAL_SHOW;
|
||||
} else if (frontTypes > 0) {
|
||||
return AntdvFrontTypeEnum.FRONT;
|
||||
} else if (backendTypes > 0) {
|
||||
return AntdvFrontTypeEnum.BACKEND;
|
||||
}
|
||||
|
||||
return AntdvFrontTypeEnum.FRONT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenu> getCurrentUserMenus(List<String> appCodeList, Boolean layuiVisibleFlag, Integer antdvFrontType) {
|
||||
|
||||
|
|
Loading…
Reference in New Issue