update 动态参数查询page增加后端字段控制
This commit is contained in:
@@ -2512,11 +2512,11 @@
|
|||||||
高级查询信息集合
|
高级查询信息集合
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:Ewide.Core.Extension.DataFilter.Entity.FilterInfo.SetSearchInfo(Ewide.Core.SearchInfo[])">
|
<member name="M:Ewide.Core.Extension.DataFilter.Entity.FilterInfo.SetSearchInfo(Ewide.Core.SearchInfo[],System.Collections.Generic.IEnumerable{System.String})">
|
||||||
<summary>
|
<summary>
|
||||||
设置查询信息
|
设置查询信息
|
||||||
</summary>
|
</summary>
|
||||||
<param name="searchJson"></param>
|
<param name="filterFields"></param>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:Ewide.Core.SearchInfo.Field">
|
<member name="P:Ewide.Core.SearchInfo.Field">
|
||||||
<summary>
|
<summary>
|
||||||
|
|||||||
@@ -31,30 +31,33 @@ namespace Ewide.Core.Extension.DataFilter.Entity
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置查询信息
|
/// 设置查询信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="searchJson"></param>
|
/// <param name="filterFields"></param>
|
||||||
public void SetSearchInfo(SearchInfo[] searchJson)
|
public void SetSearchInfo(SearchInfo[] searchInfo, IEnumerable<string> filterFields)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
foreach (var elem in searchJson)
|
foreach(var field in filterFields)
|
||||||
{
|
{
|
||||||
|
var elem = searchInfo.FirstOrDefault(m => m.Field.Equals(field,StringComparison.OrdinalIgnoreCase));
|
||||||
|
if (elem == null) continue;
|
||||||
|
|
||||||
var fieldName = elem.Field;
|
var fieldName = elem.Field;
|
||||||
var searchStrs = elem.Value;
|
var searchStrs = elem.Value;
|
||||||
if (searchStrs == null) continue;
|
if (searchStrs == null) continue;
|
||||||
if (searchStrs.Count == 0) continue;
|
if (searchStrs.Count == 0) continue;
|
||||||
|
|
||||||
var searchInfo = new SearchInfo();
|
var searchInfoEntity = new SearchInfo();
|
||||||
searchInfo.Field = fieldName;
|
searchInfoEntity.Field = fieldName;
|
||||||
searchInfo.Type = elem.Type;
|
searchInfoEntity.Type = elem.Type;
|
||||||
var searchStrsNode = elem.Value;
|
var searchStrsNode = elem.Value;
|
||||||
if (searchStrsNode != null)
|
if (searchStrsNode != null)
|
||||||
{
|
{
|
||||||
foreach (var node in searchStrsNode)
|
foreach (var node in searchStrsNode)
|
||||||
{
|
{
|
||||||
searchInfo.Value.Add(node);
|
searchInfoEntity.Value.Add(node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_SearchInfos.Add(searchInfo);
|
_SearchInfos.Add(searchInfoEntity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
|
|||||||
@@ -11,19 +11,13 @@ namespace Ewide.Core.Extension.DataFilter.WebPage
|
|||||||
public class SearchJsonFitlerInfoGetService : IFitlerInfoGetService
|
public class SearchJsonFitlerInfoGetService : IFitlerInfoGetService
|
||||||
{
|
{
|
||||||
protected PageInputBase Input;
|
protected PageInputBase Input;
|
||||||
protected IEnumerable<string> EqualsFields;
|
protected IEnumerable<string> FilterFields;
|
||||||
protected IEnumerable<string> LikeFields;
|
|
||||||
protected IEnumerable<string> DateRangeFields;
|
|
||||||
protected IEnumerable<string> OtherRangeFields;
|
|
||||||
public DynamicParameters sqlParameters = new DynamicParameters();
|
public DynamicParameters sqlParameters = new DynamicParameters();
|
||||||
|
|
||||||
public SearchJsonFitlerInfoGetService(PageInputBase input, IEnumerable<string> equalsFields, IEnumerable<string> likeFields, IEnumerable<string> dateRangeFields, IEnumerable<string> otherRangeFields, object param = null)
|
public SearchJsonFitlerInfoGetService(PageInputBase input, IEnumerable<string> filterFields, object param = null)
|
||||||
{
|
{
|
||||||
Input = input;
|
Input = input;
|
||||||
EqualsFields = equalsFields;
|
FilterFields = filterFields;
|
||||||
LikeFields = likeFields;
|
|
||||||
DateRangeFields = dateRangeFields;
|
|
||||||
OtherRangeFields = otherRangeFields;
|
|
||||||
sqlParameters = new DynamicParameters(param);
|
sqlParameters = new DynamicParameters(param);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -31,7 +25,7 @@ namespace Ewide.Core.Extension.DataFilter.WebPage
|
|||||||
public FilterInfo GetFilterInfo()
|
public FilterInfo GetFilterInfo()
|
||||||
{
|
{
|
||||||
var result = new FilterInfo();
|
var result = new FilterInfo();
|
||||||
result.SetSearchInfo(Input.SearchInfo);
|
result.SetSearchInfo(Input.SearchInfo, FilterFields);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,10 +31,11 @@ namespace Ewide.Core.Extension
|
|||||||
var type = typeof(T);
|
var type = typeof(T);
|
||||||
var hasId = type.GetProperty("Id") != null;
|
var hasId = type.GetProperty("Id") != null;
|
||||||
var hasSort = type.GetProperty("Sort") != null;
|
var hasSort = type.GetProperty("Sort") != null;
|
||||||
|
var hasCreatedTime = type.GetProperty("CreatedTime") != null;
|
||||||
|
|
||||||
var defaultField = hasSort ? "Sort" : (hasId ? "Id" : "");
|
var defaultField = hasCreatedTime ? "CreatedTime" : hasSort ? "Sort" : hasId ? "Id" : "";
|
||||||
|
|
||||||
// 约定默认每张表都有Id排序
|
// 排序优先级 创建时间->序号->ID
|
||||||
var orderStr = string.IsNullOrEmpty(defaultField) ? "" : defaultField + (descSort ? " Desc" : " Asc");
|
var orderStr = string.IsNullOrEmpty(defaultField) ? "" : defaultField + (descSort ? " Desc" : " Asc");
|
||||||
|
|
||||||
// 排序是否可用-排序字段和排序顺序都为非空才启用排序
|
// 排序是否可用-排序字段和排序顺序都为非空才启用排序
|
||||||
@@ -125,9 +126,9 @@ namespace Ewide.Core.Extension
|
|||||||
}
|
}
|
||||||
|
|
||||||
#region DAPPER
|
#region DAPPER
|
||||||
public async static Task<PagedList> QueryPageDataDynamic(this IDapperRepository source, string baseSql, PageInputBase input, object param = null, IEnumerable<string> equalsFields = null, IEnumerable<string> likeFields = null, IEnumerable<string> dateTimeRangeFields = null, IEnumerable<string> otherRangeFields = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null)
|
public async static Task<PagedList> QueryPageDataDynamic(this IDapperRepository source, string baseSql, PageInputBase input, object param = null, IEnumerable<string> filterFields = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null)
|
||||||
{
|
{
|
||||||
SearchJsonFitlerInfoGetService searchJsonFitlerInfoGetService = new SearchJsonFitlerInfoGetService(input, equalsFields, likeFields, dateTimeRangeFields, otherRangeFields, param);
|
SearchJsonFitlerInfoGetService searchJsonFitlerInfoGetService = new SearchJsonFitlerInfoGetService(input, filterFields, param);
|
||||||
var sql = searchJsonFitlerInfoGetService.GetWhereSql(baseSql);
|
var sql = searchJsonFitlerInfoGetService.GetWhereSql(baseSql);
|
||||||
var sqlParam = searchJsonFitlerInfoGetService.sqlParameters;
|
var sqlParam = searchJsonFitlerInfoGetService.sqlParameters;
|
||||||
return await QueryPageData(source, sql, input, sqlParam, transaction, commandTimeout, commandType);
|
return await QueryPageData(source, sql, input, sqlParam, transaction, commandTimeout, commandType);
|
||||||
|
|||||||
Reference in New Issue
Block a user