package com.yonge.cooleshow.auth.dal.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.yonge.cooleshow.auth.api.entity.SysMenu;
import com.yonge.toolset.mybatis.dal.BaseDAO;

public interface SysMenuDao extends BaseDAO<Long, SysMenu> {


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

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

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

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

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

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