From beab3e543704f96d54ccb309df6cb1ddee0cbca4 Mon Sep 17 00:00:00 2001 From: zhangqi <2794379662@qq.com> Date: Wed, 28 Apr 2021 10:01:29 +0800 Subject: [PATCH] =?UTF-8?q?feature:=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Api/Ewide.Core/Ewide.Core.csproj | 1 + Api/Ewide.Core/Extension/PageInputOrder.cs | 33 +++++++++++++++++++ Api/Ewide.Core/Extension/XnInputBase.cs | 15 +++++++++ Api/Ewide.Core/Service/Log/SysOpLogService.cs | 6 ++-- 4 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 Api/Ewide.Core/Extension/PageInputOrder.cs diff --git a/Api/Ewide.Core/Ewide.Core.csproj b/Api/Ewide.Core/Ewide.Core.csproj index 9518416..8d77f6d 100644 --- a/Api/Ewide.Core/Ewide.Core.csproj +++ b/Api/Ewide.Core/Ewide.Core.csproj @@ -28,6 +28,7 @@ + diff --git a/Api/Ewide.Core/Extension/PageInputOrder.cs b/Api/Ewide.Core/Extension/PageInputOrder.cs new file mode 100644 index 0000000..62c789a --- /dev/null +++ b/Api/Ewide.Core/Extension/PageInputOrder.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Ewide.Core.Extension +{ + /// + /// 通用输入帮助类 + /// + public class PageInputOrder + { + /// + /// 排序方式(默认降序) + /// + /// + /// 是否降序 + /// + public static string OrderBuilder(PageInputBase pageInput, bool descSort = true) + { + // 约定默认每张表都有Id排序 + var orderStr = descSort ? "Id Desc" : "Id Asc"; + + // 排序是否可用-排序字段和排序顺序都为非空才启用排序 + if (!string.IsNullOrEmpty(pageInput.SortField) && !string.IsNullOrEmpty(pageInput.SortOrder)) + { + orderStr = $"{pageInput.SortField} {(pageInput.SortOrder == pageInput.DescStr ? "Desc" : "Asc")}"; + } + return orderStr; + } + } +} diff --git a/Api/Ewide.Core/Extension/XnInputBase.cs b/Api/Ewide.Core/Extension/XnInputBase.cs index aea246e..a0ab4ad 100644 --- a/Api/Ewide.Core/Extension/XnInputBase.cs +++ b/Api/Ewide.Core/Extension/XnInputBase.cs @@ -56,5 +56,20 @@ namespace Ewide.Core /// 搜索结束时间 /// public virtual string SearchEndTime { get; set; } + + /// + /// 排序字段 + /// + public virtual string SortField { get; set; } + + /// + /// 排序方法,默认升序,否则降序(配合antd前端,约定参数为 Ascend,Dscend) + /// + public virtual string SortOrder { get; set; } + + /// + /// 降序排序(不要问我为什么是descend不是desc,前端约定参数就是这样) + /// + public virtual string DescStr { get; set; } = "descend"; } } diff --git a/Api/Ewide.Core/Service/Log/SysOpLogService.cs b/Api/Ewide.Core/Service/Log/SysOpLogService.cs index fdf304e..0170b6c 100644 --- a/Api/Ewide.Core/Service/Log/SysOpLogService.cs +++ b/Api/Ewide.Core/Service/Log/SysOpLogService.cs @@ -1,4 +1,5 @@ -using Furion.DatabaseAccessor; +using Ewide.Core.Extension; +using Furion.DatabaseAccessor; using Furion.DatabaseAccessor.Extensions; using Furion.DependencyInjection; using Furion.DynamicApiController; @@ -7,6 +8,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using System; using System.Linq; +using System.Linq.Dynamic.Core; using System.Threading.Tasks; namespace Ewide.Core.Service @@ -41,7 +43,7 @@ namespace Ewide.Core.Service .Where(success, u => u.Success == input.Success.Value) .Where(searchBeginTime, u => u.OpTime >= DateTime.Parse(input.SearchBeginTime.Trim()) && u.OpTime <= DateTime.Parse(input.SearchEndTime.Trim())) - .OrderByDescending(u => u.Id) + .OrderBy(PageInputOrder.OrderBuilder(input)) // 封装了任意字段排序示例 .Select(u => u.Adapt()) .ToPagedListAsync(input.PageNo, input.PageSize); return XnPageResult.PageResult(opLogs);