From e24933f0dd935a7c1fdbc5ba92a0584415c8fa9b Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Mon, 21 Aug 2023 17:18:17 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=82=AE=E4=BB=B6=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=BF=AE=E6=94=B9--008?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 7 +++ .../Service/Common/_MapConfig.cs | 2 +- .../DTO/TrialEmailNoticeConfigViewModel.cs | 2 + .../Document/TrialEmailNoticeConfigService.cs | 47 +++++++++++++++---- .../Service/Document/_MapConfig.cs | 3 +- .../Document/TrialEmailNoticeConfig.cs | 23 +++++++-- .../Context/IRaCISDBContext.cs | 3 +- 7 files changed, 70 insertions(+), 17 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index fb325ce8e..956f11d32 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -602,6 +602,13 @@ + + + 黑名单用户Id 列表 + + + + 指定资源Id,渲染Dicom检查的Jpeg预览图像 Dicom检查的Id diff --git a/IRaCIS.Core.Application/Service/Common/_MapConfig.cs b/IRaCIS.Core.Application/Service/Common/_MapConfig.cs index db8ba3f0e..3b0aaa368 100644 --- a/IRaCIS.Core.Application/Service/Common/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Common/_MapConfig.cs @@ -23,7 +23,7 @@ namespace IRaCIS.Core.Application.Service CreateMap().ReverseMap(); - CreateMap(); + CreateMap(); diff --git a/IRaCIS.Core.Application/Service/Document/DTO/TrialEmailNoticeConfigViewModel.cs b/IRaCIS.Core.Application/Service/Document/DTO/TrialEmailNoticeConfigViewModel.cs index e40d5716d..9d787eab1 100644 --- a/IRaCIS.Core.Application/Service/Document/DTO/TrialEmailNoticeConfigViewModel.cs +++ b/IRaCIS.Core.Application/Service/Document/DTO/TrialEmailNoticeConfigViewModel.cs @@ -198,6 +198,8 @@ namespace IRaCIS.Core.Application.ViewModel public string EmailHtmlContentCN { get; set; } = string.Empty; + public List BlackUserIdList { get; set; } + } diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs index 12b5fd01e..8a6f4b1ee 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs @@ -33,7 +33,9 @@ namespace IRaCIS.Core.Application.Service private readonly IRepository _trialEmailNoticeConfigRepository; + private readonly IRepository _trialRepository; + private readonly IRepository _trialEmailBlackUserRepository; private readonly IRepository _taskMedicalReviewRepository; @@ -46,7 +48,7 @@ namespace IRaCIS.Core.Application.Service public TrialEmailNoticeConfigService(IRepository trialEmailNoticeConfigRepository, IRepository visitTaskRepository, IRepository trialRepository, - IRepository trialUserRepository, IRepository taskMedicalReviewRepository, IRepository subjectRepository, IRepository subjectVisitRepository) + IRepository trialUserRepository, IRepository taskMedicalReviewRepository, IRepository subjectRepository, IRepository subjectVisitRepository, IRepository trialEmailBlackUserRepository) { _trialEmailNoticeConfigRepository = trialEmailNoticeConfigRepository; _visitTaskRepository = visitTaskRepository; @@ -56,6 +58,7 @@ namespace IRaCIS.Core.Application.Service _subjectRepository = subjectRepository; _subjectVisitRepository = subjectVisitRepository; + _trialEmailBlackUserRepository = trialEmailBlackUserRepository; } /// @@ -189,7 +192,7 @@ namespace IRaCIS.Core.Application.Service { businessScenarioEnum = CommonDocumentBusinessScenario.PDConfirmed; } - + #endregion #region 任务 基本信息,邮件需要 @@ -212,7 +215,7 @@ namespace IRaCIS.Core.Application.Service #region 发收件人配置 确保无误 - var emailConfig = await _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId==null && t.BusinessScenarioEnum == businessScenarioEnum) + var emailConfig = await _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == null && t.BusinessScenarioEnum == businessScenarioEnum) .Include(t => t.TrialEmailNoticeUserList).FirstOrDefaultAsync(); @@ -326,7 +329,7 @@ namespace IRaCIS.Core.Application.Service ); } } - + @@ -950,7 +953,7 @@ namespace IRaCIS.Core.Application.Service //先预先生成了邮件,发送预先生成的邮件 sendEmailConfig.EmailAttachMentConfigList.Add(new EmailAttachMentConfig() { - FileName = $"{taskInfo.SubjectCode}_{Path.GetFileNameWithoutExtension( _userInfo.IsEn_Us? emailConfig.AttachName: emailConfig.AttachNameCN)}.pdf", + FileName = $"{taskInfo.SubjectCode}_{Path.GetFileNameWithoutExtension(_userInfo.IsEn_Us ? emailConfig.AttachName : emailConfig.AttachNameCN)}.pdf", FileStream = File.OpenRead(phyPath), }); @@ -1503,6 +1506,20 @@ namespace IRaCIS.Core.Application.Service } + /// + /// 黑名单用户Id 列表 + /// + /// + /// + public async Task> GetTrialUserIdSelectList(Guid trialId) + { + var query = _trialUserRepository.Where(t => t.TrialId == trialId, false, true).IgnoreQueryFilters().Select(t => t.UserId).Distinct(); + + return await query.ToListAsync(); + } + + + [HttpPost] public async Task> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery) { @@ -1541,6 +1558,10 @@ namespace IRaCIS.Core.Application.Service } + foreach (var userid in addOrEditTrialEmailNoticeConfig.BlackUserIdList) + { + entity.TrialEmailBlackUserList.Add(new TrialEmailBlackUser() { UserId = userid }); + } await _trialEmailNoticeConfigRepository.AddAsync(entity, true); @@ -1549,10 +1570,10 @@ namespace IRaCIS.Core.Application.Service } else { + var id = (Guid)addOrEditTrialEmailNoticeConfig.Id; + await _repository.BatchDeleteAsync(t => t.TrialEmailNoticeConfigId == addOrEditTrialEmailNoticeConfig.Id); - - - var entity = (await _trialEmailNoticeConfigRepository.Where(t => t.Id == addOrEditTrialEmailNoticeConfig.Id, true, true).Include(t => t.TrialEmailNoticeUserList).FirstOrDefaultAsync()).IfNullThrowException(); + await _repository.BatchDeleteAsync(t => t.TrialEmailNoticeConfigId == addOrEditTrialEmailNoticeConfig.Id); List trialEmailNoticeUsers = new List(); @@ -1560,17 +1581,23 @@ namespace IRaCIS.Core.Application.Service foreach (var item in addOrEditTrialEmailNoticeConfig.ToUserTypeList) { - trialEmailNoticeUsers.Add(new TrialEmailNoticeUser() { EmailUserType = EmailUserType.To, UserType = item, TrialEmailNoticeConfigId = entity.Id }); + trialEmailNoticeUsers.Add(new TrialEmailNoticeUser() { EmailUserType = EmailUserType.To, UserType = item, TrialEmailNoticeConfigId = id }); } foreach (var item in addOrEditTrialEmailNoticeConfig.CopyUserTypeList) { - trialEmailNoticeUsers.Add(new TrialEmailNoticeUser() { EmailUserType = EmailUserType.Copy, UserType = item, TrialEmailNoticeConfigId = entity.Id }); + trialEmailNoticeUsers.Add(new TrialEmailNoticeUser() { EmailUserType = EmailUserType.Copy, UserType = item, TrialEmailNoticeConfigId = id }); } await _repository.AddRangeAsync(trialEmailNoticeUsers); + foreach (var userid in addOrEditTrialEmailNoticeConfig.BlackUserIdList) + { + await _trialEmailBlackUserRepository.AddAsync(new TrialEmailBlackUser() { UserId = userid, TrialEmailNoticeConfigId = id }); + + } + await _trialEmailNoticeConfigRepository.UpdateFromDTOAsync(addOrEditTrialEmailNoticeConfig); diff --git a/IRaCIS.Core.Application/Service/Document/_MapConfig.cs b/IRaCIS.Core.Application/Service/Document/_MapConfig.cs index 3cec4fc79..040ef6202 100644 --- a/IRaCIS.Core.Application/Service/Document/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Document/_MapConfig.cs @@ -72,7 +72,8 @@ namespace IRaCIS.Core.Application.Service CreateMap() .ForMember(d => d.TrialCriterionName, c => c.MapFrom(t => t.TrialReadingCriterion.CriterionName)) - .ForMember(d => d.TrialEmailNoticeUserList, c => c.MapFrom(t => t.TrialEmailNoticeUserList)); + .ForMember(d => d.TrialEmailNoticeUserList, c => c.MapFrom(t => t.TrialEmailNoticeUserList)) + .ForMember(d => d.BlackUserIdList, c => c.MapFrom(t => t.TrialEmailBlackUserList.Select(c=>c.UserId))); CreateMap(); diff --git a/IRaCIS.Core.Domain/Document/TrialEmailNoticeConfig.cs b/IRaCIS.Core.Domain/Document/TrialEmailNoticeConfig.cs index 0fe9cbf93..f54f4b1fa 100644 --- a/IRaCIS.Core.Domain/Document/TrialEmailNoticeConfig.cs +++ b/IRaCIS.Core.Domain/Document/TrialEmailNoticeConfig.cs @@ -36,11 +36,11 @@ namespace IRaCIS.Core.Domain.Models public string FromEmail { get; set; } = string.Empty; - + [JsonIgnore] public List TrialEmailNoticeUserList { get; set; } = new List(); - - + public List TrialEmailBlackUserList { get; set; } = new List(); + /// 业务模块 /// public int BusinessModuleEnum { get; set; } @@ -80,7 +80,7 @@ namespace IRaCIS.Core.Domain.Models - + public Guid? SysEmailNoticeConfigId { get; set; } [Required] @@ -118,4 +118,19 @@ namespace IRaCIS.Core.Domain.Models } + public class TrialEmailBlackUser:Entity + { + [JsonIgnore] + public TrialEmailNoticeConfig TrialEmailNoticeConfig { get; set; } + + [JsonIgnore] + public User User { get; set; } + + + public Guid TrialEmailNoticeConfigId { get; set; } + + + public Guid UserId { get; set; } + } + } diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs index 765287d37..9ee673fbd 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs @@ -755,8 +755,9 @@ namespace IRaCIS.Core.Infra.EFCore public virtual DbSet PIAudit { get; set; } public virtual DbSet EmailNoticeUserType { get; set; } - + public virtual DbSet TrialEmailBlackUser { get; set; } + } public class MySequentialGuidValueGenerator : ValueGenerator