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