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.SysTabulateDeptEntity;
import com.dxhy.admin.sys.entity.SysTabulateEntity;

/**
 * @author jiaohongyang（焦红阳）
 * @date 2020-09-22
 */
@Mapper
public interface SysTabulateDeptDao extends BaseMapper<SysTabulateDeptEntity> {
    /**
     * 查询 集团关联的菜单信息
     *
     * @param menuId
     *            菜单id
     * @param company
     *            集团编码
     * @return 返回信息
     */
    List<SysTabulateEntity> getTabluteDept(@Param("menuId") long menuId, @Param("company") String company);

    /**
     * 查询集团没有关联的显示列表信息
     *
     * @param menuId
     *            菜单id
     * @param company
     *            集团编码
     * @return 返回信息
     */
    List<SysTabulateEntity> getTabluteNotDept(@Param("menuId") long menuId, @Param("company") String company);

    /**
     * 根据集团信息汇总所分配的菜单显示列表信息
     *
     * @param company
     *            集团编码
     * @return 返回信息
     */
    List<SysTabulateEntity> getTabluteDeptpool(@Param("company") String company);

    /**
     * 修改显示列表信息
     *
     * @param tabulateName
     *            显示列表名
     * @param orderNum
     *            排序
     * @param id
     *            主键id
     * @param showStatus
     *            是否显示
     * @param tabulateCode
     *            列表编码
     * @return 返回
     */
    int updateTabulateDept(@Param("tabulateName") String tabulateName, @Param("orderNum") int orderNum,
        @Param("id") String id, @Param("showStatus") boolean showStatus, @Param("tabulateCode") String tabulateCode);

    /**
     * 获取集团编码信息
     * 
     * @param menuId
     *            菜单id
     * @return 集团编码信息
     */
    List<String> queryDeptCompany(Long menuId);

    /**
     * 返回菜单ID
     * 
     * @param company
     *            集团编码
     * @return 菜单id
     */
    List<Long> getTabluteDeptMneuId(@Param("company") String company);

    /**
     * 查询 集团关联的菜单信息
     *
     * @param company
     *            集团编码
     * @return 返回信息
     */
    List<SysTabulateEntity> getTabluteDeptPoolRefreshCache(@Param("company") String company);
}
