huanghongfeng
2025-01-24 829eabf256e29392ca63f6da48829dba3b075dfe
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/PageDataOptions.cs
@@ -5,6 +5,7 @@
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core.Const;
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
using WIDESEA_Core.Utilities;
@@ -72,7 +73,27 @@
                    LinqExpressionType expressionType = searchParametersList[i].DisplayType.GetLinqCondition();
                    if (expressionType == LinqExpressionType.Equal)
                    {
                        where += $"{searchParametersList[i].Name} = '{results[j].Item3}'";
                        where += $"{searchParametersList[i].Name} {HtmlElementType.Equal} '{results[j].Item3}'";
                    }
                    else if (expressionType == LinqExpressionType.ThanOrEqual)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.ThanOrEqual} '{searchParametersList[i].Value}'";
                    }
                    else if (expressionType == LinqExpressionType.LessThanOrEqual)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.LessOrequal} '{searchParametersList[i].Value}'";
                    }
                    else if (expressionType == LinqExpressionType.GreaterThan)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.GT} '{searchParametersList[i].Value}'";
                    }
                    else if (expressionType == LinqExpressionType.LessThan)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.LT} '{searchParametersList[i].Value}'";
                    }
                    else if (expressionType == LinqExpressionType.Contains)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.like} '%{searchParametersList[i].Value}%'";
                    }
                    else
                    {
@@ -97,26 +118,42 @@
        public Dictionary<string, OrderByType> GetPageDataSort(PropertyInfo[] propertyInfo)
        {
            if (!string.IsNullOrEmpty(Sort))
            try
            {
                if (Sort.Contains(","))
                if (!string.IsNullOrEmpty(Sort))
                {
                    List<string> sortArr = Sort.Split(",").Where(x => propertyInfo.Any(p => p.Name == x)).ToList();
                    Dictionary<string, OrderByType> sortDic = new Dictionary<string, OrderByType>();
                    foreach (var item in sortArr)
                    if (Sort.Contains(","))
                    {
                        sortDic[item] = Order?.ToLower() == OrderByType.Asc.ToString() ? OrderByType.Asc : OrderByType.Desc;
                    }
                    return sortDic;
                }
                else if (propertyInfo.Any(x => x.Name == Sort.FirstLetterToLower() || x.Name == Sort.FirstLetterToUpper()))
                {
                    return new Dictionary<string, OrderByType> {
                        List<string> sortArr = Sort.Split(",").Where(x => propertyInfo.Any(p => p.Name == x)).ToList();
                        Dictionary<string, OrderByType> sortDic = new Dictionary<string, OrderByType>();
                        foreach (var item in sortArr)
                        {
                            Sort,Order?.ToLower() == OrderByType.Asc.ToString() ? OrderByType.Asc : OrderByType.Desc
                        } };
                            sortDic[item] = Order?.ToLower() == OrderByType.Asc.ToString() ? OrderByType.Asc : OrderByType.Desc;
                        }
                        return sortDic;
                    }
                    else if (propertyInfo.Any(x => x.Name == Sort.FirstLetterToLower() || x.Name == Sort.FirstLetterToUpper()))
                    {
                        Dictionary<string, OrderByType> result = new Dictionary<string, OrderByType>();
                        if (Order == "asc")
                        {
                            result.Add(Sort, OrderByType.Asc);
                        }
                        else
                        {
                            result.Add(Sort, OrderByType.Desc);
                        }
                        return result;
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return new Dictionary<string, OrderByType> { { "CreateDate", Order?.ToLower() == OrderByType.Asc.ToString() ? OrderByType.Asc : OrderByType.Desc } };
        }
    }