【7.3.0】【system】增加一个获取菜单的前后台类型接口

pull/40/MERGE
fengshuonan 2022-10-25 15:50:42 +08:00
parent 42ebe70f75
commit e99e17c3a2
2 changed files with 40 additions and 0 deletions

View File

@ -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);
}

View File

@ -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) {