From 625d0912ef21722b63b4dcae48e0d7ca77516710 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=87=AA=E5=B8=A6=E5=A4=A7=E4=BD=AC=E6=B0=94=E5=9C=BA?=
<188633308@qq.com>
Date: Thu, 29 Apr 2021 18:26:59 +0800
Subject: [PATCH] =?UTF-8?q?update=20=E5=B0=81=E8=A3=85=E5=88=86=E9=A1=B5,?=
=?UTF-8?q?=E6=8E=92=E5=BA=8F,=E8=BF=87=E6=BB=A4=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Api/Ewide.Core/Ewide.Core.xml | 13 ------
Api/Ewide.Core/Extension/PageExtensions.cs | 45 +++++++++++++++++++
Api/Ewide.Core/Extension/PageInputOrder.cs | 33 --------------
Api/Ewide.Core/Service/App/SysAppService.cs | 18 +++++---
Api/Ewide.Core/Service/Log/SysOpLogService.cs | 4 +-
.../Service/Log/SysVisLogService.cs | 7 ++-
6 files changed, 60 insertions(+), 60 deletions(-)
create mode 100644 Api/Ewide.Core/Extension/PageExtensions.cs
delete mode 100644 Api/Ewide.Core/Extension/PageInputOrder.cs
diff --git a/Api/Ewide.Core/Ewide.Core.xml b/Api/Ewide.Core/Ewide.Core.xml
index c22dbc4..1c1b82a 100644
--- a/Api/Ewide.Core/Ewide.Core.xml
+++ b/Api/Ewide.Core/Ewide.Core.xml
@@ -2491,19 +2491,6 @@
-
-
- 通用输入帮助类
-
-
-
-
- 排序方式(默认降序)
-
-
- 是否降序
-
-
通用输入扩展参数(带权限)
diff --git a/Api/Ewide.Core/Extension/PageExtensions.cs b/Api/Ewide.Core/Extension/PageExtensions.cs
new file mode 100644
index 0000000..2cca436
--- /dev/null
+++ b/Api/Ewide.Core/Extension/PageExtensions.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Linq.Dynamic.Core;
+using System.Linq.Expressions;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using Furion.DatabaseAccessor;
+using Furion.DatabaseAccessor.Extensions;
+using Mapster;
+
+namespace Ewide.Core.Extension
+{
+ public static class PageExtensions
+ {
+ public static string OrderBuilder(PageInputBase pageInput, bool descSort = true)
+ {
+ var type = typeof(T);
+ var hasId = type.GetProperty("Id") == null;
+
+ var defaultField = hasId ? "Sort" : "Id";
+
+ // 约定默认每张表都有Id排序
+ var orderStr = defaultField + (descSort ? " Desc" : " Asc");
+
+ // 排序是否可用-排序字段和排序顺序都为非空才启用排序
+ if (!string.IsNullOrEmpty(pageInput.SortField) && !string.IsNullOrEmpty(pageInput.SortOrder))
+ {
+ orderStr = $"{pageInput.SortField} {(pageInput.SortOrder == pageInput.DescStr ? "Desc" : "Asc")}";
+ }
+ return orderStr;
+ }
+
+ public static Task> ToPageData(this IQueryable source, PageInputBase input) where T : new()
+ {
+ return source.OrderBy(OrderBuilder(input)).ToPagedListAsync(input.PageNo, input.PageSize);
+ }
+
+ public static Task> ToPageData(this IQueryable source, PageInputBase input) where O : new()
+ {
+ return source.OrderBy(OrderBuilder(input)).Select(u => u.Adapt()).ToPagedListAsync(input.PageNo, input.PageSize);
+ }
+ }
+}
diff --git a/Api/Ewide.Core/Extension/PageInputOrder.cs b/Api/Ewide.Core/Extension/PageInputOrder.cs
deleted file mode 100644
index 62c789a..0000000
--- a/Api/Ewide.Core/Extension/PageInputOrder.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-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/Service/App/SysAppService.cs b/Api/Ewide.Core/Service/App/SysAppService.cs
index 0e415d4..da067b9 100644
--- a/Api/Ewide.Core/Service/App/SysAppService.cs
+++ b/Api/Ewide.Core/Service/App/SysAppService.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;
@@ -69,13 +70,16 @@ namespace Ewide.Core.Service
[HttpGet("/sysApp/page")]
public async Task QueryAppPageList([FromQuery] AppInput input)
{
- var name = !string.IsNullOrEmpty(input.Name?.Trim());
- var code = !string.IsNullOrEmpty(input.Code?.Trim());
var apps = await _sysAppRep.DetachedEntities
- .Where((name, u => EF.Functions.Like(u.Name, $"%{input.Name.Trim()}%")),
- (code, u => EF.Functions.Like(u.Code, $"%{input.Code.Trim()}%")))
- //.Where(u => u.Status == (int)CommonStatus.ENABLE)
- .ToPagedListAsync(input.PageNo, input.PageSize);
+ .Where(
+ !string.IsNullOrEmpty(input.Name?.Trim()),
+ u => EF.Functions.Like(u.Name, $"%{input.Name.Trim()}%")
+ )
+ .Where(
+ !string.IsNullOrEmpty(input.Code?.Trim()),
+ u => EF.Functions.Like(u.Code, $"%{input.Code.Trim()}%")
+ )
+ .ToPageData(input);
return XnPageResult.PageResult(apps);
}
diff --git a/Api/Ewide.Core/Service/Log/SysOpLogService.cs b/Api/Ewide.Core/Service/Log/SysOpLogService.cs
index 0170b6c..3a15f23 100644
--- a/Api/Ewide.Core/Service/Log/SysOpLogService.cs
+++ b/Api/Ewide.Core/Service/Log/SysOpLogService.cs
@@ -43,9 +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()))
- .OrderBy(PageInputOrder.OrderBuilder(input)) // 封装了任意字段排序示例
- .Select(u => u.Adapt())
- .ToPagedListAsync(input.PageNo, input.PageSize);
+ .ToPageData(input);
return XnPageResult.PageResult(opLogs);
}
diff --git a/Api/Ewide.Core/Service/Log/SysVisLogService.cs b/Api/Ewide.Core/Service/Log/SysVisLogService.cs
index fc52f6a..66f0fa0 100644
--- a/Api/Ewide.Core/Service/Log/SysVisLogService.cs
+++ b/Api/Ewide.Core/Service/Log/SysVisLogService.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;
@@ -41,9 +42,7 @@ namespace Ewide.Core.Service
.Where(success, u => u.Success == input.Success.Value)
.Where(searchBeginTime, u => u.VisTime >= DateTime.Parse(input.SearchBeginTime.Trim()) &&
u.VisTime <= DateTime.Parse(input.SearchEndTime.Trim()))
- .OrderByDescending(u => u.Id)
- .Select(u => u.Adapt())
- .ToPagedListAsync(input.PageNo, input.PageSize);
+ .ToPageData(input);
return XnPageResult.PageResult(visLogs);
}