package com.zkqy.system.service;

import com.zkqy.system.entity.DragTableBtnRelevance;
import com.zkqy.system.entity.vo.DragTableVo;

import java.util.List;

/**
 * 动态格和动态格按钮关联Service接口
 * 
 * @author zkqy
 * @date 2023-11-09
 */
public interface IDragTableBtnRelevanceService 
{
    /**
     * 查询动态格和动态格按钮关联
     * 
     * @param tableKey 动态格和动态格按钮关联主键
     * @return 动态格和动态格按钮关联
     */
    DragTableBtnRelevance selectDragTableBtnRelevanceByTableKey(String tableKey);

    /**
     * 查询动态格和动态格按钮关联列表
     * 
     * @param dragTableBtnRelevance 动态格和动态格按钮关联
     * @return 动态格和动态格按钮关联集合
     */
    List<DragTableBtnRelevance> selectDragTableBtnRelevanceList(DragTableBtnRelevance dragTableBtnRelevance);

    /**
     * 新增动态格和动态格按钮关联
     * 
     * @param dragTableBtnRelevanceList 动态格和动态格按钮关联
     * @return 结果
     */
    int batchInsertDragTableBtnRelevance(List<DragTableBtnRelevance> dragTableBtnRelevanceList);

    /**
     * 修改动态格和动态格按钮关联
     * 
     * @param dragTableVo 动态格VO
     * @return 结果
     */
    void updateDragTableBtnRelevance(DragTableVo dragTableVo);

    /**
     * 批量删除动态格和动态格按钮关联
     * 
     * @param tableKeys 需要删除的动态格和动态格按钮关联主键集合
     * @return 结果
     */
    int deleteDragTableBtnRelevanceByTableKeys(List<String> tableKeys);

    /**
     * 删除动态格和动态格按钮关联信息
     * 
     * @param tableKey 动态格和动态格按钮关联主键
     * @return 结果
     */
    int deleteDragTableBtnRelevanceByTableKey(String tableKey);

    /**
     * 查询按钮是否绑定表格
     * @param btnKeys
     * @return
     */
    int selectBtnKeyBindOrNot(List<String> btnKeys);

    /**
     * 根据按钮key查询
     * @param btnKeys
     * @return
     */
    List<DragTableBtnRelevance> selectDragTableBtnRelevanceByBtnKeys(List<String> btnKeys);
}
