package com.ym.mec.auth.service;

import com.ym.mec.auth.api.dto.MenuQueryInfo;
import com.ym.mec.auth.api.entity.SysMenu;
import com.ym.mec.common.page.PageInfo;
import com.ym.mec.common.service.BaseService;

import java.util.List;

public interface SysMenuService extends BaseService<Integer, SysMenu> {

    /**
     * 根据角色编号查询拥有的菜单列表
     * @param roleId
     * @return
     */
    List<SysMenu> getMenusByRoleId(Integer roleId);

    /**
     * 根据用户编号查询用户可访问菜单
     * @param menuQueryInfo
     * @return
     */
    List<SysMenu> findByUser(MenuQueryInfo menuQueryInfo);

    /**
     * 根据权限标识查菜单
     * @param permission
     * @return
     */
    SysMenu findMenuByPermission(String permission);

    /**
     * 删除菜单列表，包含所有子节点
     * @param id
     */
    void recursiveDel(Integer id);
}