package com.ruoyi.project.system.mapper;

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

import com.ruoyi.project.system.domain.TbForm;
import com.ruoyi.project.system.domain.TbFormModule;
import io.lettuce.core.dynamic.annotation.Param;
/**
 * 【请填写功能名称】Mapper接口
 *
 * @author ruoyi
 * @date 2020-06-16
 */
public interface TbFormMapper
{
    /**
     * 动态修改表名
     * @param
     * @return
     */
    public int alterTableName(@Param("oldtableName") String oldtableName,@Param("newtalbeName") String newtalbeName);
    /**
     * 根据表名查询数据表是否已经存在
     * @param tableName
     * @return
     */
    public String selecltTable(String tableName);
    /**
     * 查询【请填写功能名称】
     *
     * @param id 【请填写功能名称】ID
     * @return 【请填写功能名称】
     */
    public TbForm selectTbFormById(Long id);

    /**
     * 查询【请填写功能名称】列表
     *
     * @param tbForm 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<TbForm> selectTbFormList(TbForm tbForm);

    /**
     * 新增【请填写功能名称】
     *
     * @param tbForm 【请填写功能名称】
     * @return 结果
     */
    public int insertTbForm(TbForm tbForm);

    /**
     * 修改【请填写功能名称】
     *
     * @param tbForm 【请填写功能名称】
     * @return 结果
     */
    public int updateTbForm(TbForm tbForm);

    /**
     * 删除【请填写功能名称】
     *
     * @param id 【请填写功能名称】ID
     * @return 结果
     */
    public int deleteTbFormById(Long id);

   /**
     * 批量删除【请填写功能名称】
     *
     * @param
     * @return 结果
     */
    int deleteTbFormByIds(String[] action);

    /**
     * 删除表
     *
     * @param
     * @return
     */
    int deleteTable(String[] action);
        /**
     * 修改表结构
     *
     * @param tbFromModule
     * @return
     */
    int altTalbe(@Param("tableName") String tableName, @Param("tbFromModule") List<TbFormModule> tbFromModule);

    /**
     * 批量删除表结构
     *
     * @param tbFromModule
     * @return
     */
    int altDeleteZD(@Param("tableName") String tableName, @Param("tbFromModule") List<TbFormModule> tbFromModule);

    /**
     * 根据表名创建表
     *
     * @return
     */
    int createTable(String action);

    int updateTbFormJson(@Param("action")String action,@Param("vueJsonText")String vueJsonText,@Param("vueJsonField")String vueJsonField);
    /**
     * 动态查询表信息
     * @param tableName 表名
     * @return 表信息
     */
    List<Map> selAutoTable(String tableName);

    /**
     * 根据id查询表信息
     * @param tableName 表名
     * @param id 信息id
     * @return 查询数据
     */
    Map selAutoTableById(@Param("tableName") String tableName,@Param("id") Long id);

    public String selecltTableBytabName(String tableName);

}
