项目邮件配置修改--008

Uat_Study
hang 2023-08-21 17:18:17 +08:00
parent e46b51d6a1
commit e24933f0dd
7 changed files with 70 additions and 17 deletions

View File

@ -602,6 +602,13 @@
<param name="trialId"></param> <param name="trialId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService.GetTrialUserIdSelectList(System.Guid)">
<summary>
黑名单用户Id 列表
</summary>
<param name="trialId"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.StudyService.Preview(System.Guid)"> <member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.StudyService.Preview(System.Guid)">
<summary> 指定资源Id渲染Dicom检查的Jpeg预览图像 </summary> <summary> 指定资源Id渲染Dicom检查的Jpeg预览图像 </summary>
<param name="studyId"> Dicom检查的Id </param> <param name="studyId"> Dicom检查的Id </param>

View File

@ -23,7 +23,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap<EmailNoticeConfigAddOrEdit, EmailNoticeConfig>().ReverseMap(); CreateMap<EmailNoticeConfigAddOrEdit, EmailNoticeConfig>().ReverseMap();
CreateMap<EmailUserType, EmailUserTypeDto>(); CreateMap<EmailNoticeUserType, EmailUserTypeDto>();

View File

@ -198,6 +198,8 @@ namespace IRaCIS.Core.Application.ViewModel
public string EmailHtmlContentCN { get; set; } = string.Empty; public string EmailHtmlContentCN { get; set; } = string.Empty;
public List<Guid> BlackUserIdList { get; set; }
} }

View File

@ -33,7 +33,9 @@ namespace IRaCIS.Core.Application.Service
private readonly IRepository<TrialEmailNoticeConfig> _trialEmailNoticeConfigRepository; private readonly IRepository<TrialEmailNoticeConfig> _trialEmailNoticeConfigRepository;
private readonly IRepository<Trial> _trialRepository; private readonly IRepository<Trial> _trialRepository;
private readonly IRepository<TrialEmailBlackUser> _trialEmailBlackUserRepository;
private readonly IRepository<TaskMedicalReview> _taskMedicalReviewRepository; private readonly IRepository<TaskMedicalReview> _taskMedicalReviewRepository;
@ -46,7 +48,7 @@ namespace IRaCIS.Core.Application.Service
public TrialEmailNoticeConfigService(IRepository<TrialEmailNoticeConfig> trialEmailNoticeConfigRepository, IRepository<VisitTask> visitTaskRepository, public TrialEmailNoticeConfigService(IRepository<TrialEmailNoticeConfig> trialEmailNoticeConfigRepository, IRepository<VisitTask> visitTaskRepository,
IRepository<Trial> trialRepository, IRepository<Trial> trialRepository,
IRepository<TrialUser> trialUserRepository, IRepository<TaskMedicalReview> taskMedicalReviewRepository, IRepository<Subject> subjectRepository, IRepository<SubjectVisit> subjectVisitRepository) IRepository<TrialUser> trialUserRepository, IRepository<TaskMedicalReview> taskMedicalReviewRepository, IRepository<Subject> subjectRepository, IRepository<SubjectVisit> subjectVisitRepository, IRepository<TrialEmailBlackUser> trialEmailBlackUserRepository)
{ {
_trialEmailNoticeConfigRepository = trialEmailNoticeConfigRepository; _trialEmailNoticeConfigRepository = trialEmailNoticeConfigRepository;
_visitTaskRepository = visitTaskRepository; _visitTaskRepository = visitTaskRepository;
@ -56,6 +58,7 @@ namespace IRaCIS.Core.Application.Service
_subjectRepository = subjectRepository; _subjectRepository = subjectRepository;
_subjectVisitRepository = subjectVisitRepository; _subjectVisitRepository = subjectVisitRepository;
_trialEmailBlackUserRepository = trialEmailBlackUserRepository;
} }
/// <summary> /// <summary>
@ -189,7 +192,7 @@ namespace IRaCIS.Core.Application.Service
{ {
businessScenarioEnum = CommonDocumentBusinessScenario.PDConfirmed; businessScenarioEnum = CommonDocumentBusinessScenario.PDConfirmed;
} }
#endregion #endregion
#region 任务 基本信息,邮件需要 #region 任务 基本信息,邮件需要
@ -212,7 +215,7 @@ namespace IRaCIS.Core.Application.Service
#region 发收件人配置 确保无误 #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(); .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() 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), FileStream = File.OpenRead(phyPath),
}); });
@ -1503,6 +1506,20 @@ namespace IRaCIS.Core.Application.Service
} }
/// <summary>
/// 黑名单用户Id 列表
/// </summary>
/// <param name="trialId"></param>
/// <returns></returns>
public async Task<List<Guid>> GetTrialUserIdSelectList(Guid trialId)
{
var query = _trialUserRepository.Where(t => t.TrialId == trialId, false, true).IgnoreQueryFilters().Select(t => t.UserId).Distinct();
return await query.ToListAsync();
}
[HttpPost] [HttpPost]
public async Task<List<TrialEmailNoticeConfigView>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery) public async Task<List<TrialEmailNoticeConfigView>> 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); await _trialEmailNoticeConfigRepository.AddAsync(entity, true);
@ -1549,10 +1570,10 @@ namespace IRaCIS.Core.Application.Service
} }
else else
{ {
var id = (Guid)addOrEditTrialEmailNoticeConfig.Id;
await _repository.BatchDeleteAsync<TrialEmailNoticeUser>(t => t.TrialEmailNoticeConfigId == addOrEditTrialEmailNoticeConfig.Id); await _repository.BatchDeleteAsync<TrialEmailNoticeUser>(t => t.TrialEmailNoticeConfigId == addOrEditTrialEmailNoticeConfig.Id);
await _repository.BatchDeleteAsync<TrialEmailBlackUser>(t => t.TrialEmailNoticeConfigId == addOrEditTrialEmailNoticeConfig.Id);
var entity = (await _trialEmailNoticeConfigRepository.Where(t => t.Id == addOrEditTrialEmailNoticeConfig.Id, true, true).Include(t => t.TrialEmailNoticeUserList).FirstOrDefaultAsync()).IfNullThrowException();
List<TrialEmailNoticeUser> trialEmailNoticeUsers = new List<TrialEmailNoticeUser>(); List<TrialEmailNoticeUser> trialEmailNoticeUsers = new List<TrialEmailNoticeUser>();
@ -1560,17 +1581,23 @@ namespace IRaCIS.Core.Application.Service
foreach (var item in addOrEditTrialEmailNoticeConfig.ToUserTypeList) 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) 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); await _repository.AddRangeAsync(trialEmailNoticeUsers);
foreach (var userid in addOrEditTrialEmailNoticeConfig.BlackUserIdList)
{
await _trialEmailBlackUserRepository.AddAsync(new TrialEmailBlackUser() { UserId = userid, TrialEmailNoticeConfigId = id });
}
await _trialEmailNoticeConfigRepository.UpdateFromDTOAsync(addOrEditTrialEmailNoticeConfig); await _trialEmailNoticeConfigRepository.UpdateFromDTOAsync(addOrEditTrialEmailNoticeConfig);

