package com.inspect.system.service;

import com.inspect.system.domain.SysMenu;
import com.inspect.system.domain.vo.RouterVo;
import com.inspect.system.domain.vo.TreeSelect;

import java.util.List;
import java.util.Set;

public interface ISysMenuService {
    List<SysMenu> selectMenuList(Long userId);

    List<SysMenu> selectMenuList(SysMenu sysMenu, Long userId);

    List<SysMenu> selectMenuListAndFilter(SysMenu sysMenu, Long userId);

    Set<String> selectMenuPermsByUserId(Long userId);

    List<SysMenu> selectMenuTreeByUserId(Long userId);

    List<Long> selectMenuListByRoleId(Long roleId);

    List<RouterVo> buildMenus(List<SysMenu> sysMenuList);

    List<SysMenu> buildMenuTree(List<SysMenu> sysMenuList);

    List<TreeSelect> buildMenuTreeSelect(List<SysMenu> sysMenuList);

    SysMenu selectMenuById(Long id);

    boolean hasChildByMenuId(Long menuId);

    boolean checkMenuExistRole(Long menuId);

    int insertMenu(SysMenu sysMenu);

    int updateMenu(SysMenu sysMenu);

    int deleteMenuById(Long id);

    String checkMenuNameUnique(SysMenu sysMenu);
}
