package com.yonge.cooleshow.auth.service;

import java.util.List;

import com.yonge.cooleshow.auth.api.dto.MenuQueryInfo;
import com.yonge.cooleshow.auth.api.entity.SysMenu;
import com.yonge.toolset.mybatis.service.BaseService;

public interface SysMenuService extends BaseService<Long, SysMenu> {

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

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

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

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