package com.iailab.module.system.service.app; import com.iailab.module.system.controller.admin.permission.vo.menu.MenuListReqVO; import com.iailab.module.system.controller.admin.permission.vo.menu.MenuSaveVO; import com.iailab.module.system.dal.dataobject.app.AppMenuDO; import java.util.Collection; import java.util.List; /** * 应用菜单 Service 接口 * * @author iailab */ public interface AppMenuService { /** * 创建应用菜单 * * @param createReqVO 应用菜单信息 * @return 创建出来的应用菜单编号 */ Long createMenu(MenuSaveVO createReqVO); /** * 更新应用菜单 * * @param updateReqVO 应用菜单信息 */ void updateMenu(MenuSaveVO updateReqVO); /** * 删除应用菜单 * * @param id 应用菜单编号 */ void deleteMenu(Long id); /** * 获得所有应用菜单列表 * * @return 应用菜单列表 */ List getMenuList(); /** * 获得所有应用菜单列表 * * @return 应用菜单列表(API使用) */ List getMenuList(Integer type); /** * 基于租户,筛选应用菜单列表 * 注意,如果是系统租户,返回的还是全应用菜单 * * @return 应用菜单列表(API使用) */ List getMenuListByTenant(Integer type); /** * 根据父菜单ID查询所有子菜单 * * @return 应用菜单列表(API使用) */ List selectListByParentId(Collection parentIds); /** * 基于租户,筛选应用菜单列表 * 注意,如果是系统租户,返回的还是全应用菜单 * * @param reqVO 筛选条件请求 VO * @return 应用菜单列表 */ List getMenuListByTenant(MenuListReqVO reqVO); /** * 过滤掉关闭的应用菜单及其子应用菜单 * * @param list 应用菜单列表 * @return 过滤后的应用菜单列表 */ List filterDisableMenus(List list); /** * 筛选应用菜单列表 * * @param reqVO 筛选条件请求 VO * @return 应用菜单列表 */ List getMenuList(MenuListReqVO reqVO); /** * 获得权限对应的应用菜单编号数组 * * @param permission 权限标识 * @return 数组 */ List getMenuIdListByPermissionFromCache(String permission); /** * 获得应用菜单 * * @param id 应用菜单编号 * @return 应用菜单 */ AppMenuDO getMenu(Long id); /** * 获得应用菜单数组 * * @param ids 应用菜单编号数组 * @return 应用菜单数组 */ List getMenuList(Collection ids); }