using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Abp.Extensions; using IwbZero.AppServiceBase; using ShwasherSys.Common.Dto; using ShwasherSys.Lambda; namespace ShwasherSys.Common { public static class ProductModelSearch { /// /// model 查询条件分割后是否有多个 /// /// /// true:有多个 public static bool CheckModelGreaterOneFilter(MultiSearchDto searchDto,ref object kw) { bool result = false; object keyWords = searchDto.KeyWords; if (searchDto.KeyField == "model") { var arrModels = (keyWords + "").Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); result = arrModels.Length > 1; kw = result?arrModels[0]: kw; } return result; } /// /// model 查询条件分割后是否有多个 /// /// /// true:有多个 public static bool CheckModelGreaterOneFilter(MultiSearchDto searchDto) { bool result = false; object keyWords = searchDto.KeyWords; if (searchDto.KeyField == "model") { var arrModels = (keyWords + "").Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); result = arrModels.Length > 1; } return result; } /// /// 获取产品规格的正则表达式 /// /// /// public static string GetModelGreaterOneReg(List searchList) { string result = ""; if (searchList != null && searchList.Count > 0) { foreach (var o in searchList) { if (o.KeyWords.IsNullOrEmpty()) continue; object keyWords = o.KeyWords; if (ProductModelSearch.CheckModelGreaterOneFilter(o)) { result = GetModelGreaterOneReg(o); } } } return result; } /// /// 获取产品规格的正则表达式 /// /// /// public static string GetModelGreaterOneReg(List searchList) { string result = ""; if (searchList != null && searchList.Count > 0) { foreach (var o in searchList) { if (o.KeyWords.IsNullOrEmpty()) continue; object keyWords = o.KeyWords; if (ProductModelSearch.CheckModelGreaterOneFilter(o)) { result = GetModelGreaterOneReg(o); } } } return result; } public static string GetModelGreaterOneReg(MultiSearchDto searchDto) { string result = ""; object keyWords = searchDto.KeyWords; if (searchDto.KeyField == "model") { var arrModels = (keyWords + "").Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); foreach (var item in arrModels) { result += ".*" + item; } } return result; } public static void AddModelFilterToLamb(this List objList,MultiSearchDto searchDto) { object keyWords = searchDto.KeyWords; if (searchDto.KeyField == "model") { //modelQuery = keyWords+""; var arrModels = (keyWords + "").Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (arrModels.Length > 0) { foreach (var arrModel in arrModels) { objList.Add(new LambdaObject { FieldType = (LambdaFieldType)searchDto.FieldType, FieldName = searchDto.KeyField, FieldValue = arrModel, ExpType = (LambdaExpType)searchDto.ExpType, }); } } } } } }