using System.Data; using System.Linq.Expressions; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using SqlSugar; using Tiobon.Core.Common; using Tiobon.Core.Model; namespace Tiobon.Core.IServices.BASE { public interface IBaseServices where TEntity : class { ISqlSugarClient Db { get; } Task QueryById(object objId); Task QueryById(object objId, bool blnUseCache = false); Task> QueryByIDs(object[] lstIds); Task Add(TEntity model); Task> Add(List listEntity); Task DeleteById(object id); Task Delete(TEntity model); Task DeleteByIds(object[] ids); Task Update(TEntity model); Task Update(List model); Task Update(TEntity entity, string where); Task Update(object operateAnonymousObjects); Task Update(TEntity entity, List lstColumns = null, List lstIgnoreColumns = null, string where = ""); Task> Query(); Task> Query(string where); Task> Query(Expression> whereExpression); Task> Query(Expression> whereExpression, string orderByFields); Task> Query(Expression> expression); Task> Query(Expression> expression, Expression> whereExpression, string orderByFields); Task> Query(Expression> whereExpression, Expression> orderByExpression, bool isAsc = true); Task> Query(string where, string orderByFields); Task> QuerySql(string sql, SugarParameter[] parameters = null); Task QueryTable(string sql, SugarParameter[] parameters = null); Task> Query(Expression> whereExpression, int top, string orderByFields); Task> Query(string where, int top, string orderByFields); Task> Query( Expression> whereExpression, int pageIndex, int pageSize, string orderByFields); Task> Query(string where, int pageIndex, int pageSize, string orderByFields); Task> QueryPage(Expression> whereExpression, int pageIndex = 1, int pageSize = 20, string orderByFields = null); Task> QueryMuch( Expression> joinExpression, Expression> selectExpression, Expression> whereLambda = null) where T : class, new(); Task> QueryPage(PaginationModel pagination); #region 分表 Task QueryByIdSplit(object objId); Task> AddSplit(TEntity entity); Task DeleteSplit(TEntity entity, DateTime dateTime); Task UpdateSplit(TEntity entity, DateTime dateTime); Task> QueryPageSplit(Expression> whereExpression, DateTime beginTime, DateTime endTime, int pageIndex = 1, int pageSize = 20, string orderByFields = null); #endregion } /// /// 增删改查接口 /// /// /// /// /// public interface IBaseServices where TEntity : class { ISqlSugarClient Db { get; } Task AnyAsync(object objId); Task AnyAsync(Expression> whereExpression); /// /// 根据ID查询实体数据是否存在 /// /// /// Task QueryById(object objId); Task QueryById(object objId, bool blnUseCache = false); Task> QueryByIDs(object[] lstIds); Task> QueryForm(QueryForm body); Task Add(TInsertDto model); Task> Add(List listEntity); Task DeleteById(object id); Task DeleteById1(object id); Task Delete(TEntity model); Task DeleteByIds(object[] ids); Task DeleteByIds1(long[] ids); /// /// 根据表达式,删除实体 /// /// /// Task Delete(Expression> whereExpression); Task Update(long Id, TEditDto model); Task Update(Dictionary editModels); Task Update(List model); Task Update(TEntity entity, string where); Task Update(object operateAnonymousObjects); Task Update(TEntity entity, List lstColumns = null, List lstIgnoreColumns = null, string where = ""); Task> Query(); Task> Query(string where); Task> Query(Expression> whereExpression); Task> QueryDto(Expression> whereExpression); Task QuerySingleDto(Expression> whereExpression); Task> Query(Expression> whereExpression, string orderByFields); Task> Query(Expression> expression); Task> Query(Expression> expression, Expression> whereExpression, string orderByFields); Task> Query(Expression> whereExpression, Expression> orderByExpression, bool isAsc = true); Task> Query(string where, string orderByFields); Task> QuerySql(string sql, SugarParameter[] parameters = null); Task QueryTable(string sql, SugarParameter[] parameters = null); Task> Query(Expression> whereExpression, int top, string orderByFields); Task> Query(string where, int top, string orderByFields); Task> Query( Expression> whereExpression, int pageIndex, int pageSize, string orderByFields); Task> Query(string where, int pageIndex, int pageSize, string orderByFields); Task> QueryPage(Expression> whereExpression, int pageIndex = 1, int pageSize = 20, string orderByFields = null); Task> QueryFilterPage([FromBody] QueryBody body); Task> QueryFilterPage(QueryBody filter, string condition); Task> ExportExcel([FromBody] QueryBody body); Task> ImportExcel(IFormFile file); Task> QueryMuch( Expression> joinExpression, Expression> selectExpression, Expression> whereLambda = null) where T : class, new(); Task> QueryPage(PaginationModel pagination); #region 分表 Task QueryByIdSplit(object objId); Task> AddSplit(TEntity entity); Task DeleteSplit(TEntity entity, DateTime dateTime); Task UpdateSplit(TEntity entity, DateTime dateTime); Task> QueryPageSplit(Expression> whereExpression, DateTime beginTime, DateTime endTime, int pageIndex = 1, int pageSize = 20, string orderByFields = null); #endregion } }