using System.Data; using JNPF.Common.Dtos.DataBase; using JNPF.Common.Filter; using JNPF.Common.Models.VisualDev; using JNPF.Systems.Entitys.Dto.Database; using JNPF.Systems.Entitys.Model.DataBase; using JNPF.Systems.Entitys.System; using JNPF.VisualDev.Entitys.Dto.VisualDevModelData; using SqlSugar; namespace JNPF.Common.Core.Manager; /// /// 切换数据库抽象. /// public interface IDataBaseManager { /// /// 获取多租户Link. /// /// 租户ID. /// 租户数据库. /// 租户的DBLink实体对象. DbLinkEntity GetTenantDbLink(string tenantId, string tenantName); /// /// 数据库切换. /// /// 数据连接. /// 切库后的SqlSugarClient. SqlSugarScope ChangeDataBase(DbLinkEntity link); /// /// 执行Sql(查询). /// /// 数据连接. /// sql语句. /// Task ExecuteSql(DbLinkEntity link, string strSql); /// /// 条件动态过滤. /// /// 数据连接. /// sql语句. /// 条件是否成立. bool WhereDynamicFilter(DbLinkEntity link, string strSql); /// /// 执行Sql(新增、修改). /// /// 数据连接. /// 表名. /// 数据. /// 主键字段. /// Task ExecuteSql(DbLinkEntity link, string table, List> dicList, string primaryField = ""); /// /// 执行Sql 新增 并返回自增长Id. /// /// 数据连接. /// 表名. /// 数据. /// 主键字段. /// Task ExecuteReturnIdentityAsync(DbLinkEntity link, string table, List> dicList, string primaryField = ""); /// /// 创建表. /// /// 数据连接. /// 表对象. /// 字段对象. /// Task Create(DbLinkEntity link, DbTableModel tableModel, List tableFieldList); /// /// sqlsugar添加表字段. /// /// 表名. /// 表字段集合. void AddTableColumn(DbLinkEntity link ,string tableName, List tableFieldList); /// /// 删除表. /// /// 数据连接. /// 表名. /// bool Delete(DbLinkEntity link, string table); /// /// 修改表. /// /// 数据连接. /// 旧表名称. /// 表对象. /// 字段对象. /// Task Update(DbLinkEntity link, string oldTable, DbTableModel tableModel, List tableFieldList); /// /// 根据链接获取分页数据. /// /// 数据连接. /// Sql语句. /// 页数. /// 列配置. /// 数据权限. /// 输出列名称. /// PageResult> GetInterFaceData(DbLinkEntity link, string strSql, VisualDevModelListQueryInput pageInput, MainBeltViceQueryModel columnDesign, List dataPermissions, Dictionary outColumnName = null); /// /// 表是否存在. /// /// 数据连接. /// 表名. /// bool IsAnyTable(DbLinkEntity link, string table); /// /// 表是否存在数据. /// /// 数据连接. /// 表名. /// bool IsAnyData(DbLinkEntity link, string table); /// /// 表字段是否存在. /// /// 数据连接. /// 表名. /// 表字段名. /// bool IsAnyColumn(DbLinkEntity link, string table, string column); /// /// 获取表字段列表. /// /// 数据连接. /// 表名. /// List GetFieldList(DbLinkEntity? link, string? tableName); /// /// 获取表数据. /// /// 数据连接. /// 表名. /// DataTable GetData(DbLinkEntity link, string tableName); /// /// 根据链接获取数据. /// /// 数据连接. /// Sql语句. /// 参数. /// DataTable GetInterFaceData(DbLinkEntity link, string strSql, params SugarParameter[] parameters); /// /// 根据链接获取数据. /// /// 数据连接. /// sql语句. /// 参数. /// public DataTable GetInterFaceDataCopyNew(DbLinkEntity link, string strSql, params SugarParameter[] parameters); /// /// 获取表信息. /// /// 数据连接. /// 表名. /// DatabaseTableInfoOutput GetDataBaseTableInfo(DbLinkEntity link, string tableName); /// /// 获取数据库表信息. /// /// 数据连接. /// List GetDBTableList(DbLinkEntity link); /// /// 获取数据库表信息. /// /// 数据连接. /// List GetTableInfos(DbLinkEntity link); /// /// 获取数据表分页(SQL语句). /// /// 数据连接. /// 数据SQL. /// 页数. /// 条数. /// Task GetDataTablePage(DbLinkEntity link, string dbSql, int pageIndex, int pageSize); /// /// 获取数据表分页(实体). /// /// T. /// 数据连接. /// 页数. /// 条数. /// Task> GetDataTablePage(DbLinkEntity link, int pageIndex, int pageSize); /// /// 使用存储过程. /// /// 数据连接. /// 存储过程名称. /// 参数. void UseStoredProcedure(DbLinkEntity link, string stored, List parameters); /// /// 测试数据库连接. /// /// 数据连接. /// bool IsConnection(DbLinkEntity link); /// /// 同步数据. /// /// 数据连接. /// 同步数据. /// 表. /// Task SyncData(DbLinkEntity link, DataTable dt, string table); /// /// 同步表操作. /// /// 原数据库. /// 目前数据库. /// 表名称. /// 操作类型. /// 数据类型. void SyncTable(DbLinkEntity linkFrom, DbLinkEntity linkTo, string table, int type, Dictionary fieldType); /// /// 视图数据类型转换. /// /// 字段数据. /// 数据库类型. List ViewDataTypeConversion(List fields, SqlSugar.DbType databaseType); /// /// 转换数据库类型. /// /// 数据库类型. /// SqlSugar.DbType ToDbType(string dbType); /// /// 转换连接字符串. /// /// 数据连接. /// string ToConnectionString(DbLinkEntity dbLinkEntity); /// /// 执行增删改sql. /// /// 数据连接. /// sql语句. /// 参数. void ExecuteCommand(DbLinkEntity link, string strSql, params SugarParameter[] parameters); /// /// 获取表的主键 /// /// /// /// List GetPrimaries(DbLinkEntity? link, string tableName); }