package com.ym.mec.auth.dal.dao;

import com.ym.mec.auth.api.entity.SysMenu;
import com.ym.mec.common.dal.BaseDAO;
import com.ym.mec.common.page.PageInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface SysMenuDao extends BaseDAO<Integer, SysMenu> {


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

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

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

    /**
     * 获取用户菜单树状结构
     * @param menuId
     * @param delFlag
     * @param userId
     * @return
     */
    List<SysMenu> findByParentId(@Param("parentId") Integer menuId,@Param("delFlag") String delFlag,@Param("userId") Integer userId,@Param("hid") Integer hid);

    /**
     * 获取所有菜单列表
     * @param menuId
     * @param delFlag
     * @return
     */
    List<SysMenu> findList(@Param("parentId") Integer menuId,@Param("delFlag") String delFlag,@Param("hid") Integer hid);

    /**
     * 批量删除菜单列表
     * @param collect
     */
    void batchDel(List<Integer> collect);
}