package com.zkqy.system.mapper;

import com.zkqy.system.entity.DragTableBtn;

import java.util.List;

/**
 * 格绑定的自定义按钮Mapper接口
 * 
 * @author zkqy
 * @date 2023-11-07
 */
public interface DragTableBtnMapper {
    /**
     * 查询格绑定的自定义按钮
     * 
     * @param id 格绑定的自定义按钮主键
     * @return 格绑定的自定义按钮
     */
    DragTableBtn selectDragTableBtnById(Long id);

    /**
     * 查询格绑定的自定义按钮列表
     * 
     * @param dragTableBtn 格绑定的自定义按钮
     * @return 格绑定的自定义按钮集合
     */
    List<DragTableBtn> selectDragTableBtnList(DragTableBtn dragTableBtn);

    /**
     * 新增格绑定的自定义按钮
     * 
     * @param dragTableBtn 格绑定的自定义按钮
     * @return 结果
     */
    int insertDragTableBtn(DragTableBtn dragTableBtn);

    /**
     * 修改格绑定的自定义按钮
     * 
     * @param dragTableBtn 格绑定的自定义按钮
     * @return 结果
     */
    int updateDragTableBtn(DragTableBtn dragTableBtn);

    /**
     * 删除格绑定的自定义按钮
     * 
     * @param id 格绑定的自定义按钮主键
     * @return 结果
     */
    int deleteDragTableBtnById(Long id);

    /**
     * 批量删除格绑定的自定义按钮
     * 
     * @param btnKeys 需要删除的数据主键集合
     * @return 结果
     */
    int batchDeleteDragTableBtnByBtnKeys(List<String> btnKeys);

    /**
     * 查询动态表格绑定的自定义按钮
     */
    List<DragTableBtn> selectDragTableBtnListByBtnKey(List<String> btnKeys);

    /**
     * 根据id查询所有子节点数据
     */
    List<DragTableBtn> selectChildNodeById(List<Long> idList);

    /**
     * 是否存在按钮子节点
     *
     * @param btnId 按钮ID
     * @return 结果
     */
    int hasChildByBtnId(Long btnId);

    /**
     * 查询格绑定的自定义按钮
     *
     * @param btnKey 格绑定的自定义按钮唯一标识
     * @return 格绑定的自定义按钮
     */
    DragTableBtn selectDragTableBtnByBtnKey(String btnKey);

    /**
     * 批量新增默认按钮（特定列数据）
     * 
     * @param dragTableBtnList
     * @return
     */
    int insertDragTableBtnList(List<DragTableBtn> dragTableBtnList);
}
