From 7c6dcbbe38b960cfe84a714174c6ae55b90b1fb8 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Fri, 13 Oct 2023 18:02:33 +0800
Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E9=80=80=E5=8C=85=EF=BC=8C=E6=9F=A5?=
=?UTF-8?q?=E8=AF=A2=E4=B8=B4=E6=97=B6=E6=96=B9=E6=A1=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IRaCIS.Core.Application.csproj | 34 +++++++--------
.../Service/Document/TrialDocumentService.cs | 34 ++++++++++++---
.../IRaCIS.Core.Infra.EFCore.csproj | 18 ++++----
.../Repository/IRaCISContextExtension.cs | 2 +-
.../IRaCIS.Core.Infrastructure.csproj | 2 +-
.../_IRaCIS/IQueryablePageListExtensions.cs | 39 +++++++++++++++++
IRaCIS.Core.Test/IRaCIS.Core.Test.csproj | 1 -
IRaCIS.Core.Test/Test/Audit/AuditContext.cs | 43 -------------------
8 files changed, 94 insertions(+), 79 deletions(-)
delete mode 100644 IRaCIS.Core.Test/Test/Audit/AuditContext.cs
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj b/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj
index 9773ae528..b9927d32f 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj
@@ -15,14 +15,14 @@
- 1701;1702;1591;1587
+ 1701;1702;1591;1587
-
+
@@ -50,16 +50,16 @@
-
- PreserveNewest
- true
- PreserveNewest
-
-
- Always
- true
- PreserveNewest
-
+
+ PreserveNewest
+ true
+ PreserveNewest
+
+
+ Always
+ true
+ PreserveNewest
+
@@ -76,16 +76,14 @@
-
-
-
+
- true
+ true
- true
+ true
@@ -94,7 +92,7 @@
- true
+ true
diff --git a/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs b/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs
index 5ba66e44d..e1d7999e2 100644
--- a/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs
+++ b/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs
@@ -203,13 +203,35 @@ namespace IRaCIS.Core.Application.Services
};
- var unionQuery = systemDocumentQueryable.Union(trialDocQueryable)
- .WhereIf(!string.IsNullOrEmpty(querySystemDocument.Name), t => t.Name.Contains(querySystemDocument.Name))
- .WhereIf(querySystemDocument.FileTypeId != null, t => t.FileTypeId == querySystemDocument.FileTypeId)
- .WhereIf(querySystemDocument.IsSign == true, t => t.ConfirmTime != null)
- .WhereIf(querySystemDocument.IsSign == false, t => t.ConfirmTime == null);
+ #region 报错 奇怪的bug
+ //var unionQuery = systemDocumentQueryable.Union(trialDocQueryable)
+ // .WhereIf(!string.IsNullOrEmpty(querySystemDocument.Name), t => t.Name.Contains(querySystemDocument.Name))
+ // .WhereIf(querySystemDocument.FileTypeId != null, t => t.FileTypeId == querySystemDocument.FileTypeId)
+ // .WhereIf(querySystemDocument.IsSign == true, t => t.ConfirmTime != null)
+ // .WhereIf(querySystemDocument.IsSign == false, t => t.ConfirmTime == null);
- var result = await unionQuery.ToPagedListAsync(querySystemDocument.PageIndex, querySystemDocument.PageSize, querySystemDocument.SortField, querySystemDocument.Asc);
+ //var result = await unionQuery.ToPagedListAsync(querySystemDocument.PageIndex, querySystemDocument.PageSize, querySystemDocument.SortField, querySystemDocument.Asc);
+ #endregion
+
+ #region 临时方案
+
+ var list1 = systemDocumentQueryable
+ .WhereIf(!string.IsNullOrEmpty(querySystemDocument.Name), t => t.Name.Contains(querySystemDocument.Name))
+ .WhereIf(querySystemDocument.FileTypeId != null, t => t.FileTypeId == querySystemDocument.FileTypeId)
+ .WhereIf(querySystemDocument.IsSign == true, t => t.ConfirmTime != null)
+ .WhereIf(querySystemDocument.IsSign == false, t => t.ConfirmTime == null).ToList();
+
+ var list2 = trialDocQueryable
+ .WhereIf(!string.IsNullOrEmpty(querySystemDocument.Name), t => t.Name.Contains(querySystemDocument.Name))
+ .WhereIf(querySystemDocument.FileTypeId != null, t => t.FileTypeId == querySystemDocument.FileTypeId)
+ .WhereIf(querySystemDocument.IsSign == true, t => t.ConfirmTime != null)
+ .WhereIf(querySystemDocument.IsSign == false, t => t.ConfirmTime == null).ToList();
+
+ var list3 = list1.Union(list2).ToList();
+
+ var result = list3.ToPagedList(querySystemDocument.PageIndex, querySystemDocument.PageSize, querySystemDocument.SortField, querySystemDocument.Asc);
+
+ #endregion
var needSignTrialDocCount = await _trialDocumentRepository.AsQueryable(true).Where(t => t.TrialId== querySystemDocument.TrialId && t.Trial.TrialStatusStr != StaticData.TrialState.TrialStopped)
.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
diff --git a/IRaCIS.Core.Infra.EFCore/IRaCIS.Core.Infra.EFCore.csproj b/IRaCIS.Core.Infra.EFCore/IRaCIS.Core.Infra.EFCore.csproj
index 5cad3e7b0..d848f33c0 100644
--- a/IRaCIS.Core.Infra.EFCore/IRaCIS.Core.Infra.EFCore.csproj
+++ b/IRaCIS.Core.Infra.EFCore/IRaCIS.Core.Infra.EFCore.csproj
@@ -17,15 +17,15 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/IRaCIS.Core.Infra.EFCore/Repository/IRaCISContextExtension.cs b/IRaCIS.Core.Infra.EFCore/Repository/IRaCISContextExtension.cs
index 547a5119b..5428578f6 100644
--- a/IRaCIS.Core.Infra.EFCore/Repository/IRaCISContextExtension.cs
+++ b/IRaCIS.Core.Infra.EFCore/Repository/IRaCISContextExtension.cs
@@ -157,7 +157,7 @@ namespace IRaCIS.Core.Infra.EFCore
{
if (deleteFilter == null) throw new ArgumentNullException(nameof(deleteFilter));
- return await _dbContext.Set().IgnoreQueryFilters().Where(deleteFilter).ExecuteDeleteAsync() > 0;
+ return await _dbContext.Set().IgnoreQueryFilters().Where(deleteFilter).BatchDeleteAsync() > 0;
}
diff --git a/IRaCIS.Core.Infrastructure/IRaCIS.Core.Infrastructure.csproj b/IRaCIS.Core.Infrastructure/IRaCIS.Core.Infrastructure.csproj
index 8007ae0ee..533a51994 100644
--- a/IRaCIS.Core.Infrastructure/IRaCIS.Core.Infrastructure.csproj
+++ b/IRaCIS.Core.Infrastructure/IRaCIS.Core.Infrastructure.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/IRaCIS.Core.Infrastructure/_IRaCIS/IQueryablePageListExtensions.cs b/IRaCIS.Core.Infrastructure/_IRaCIS/IQueryablePageListExtensions.cs
index bb102cd7d..2fa3db58a 100644
--- a/IRaCIS.Core.Infrastructure/_IRaCIS/IQueryablePageListExtensions.cs
+++ b/IRaCIS.Core.Infrastructure/_IRaCIS/IQueryablePageListExtensions.cs
@@ -3,11 +3,50 @@ using System.Threading;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using System.Linq.Dynamic.Core;
+using System.Collections.Generic;
namespace IRaCIS.Core.Infrastructure.Extention
{
public static class QueryablePageListExtensions
{
+ //内存排序 后期删除
+ public static PageOutput ToPagedList(this IList source, int pageIndex, int pageSize, string defaultSortFiled = "Id", bool isAsc = true)
+ {
+ if (pageIndex <= 0)
+ {
+ pageIndex = 1;
+ }
+ if (pageSize <= 0)
+ {
+ pageSize = 10;
+ }
+ var count = source.Count();
+
+ if (count == 0)
+ {
+ return new PageOutput() { CurrentPageData = new List() };
+ }
+
+ var propName = string.IsNullOrWhiteSpace(defaultSortFiled) ? "Id" : defaultSortFiled;
+
+ IQueryable sourceQuery = isAsc ? source.AsQueryable().OrderBy(propName) : source.AsQueryable().OrderBy(propName + " desc");
+
+ sourceQuery = sourceQuery.Skip((pageIndex - 1) * pageSize);
+
+ var items = sourceQuery
+ .Take(pageSize)
+ .ToArray();
+
+ var pagedList = new PageOutput()
+ {
+ PageIndex = pageIndex,
+ PageSize = pageSize,
+ TotalCount = count,
+ CurrentPageData = items
+ };
+
+ return pagedList;
+ }
//单字段排序
public static PageOutput ToPagedList(this IQueryable source, int pageIndex, int pageSize, string defaultSortFiled = "Id", bool isAsc = true)
{
diff --git a/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj b/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj
index 899f95036..ef69f8834 100644
--- a/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj
+++ b/IRaCIS.Core.Test/IRaCIS.Core.Test.csproj
@@ -13,7 +13,6 @@
-
diff --git a/IRaCIS.Core.Test/Test/Audit/AuditContext.cs b/IRaCIS.Core.Test/Test/Audit/AuditContext.cs
deleted file mode 100644
index 2fc55e0ea..000000000
--- a/IRaCIS.Core.Test/Test/Audit/AuditContext.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Microsoft.EntityFrameworkCore;
-
-#region AuditContext
-public class AuditContext : DbContext
-{
- private readonly string _connectionString;
-
- public AuditContext(string connectionString)
- {
- _connectionString = connectionString;
- }
-
- //protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
- // => optionsBuilder.Usesq(_connectionString);
-
- public DbSet SaveChangesAudits { get; set; }
-}
-
-
-public class SaveChangesAudit
-{
- public int Id { get; set; }
- public Guid AuditId { get; set; }
- public DateTime StartTime { get; set; }
- public DateTime EndTime { get; set; }
- public bool Succeeded { get; set; }
- public string ErrorMessage { get; set; }
-
- public ICollection Entities { get; } = new List();
-}
-
-public class EntityAudit
-{
- public int Id { get; set; }
- public EntityState State { get; set; }
- public string AuditMessage { get; set; }
-
- public SaveChangesAudit SaveChangesAudit { get; set; }
-}
-
-#endregion
\ No newline at end of file