package com.ruoyi.project.system.service;

import com.ruoyi.project.system.domain.TbForm;
import com.ruoyi.project.system.domain.TbFormModule;
import io.lettuce.core.dynamic.annotation.Param;

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

/**
 * 【请填写功能名称】Service接口
 *
 * @author ruoyi
 * @date 2020-06-16
 */
public interface ITbFormService
{
    /**
     * 根据id查询表信息
     * @param tableName 表名
     * @param id 信息id
     * @return 查询数据
     */
    public Map selAutoTableById(String tableName,Long id);

    public int alterTableName(String oldtableName,String newtableName);
    /**
     * 根据表名查询数据表是否已经存在
     * @param tableName
     * @return
     */
    public int 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 ids 需要删除的【请填写功能名称】ID
     * @return 结果
     */
    int deleteTbFormByIds(String[] action);

    /**
     * 删除表
     *
     * @param ids
     * @return
     */
    int deleteTable1(String[] action);

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


    /**
     * 动态创建表
     *
     * @param tableName
     * @param tbList
     * @return
     */
    int createTable(String action);

    /**
     * 根据表名修改表结构
     *
     * @param tableName
     * @param tbFormModules
     * @return
     */
    int altTalbe(String tableName, String fildes, String vuejson);

    /**
     * 根据表名查寻表数据
     * @param tableName 表名
     * @return 表数据
     */
    List<Map> selAutoTable(String tableName);
    /**
     * 批量删除表结构
     *
     * @param tbFromModule
     * @return
     */
    int altDeleteZD(@Param("tableName") String tableName, @Param("tbFromModule") List<TbFormModule> tbFromModule);


    public String selecltTableBytabName(String tableName);
}