View File

@ -72,7 +72,8 @@ namespace IRaCIS.Core.Application.Service
CreateMap<TrialEmailNoticeConfig, TrialEmailNoticeConfigView>() CreateMap<TrialEmailNoticeConfig, TrialEmailNoticeConfigView>()
.ForMember(d => d.TrialCriterionName, c => c.MapFrom(t => t.TrialReadingCriterion.CriterionName)) .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<TrialEmailNoticeConfigAddOrEdit, TrialEmailNoticeConfig>(); CreateMap<TrialEmailNoticeConfigAddOrEdit, TrialEmailNoticeConfig>();

View File

@ -36,11 +36,11 @@ namespace IRaCIS.Core.Domain.Models
public string FromEmail { get; set; } = string.Empty; public string FromEmail { get; set; } = string.Empty;
[JsonIgnore]
public List<TrialEmailNoticeUser> TrialEmailNoticeUserList { get; set; } = new List<TrialEmailNoticeUser>(); public List<TrialEmailNoticeUser> TrialEmailNoticeUserList { get; set; } = new List<TrialEmailNoticeUser>();
public List<TrialEmailBlackUser> TrialEmailBlackUserList { get; set; } = new List<TrialEmailBlackUser>();
/// <summary> 业务模块 /// </summary> /// <summary> 业务模块 /// </summary>
public int BusinessModuleEnum { get; set; } public int BusinessModuleEnum { get; set; }
@ -80,7 +80,7 @@ namespace IRaCIS.Core.Domain.Models
public Guid? SysEmailNoticeConfigId { get; set; }
[Required] [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; }
}
} }

View File

@ -755,8 +755,9 @@ namespace IRaCIS.Core.Infra.EFCore
public virtual DbSet<PIAudit> PIAudit { get; set; } public virtual DbSet<PIAudit> PIAudit { get; set; }
public virtual DbSet<EmailNoticeUserType> EmailNoticeUserType { get; set; } public virtual DbSet<EmailNoticeUserType> EmailNoticeUserType { get; set; }
public virtual DbSet<TrialEmailBlackUser> TrialEmailBlackUser { get; set; }
} }
public class MySequentialGuidValueGenerator : ValueGenerator<Guid> public class MySequentialGuidValueGenerator : ValueGenerator<Guid>