完善大部分问题
This commit is contained in:
@@ -15,6 +15,8 @@ namespace Yi.Framework.Repository
|
||||
{
|
||||
public Task<T> InsertReturnEntityAsync(T entity);
|
||||
public Task<List<S>> StoreAsync<S>(string storeName, object para);
|
||||
public Task<PageModel<List<T>>> CommonPage(QueryCondition pars);
|
||||
public Task<PageModel<List<T>>> CommonPage(QueryPageCondition pars);
|
||||
public Task<List<T>> GetListAsync(QueryCondition pars);
|
||||
public Task<bool> DeleteByLogic(List<Guid> ids);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user