From 59339969da1f320f5f1a43e8d4db6375f4525e21 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 28 Aug 2025 17:29:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=BE=E9=A2=98=E7=BB=84?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Visit/DTO/HospitalGroupViewModel.cs | 9 +-------- .../Service/Visit/HospitalGroupService.cs | 19 +++++++++---------- .../Service/Visit/_MapConfig.cs | 4 ++-- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Visit/DTO/HospitalGroupViewModel.cs b/IRaCIS.Core.Application/Service/Visit/DTO/HospitalGroupViewModel.cs index af09378b5..9ff651f2e 100644 --- a/IRaCIS.Core.Application/Service/Visit/DTO/HospitalGroupViewModel.cs +++ b/IRaCIS.Core.Application/Service/Visit/DTO/HospitalGroupViewModel.cs @@ -39,17 +39,10 @@ public class HospitalGroupAddOrEdit public string CallingAE { get; set; } - public List IdentityUserList { get; set; } + public List IdentityUserIdList { get; set; } } -public class GAIdentityUserInfo -{ - public Guid IdentityUserId { get; set; } - public bool IsDisabled { get; set; } - - -} public class HospitalGroupQuery : PageInput { diff --git a/IRaCIS.Core.Application/Service/Visit/HospitalGroupService.cs b/IRaCIS.Core.Application/Service/Visit/HospitalGroupService.cs index 1e76df7fd..01b78cec2 100644 --- a/IRaCIS.Core.Application/Service/Visit/HospitalGroupService.cs +++ b/IRaCIS.Core.Application/Service/Visit/HospitalGroupService.cs @@ -24,9 +24,10 @@ public class HospitalGroupService(IRepository _hospitalGroupRepos /// /// - public async Task> GetGAUserList() + public async Task> GetGAUserList(Guid hospitalGroupId) { - var list = await _identityUserRepository.Where(t => t.UserRoleList.Any(t => t.UserTypeEnum == UserTypeEnum.GA && t.IsUserRoleDisabled == false)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + var list = await _identityUserRepository.Where(t => t.UserRoleList.Any(t => t.UserTypeEnum == UserTypeEnum.GA && t.IsUserRoleDisabled == false) && t.IdentityUserHospitalGroupList.Any(t => t.HospitalGroupId == hospitalGroupId)) + .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); return list; } @@ -96,26 +97,24 @@ public class HospitalGroupService(IRepository _hospitalGroupRepos var addEntity = _mapper.Map(addOrEditHospitalGroup); - addEntity.IdentityUserList = addOrEditHospitalGroup.IdentityUserList.Select(t => new HospitalGroupIdentityUser() { IdentityUserId = t.IdentityUserId, IsManager = true, IsDisabled = t.IsDisabled }).ToList(); - var newEntity = await _hospitalGroupRepository.AddAsync(addEntity, true, verifyExp1); return ResponseOutput.Ok(newEntity.Id.ToString()); } else { - await _hospitalGroupIdentityUserRepository.BatchDeleteNoTrackingAsync(t => t.HospitalGroupId == addOrEditHospitalGroup.Id && t.IsManager); - //var find = await _hospitalGroupRepository.FirstOrDefaultAsync(t => t.Id == addOrEditHospitalGroup.Id); + var gaAdminList = _hospitalGroupRepository.Where(t => t.Id == addOrEditHospitalGroup.Id).SelectMany(t => t.IdentityUserList.Where(t => t.IsManager)).Select(t => t.IdentityUserId).ToList(); - //_mapper.Map(addOrEditHospitalGroup, find); - var adminUserList = addOrEditHospitalGroup.IdentityUserList.Select(t => new HospitalGroupIdentityUser() { IdentityUserId = t.IdentityUserId, HospitalGroupId = (Guid)addOrEditHospitalGroup.Id, IsManager = true, IsDisabled = t.IsDisabled }).ToList(); - - await _hospitalGroupIdentityUserRepository.AddRangeAsync(adminUserList); var entity = await _hospitalGroupRepository.UpdateFromDTOAsync(addOrEditHospitalGroup, true, false, verifyExp1); + await _hospitalGroupIdentityUserRepository.BatchUpdateNoTrackingAsync(t => gaAdminList.Contains(t.IdentityUserId) && t.HospitalGroupId == addOrEditHospitalGroup.Id, u => new HospitalGroupIdentityUser() { IsManager = false }); + + await _hospitalGroupIdentityUserRepository.BatchUpdateNoTrackingAsync(t => addOrEditHospitalGroup.IdentityUserIdList.Contains(t.IdentityUserId) && t.HospitalGroupId == addOrEditHospitalGroup.Id, u => new HospitalGroupIdentityUser() { IsManager = true }); + + await _hospitalGroupIdentityUserRepository.SaveChangesAsync(); } return ResponseOutput.Ok(); diff --git a/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs b/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs index e2a94333b..57e7c7986 100644 --- a/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs @@ -206,8 +206,8 @@ namespace IRaCIS.Core.Application.Service CreateMap() - .ForMember(d => d.GAUserList, u => u.MapFrom(s => s.IdentityUserList.Where(t => t.IsManager).Select(t => t.IdentityUser))) - .ForMember(d => d.IdentityUserList, u => u.MapFrom(s => s.IdentityUserList.Where(t => t.IsManager).Select(t => new GAIdentityUserInfo() { IdentityUserId = t.IdentityUser.Id, IsDisabled = t.IsDisabled }))); + .ForMember(d => d.GAUserList, u => u.MapFrom(s => s.IdentityUserList.Where(t=>t.IsManager).Select(t => t.IdentityUser))) + .ForMember(d => d.IdentityUserIdList, u => u.MapFrom(s => s.IdentityUserList.Where(t => t.IsManager).Select(t => t.IdentityUserId))); CreateMap().ReverseMap();