From a90edaff516dbf38d732e4691692d627d4591fb8 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Sun, 28 Sep 2025 16:54:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A8=BD=E6=9F=A5=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Document/AuditDocumentService.cs | 8 +++++++ .../Document/DTO/AuditDocumentViewModel.cs | 7 ++++++ .../Service/Management/DTO/UserModel.cs | 5 ++++ .../Service/Management/UserService.cs | 23 +++++++++++++++++-- 4 files changed, 41 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Document/AuditDocumentService.cs b/IRaCIS.Core.Application/Service/Document/AuditDocumentService.cs index b691fae79..1ec27262e 100644 --- a/IRaCIS.Core.Application/Service/Document/AuditDocumentService.cs +++ b/IRaCIS.Core.Application/Service/Document/AuditDocumentService.cs @@ -148,6 +148,14 @@ public class AuditDocumentService(IRepository _auditDocumentRepos } + + public async Task DeleteAuditRecordUser(DeleteAuditUserCommand inCommand) + { + await _auditRecordIdentityUserRepository.BatchDeleteNoTrackingAsync(t => t.AuditRecordId == inCommand.AuditRecordId && inCommand.IdentityUserIdList.Contains(t.IdentityUserId)); + + return ResponseOutput.Ok(); + } + /// /// 删除稽查记录 /// diff --git a/IRaCIS.Core.Application/Service/Document/DTO/AuditDocumentViewModel.cs b/IRaCIS.Core.Application/Service/Document/DTO/AuditDocumentViewModel.cs index 805e3dc81..f6135fc06 100644 --- a/IRaCIS.Core.Application/Service/Document/DTO/AuditDocumentViewModel.cs +++ b/IRaCIS.Core.Application/Service/Document/DTO/AuditDocumentViewModel.cs @@ -52,6 +52,13 @@ public class AuditRecordAddOrEdit public List IdnetityUserIdList { get; set; } } +public class DeleteAuditUserCommand +{ + public Guid AuditRecordId { get; set; } + + public List IdentityUserIdList { get; set; } +} + public class AuditRecordQuery : PageInput { public string? CompanyName { get; set; } diff --git a/IRaCIS.Core.Application/Service/Management/DTO/UserModel.cs b/IRaCIS.Core.Application/Service/Management/DTO/UserModel.cs index 00f16de45..cfc1752c5 100644 --- a/IRaCIS.Core.Application/Service/Management/DTO/UserModel.cs +++ b/IRaCIS.Core.Application/Service/Management/DTO/UserModel.cs @@ -315,6 +315,8 @@ namespace IRaCIS.Application.Contracts public DateTime? EndLastChangePassWordTime { get; set; } public UserCeateSource? UserCeateSource { get; set; } + + public Guid? AuditRecordId { get; set; } } public class UserRoleInfoDTO @@ -354,6 +356,9 @@ namespace IRaCIS.Application.Contracts #endregion public int JoinedTrialCount { get; set; } + + + public bool IsAuditRecordUserSelect { get; set; } } diff --git a/IRaCIS.Core.Application/Service/Management/UserService.cs b/IRaCIS.Core.Application/Service/Management/UserService.cs index a5ad33953..fa5108fc4 100644 --- a/IRaCIS.Core.Application/Service/Management/UserService.cs +++ b/IRaCIS.Core.Application/Service/Management/UserService.cs @@ -495,7 +495,7 @@ namespace IRaCIS.Core.Application.Service /// /// [HttpPost] - public async Task> GetUserList(UserListQueryDTO inQuery) + public async Task> GetUserList(UserListQueryDTO inQuery, [FromServices] IRepository _auditRecordIdentityUserRepository) { var userQueryable = _identityUserRepository.Where(x => x.UserRoleList.Any(x => x.UserTypeEnum != UserTypeEnum.SuperAdmin)) @@ -518,7 +518,26 @@ namespace IRaCIS.Core.Application.Service .WhereIf(inQuery.UserCeateSource != null, t => t.UserCeateSource == inQuery.UserCeateSource) .ProjectTo(_mapper.ConfigurationProvider); - return await userQueryable.ToPagedListAsync(inQuery); + var pageList = await userQueryable.ToPagedListAsync(inQuery); + + + if (inQuery.AuditRecordId != null) + { + var selectIdList = _auditRecordIdentityUserRepository.Where(t => t.AuditRecordId == inQuery.AuditRecordId).Select(t => t.IdentityUserId).ToList(); + + foreach (var item in selectIdList) + { + var find = pageList.CurrentPageData.Where(t => t.Id == item).FirstOrDefault(); + + if (find != null) + { + find.IsAuditRecordUserSelect = true; + + } + } + } + + return pageList; }