package com.dxhy.admin.sys.service;

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

import com.baomidou.mybatisplus.extension.service.IService;
import com.dxhy.admin.sys.entity.SysTabulateEntity;
import com.dxhy.admin.sys.model.TabulateMenuModel;
import com.dxhy.common.utils.PageUtils;

/**
 * @author jiaohongyang（焦红阳）
 * @date 2020-09-22
 */
public interface SysTabulateService extends IService<SysTabulateEntity> {
    /**
     * 保存 显示列表信息
     *
     * @param dataList
     *            显示列表信息
     * @return 返回信息
     */
    int saveTablate(String dataList);

    /**
     * 查询条数
     *
     * @param menuCode
     *            菜单编码
     * @param menuId
     *            菜单id
     * @param tabulateName
     *            显示名称
     * @param tabulateCode
     *            显示编码
     * @return 查询数量
     */
    int getTablateCount(String menuCode, String menuId, String tabulateName, String tabulateCode);

    /**
     * 修改显示列表信息
     *
     * @param sysTabulateEntity
     *            显示列表信息
     * @return 返回信息
     */
    int updateTablate(SysTabulateEntity sysTabulateEntity);

    /**
     * 删除 显示列表信息
     *
     * @param tabulateId
     *            列表id
     * @return 显示信息
     */
    int deleteTabulate(long tabulateId);

    /**
     * 查询显示列表信息
     *
     * @param menuCode
     *            菜单编码
     * @param menuId
     *            菜单id
     * @param tabulateName
     *            显示名称
     * @param tabulateCode
     *            显示编码
     * @param defaultStatus
     *            是否默认显示
     * @return 显示列表信息
     */
    List<SysTabulateEntity> getTablate(String menuCode, String menuId, String tabulateName, String tabulateCode,
        boolean defaultStatus);

    /**
     * 分页查询显示列表信息
     *
     * @param params
     *            查询信息
     * @return 显示信息
     */
    PageUtils queryPage(Map<String, Object> params);

    /**
     * 取消勾选、取消序号
     *
     * @param params
     *            查询条件
     * @param type
     *            类型
     * @return 返回
     */
    boolean cancel(Map<String, Object> params, String type);

    /**
     * 更新显示列表ID，适用于ITAX部署
     * 
     * @param menuIdModels
     *            菜单ID model
     * 
     */
    void updateTabulateMenuId(List<TabulateMenuModel> menuIdModels);

}
