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