From d5bee93c247871613410f3ba06fccceb797923a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=87=AA=E5=B8=A6=E5=A4=A7=E4=BD=AC=E6=B0=94=E5=9C=BA?= <188633308@qq.com> Date: Mon, 31 May 2021 14:54:26 +0800 Subject: [PATCH] =?UTF-8?q?update=20dapper=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Extension/DataFilter/Entity/SearchInfo.cs | 30 +++++-------------- .../WebPage/SearchJsonFitlerInfoGetService.cs | 28 +++++++++++++++-- 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/Api/Ewide.Core/Extension/DataFilter/Entity/SearchInfo.cs b/Api/Ewide.Core/Extension/DataFilter/Entity/SearchInfo.cs index bc99bc0..bed6461 100644 --- a/Api/Ewide.Core/Extension/DataFilter/Entity/SearchInfo.cs +++ b/Api/Ewide.Core/Extension/DataFilter/Entity/SearchInfo.cs @@ -24,33 +24,20 @@ namespace Ewide.Core /// 查询运算符 /// public string Type { get; set; } - - private string _QueryTypeStr; public QueryTypeEnum QueryType { get { - switch (_QueryTypeStr) + return Type switch { - case "=": - case "equal": - return QueryTypeEnum.Equal; - case "<": - case "lessthan": - return QueryTypeEnum.LessThan; - case "<=": - case "lessthanorequal": - return QueryTypeEnum.LessThanOrEqual; - case ">": - case "greaterthan": - return QueryTypeEnum.GreaterThan; - case ">=": - case "greaterthanorequal": - return QueryTypeEnum.GreaterThanOrEqual; - default: - return QueryTypeEnum.Like; - } + "=" or "equal" => QueryTypeEnum.Equal, + "<" or "lessthan" => QueryTypeEnum.LessThan, + "<=" or "lessthanorequal" => QueryTypeEnum.LessThanOrEqual, + ">" or "greaterthan" => QueryTypeEnum.GreaterThan, + ">=" or "greaterthanorequal" => QueryTypeEnum.GreaterThanOrEqual, + _ => QueryTypeEnum.Like, + }; } } @@ -60,7 +47,6 @@ namespace Ewide.Core public SearchInfo() { Value = new List(); - _QueryTypeStr = Type; } } } diff --git a/Api/Ewide.Core/Extension/DataFilter/WebPage/SearchJsonFitlerInfoGetService.cs b/Api/Ewide.Core/Extension/DataFilter/WebPage/SearchJsonFitlerInfoGetService.cs index b0cfa2b..c6bd80e 100644 --- a/Api/Ewide.Core/Extension/DataFilter/WebPage/SearchJsonFitlerInfoGetService.cs +++ b/Api/Ewide.Core/Extension/DataFilter/WebPage/SearchJsonFitlerInfoGetService.cs @@ -45,7 +45,9 @@ namespace Ewide.Core.Extension.DataFilter.WebPage List whereSqls = new List(); foreach (var elem in searchInfoList.Where(m => m != null)) { - whereSqls.Add(GetWhereSqlBuild(elem)); + var r = GetWhereSqlBuild(elem); + if (String.IsNullOrWhiteSpace(r)) continue; + whereSqls.Add(r); } StringBuilder result = new StringBuilder(); @@ -64,10 +66,12 @@ namespace Ewide.Core.Extension.DataFilter.WebPage List whereList = new List(); foreach (var elem in searchInfo.Value) { + if (String.IsNullOrWhiteSpace(elem)) continue; + var parameterName = "@" + searchInfo.Field + Guid.NewGuid().ToString("N"); //AddParameter(parameterName, elem); sqlParameters.Add(parameterName, QueryTypeEnum.Like == searchInfo.QueryType ? "%" + elem + "%" : elem); - whereList.Add(String.Format(sqlT, searchInfo.Field, searchInfo.Type, parameterName)); + whereList.Add(String.Format(sqlT, searchInfo.Field, GetSearchOperatorStr(searchInfo.QueryType), parameterName)); } if (whereList.Count == 0) return String.Empty; var resultT = "({0})"; @@ -75,6 +79,26 @@ namespace Ewide.Core.Extension.DataFilter.WebPage return result; } + private string GetSearchOperatorStr(QueryTypeEnum searchOperator) + { + switch (searchOperator) + { + case QueryTypeEnum.GreaterThan: + return ">"; + case QueryTypeEnum.GreaterThanOrEqual: + return ">="; + case QueryTypeEnum.LessThan: + return "<"; + case QueryTypeEnum.LessThanOrEqual: + return "<="; + case QueryTypeEnum.Like: + return " LIKE "; + default: + return "="; + } + } + + private void AddParameter(string key, object value) { //var parameter = _SqlParameters.ParameterNames.FirstOrDefault(m => m == key);