package com.dxhy.admin.sys.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dxhy.admin.sys.entity.SysMenuEntity;

/**
 * 菜单管理
 *
 * @author jiaohongyang
 */
@Mapper
public interface SysMenuDao extends BaseMapper<SysMenuEntity> {

    /**
     * 根据父菜单，查询子菜单
     *
     * @param parentId
     *            父菜单ID
     * @return 菜单信息
     */
    List<SysMenuEntity> queryListParentId(@Param("parentId") Long parentId);

    /**
     * 获取不包含按钮的菜单列表
     *
     * @return 菜单信息
     */
    List<SysMenuEntity> queryNotButtonList();

    /**
     * 根据用户id 查询所关联的菜单
     *
     * @param userId
     *            用户id
     * @return 菜单信息
     */
    List<SysMenuEntity> queryMenuRoleList(@Param("userId") Long userId);

    /**
     * 所有菜单信息
     *
     * @return 菜单信息
     */

    List<SysMenuEntity> queryList();

    /**
     * 根据菜单地址获取菜单信息
     *
     * @param menuUrl
     *            菜单url
     * @return 菜单信息
     */
    List<SysMenuEntity> queryMenuLog(String menuUrl);

    /**
     * 根据url 获取菜单信息
     *
     * @param url
     *            url
     * @param type
     *            类型
     * @return 菜单信息
     */
    SysMenuEntity queryMenuType(String url, int type, String systemCode);

    /**
     * 获取集团编码关联菜单信息
     * 
     * @param company
     *            集团编码
     * @return 菜单信息
     */
    List<SysMenuEntity> queryMenuRoleCompanyList(String company);

    /**
     * 根据菜单id获取显示列表id
     *
     * @param menuIds
     *            菜单ids
     * @return 显示列表ID
     */
    List<Long> queryIdList(List<Long> menuIds);
}
