diff --git a/Api/Ewide.Core/Ewide.Core.xml b/Api/Ewide.Core/Ewide.Core.xml index 6a33170..019a8e8 100644 --- a/Api/Ewide.Core/Ewide.Core.xml +++ b/Api/Ewide.Core/Ewide.Core.xml @@ -2512,11 +2512,11 @@ 高级查询信息集合 - + 设置查询信息 - + diff --git a/Api/Ewide.Core/Extension/DataFilter/Entity/FilterInfo.cs b/Api/Ewide.Core/Extension/DataFilter/Entity/FilterInfo.cs index aebdd29..1e3567e 100644 --- a/Api/Ewide.Core/Extension/DataFilter/Entity/FilterInfo.cs +++ b/Api/Ewide.Core/Extension/DataFilter/Entity/FilterInfo.cs @@ -31,30 +31,33 @@ namespace Ewide.Core.Extension.DataFilter.Entity /// /// 设置查询信息 /// - /// - public void SetSearchInfo(SearchInfo[] searchJson) + /// + public void SetSearchInfo(SearchInfo[] searchInfo, IEnumerable filterFields) { 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 searchStrs = elem.Value; if (searchStrs == null) continue; if (searchStrs.Count == 0) continue; - var searchInfo = new SearchInfo(); - searchInfo.Field = fieldName; - searchInfo.Type = elem.Type; + var searchInfoEntity = new SearchInfo(); + searchInfoEntity.Field = fieldName; + searchInfoEntity.Type = elem.Type; var searchStrsNode = elem.Value; if (searchStrsNode != null) { - foreach (var node in searchStrsNode) - { - searchInfo.Value.Add(node); - } - } - _SearchInfos.Add(searchInfo); + foreach (var node in searchStrsNode) + { + searchInfoEntity.Value.Add(node); + } + } + _SearchInfos.Add(searchInfoEntity); } } catch diff --git a/Api/Ewide.Core/Extension/DataFilter/WebPage/SearchJsonFitlerInfoGetService.cs b/Api/Ewide.Core/Extension/DataFilter/WebPage/SearchJsonFitlerInfoGetService.cs index c6bd80e..8daaf05 100644 --- a/Api/Ewide.Core/Extension/DataFilter/WebPage/SearchJsonFitlerInfoGetService.cs +++ b/Api/Ewide.Core/Extension/DataFilter/WebPage/SearchJsonFitlerInfoGetService.cs @@ -11,19 +11,13 @@ namespace Ewide.Core.Extension.DataFilter.WebPage public class SearchJsonFitlerInfoGetService : IFitlerInfoGetService { protected PageInputBase Input; - protected IEnumerable EqualsFields; - protected IEnumerable LikeFields; - protected IEnumerable DateRangeFields; - protected IEnumerable OtherRangeFields; + protected IEnumerable FilterFields; public DynamicParameters sqlParameters = new DynamicParameters(); - public SearchJsonFitlerInfoGetService(PageInputBase input, IEnumerable equalsFields, IEnumerable likeFields, IEnumerable dateRangeFields, IEnumerable otherRangeFields, object param = null) + public SearchJsonFitlerInfoGetService(PageInputBase input, IEnumerable filterFields, object param = null) { Input = input; - EqualsFields = equalsFields; - LikeFields = likeFields; - DateRangeFields = dateRangeFields; - OtherRangeFields = otherRangeFields; + FilterFields = filterFields; sqlParameters = new DynamicParameters(param); } @@ -31,7 +25,7 @@ namespace Ewide.Core.Extension.DataFilter.WebPage public FilterInfo GetFilterInfo() { var result = new FilterInfo(); - result.SetSearchInfo(Input.SearchInfo); + result.SetSearchInfo(Input.SearchInfo, FilterFields); return result; } diff --git a/Api/Ewide.Core/Extension/PageExtensions.cs b/Api/Ewide.Core/Extension/PageExtensions.cs index 124643c..74c9d40 100644 --- a/Api/Ewide.Core/Extension/PageExtensions.cs +++ b/Api/Ewide.Core/Extension/PageExtensions.cs @@ -31,10 +31,11 @@ namespace Ewide.Core.Extension var type = typeof(T); var hasId = type.GetProperty("Id") != 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"); // 排序是否可用-排序字段和排序顺序都为非空才启用排序 @@ -125,9 +126,9 @@ namespace Ewide.Core.Extension } #region DAPPER - public async static Task QueryPageDataDynamic(this IDapperRepository source, string baseSql, PageInputBase input, object param = null, IEnumerable equalsFields = null, IEnumerable likeFields = null, IEnumerable dateTimeRangeFields = null, IEnumerable otherRangeFields = null, IDbTransaction transaction = null, int? commandTimeout = null, CommandType? commandType = null) + public async static Task QueryPageDataDynamic(this IDapperRepository source, string baseSql, PageInputBase input, object param = null, IEnumerable 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 sqlParam = searchJsonFitlerInfoGetService.sqlParameters; return await QueryPageData(source, sql, input, sqlParam, transaction, commandTimeout, commandType);