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