完善大部分问题

This commit is contained in:
橙子
2022-04-08 23:44:25 +08:00
parent 5fcd4fb5a4
commit feb73174eb
26 changed files with 160 additions and 160 deletions

View File

@@ -34,6 +34,18 @@ namespace Yi.Framework.Repository
return await Db.Insertable(entity).ExecuteReturnEntityAsync();
}
/// <summary>
/// 逻辑多删除
/// </summary>
/// <returns></returns>
public async Task<bool> DeleteByLogic(List<Guid> ids)
{
var entitys = await Db.Queryable<T>().Where(u => ids.Contains(u.Id)).ToListAsync();
entitys.ForEach(u=>u.IsDeleted=true);
return await Db.Updateable(entitys).ExecuteCommandAsync()>0;
}
/// <summary>
/// 调用存储过程
/// </summary>
@@ -46,18 +58,41 @@ namespace Yi.Framework.Repository
return await Db.Ado.UseStoredProcedure().SqlQueryAsync<S>(storeName, para);
}
/// <summary>
/// 多条件查询
/// </summary>
/// <param name="pars"></param>
/// <returns></returns>
public async Task<List<T>> GetListAsync(QueryCondition pars)
{
return await QueryConditionHandler(pars).ToListAsync();
}
/// <summary>
/// 仓储扩展方法:单表查询通用分页
/// </summary>
/// <returns></returns>
public async Task<PageModel<List<T>>> CommonPage(QueryCondition pars)
public async Task<PageModel<List<T>>> CommonPage(QueryPageCondition pars)
{
RefAsync<int> tolCount = 0;
var result = await QueryConditionHandler(new QueryCondition() {OrderBys=pars.OrderBys,Parameters=pars.Parameters } ).ToPageListAsync(pars.Index, pars.Size, tolCount);
return new PageModel<List<T>>
{
Total = tolCount.Value,
Data = result
};
}
private ISugarQueryable<T> QueryConditionHandler(QueryCondition pars)
{
var sugarParamters = pars.Parameters.Select(it => (IConditionalModel)new ConditionalModel()
{
ConditionalType = it.ConditionalType,
FieldName = it.FieldName,
FieldValue = it.FieldValue
ConditionalType = it.Type,
FieldName = it.Key,
FieldValue = it.Value
}).ToList();
var query = Db.Queryable<T>();
if (pars.OrderBys != null)
@@ -67,14 +102,9 @@ namespace Yi.Framework.Repository
query.OrderBy(item.ToSqlFilter());
}
}
var result =await query.Where(sugarParamters).ToPageListAsync(pars.Index, pars.Size, tolCount);
return new PageModel<List<T>>
{
Total = tolCount.Value,
Data = result
};
return query.Where(sugarParamters);
}
}