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,
});
}
}
}
}
}
}