项目邮件配置修改--010

Uat_Study
hang 2023-08-22 10:36:08 +08:00
parent c7b541dec6
commit aaed933eb9
10 changed files with 283 additions and 36 deletions

View File

@ -144,6 +144,9 @@ public static class SendEmailHelper
} }
} }
} }

View File

@ -609,6 +609,20 @@
<param name="trialId"></param> <param name="trialId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService.GetSysEmailNoticeConfigList(IRaCIS.Core.Application.Contracts.EmailNoticeConfigQuery)">
<summary>
获取系统 邮件配置 勾选列表
</summary>
<param name="queryEmailNoticeConfig"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.TrialEmailNoticeConfigService.BatchAddSysEmailConfig(System.Collections.Generic.List{IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig})">
<summary>
批量勾选 传递列表每行数据,后台进行处理转换,建立关联关系
</summary>
<param name="batchAddList"></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>
@ -8074,30 +8088,30 @@
<member name="T:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigQuery"> <member name="T:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigQuery">
<summary>TrialEmailNoticeConfigQuery 列表查询参数模型</summary> <summary>TrialEmailNoticeConfigQuery 列表查询参数模型</summary>
</member> </member>
<member name="T:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit"> <member name="P:IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig.BusinessModuleEnum">
<summary> TrialEmailNoticeConfigAddOrEdit 列表查询参数模型</summary>
</member>
<member name="P:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit.BusinessModuleEnum">
<summary> 业务模块 /// </summary> <summary> 业务模块 /// </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit.BusinessLevelEnum"> <member name="P:IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig.BusinessLevelEnum">
<summary> 业务层级 /// </summary> <summary> 业务层级 /// </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit.EmailTypeEnum"> <member name="P:IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig.EmailTypeEnum">
<summary> 邮件类型 /// </summary> <summary> 邮件类型 /// </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit.EmailUrgentEnum"> <member name="P:IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig.EmailUrgentEnum">
<summary> 邮件加急类型 /// </summary> <summary> 邮件加急类型 /// </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit.EmailCron"> <member name="P:IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig.EmailCron">
<summary> 定时周期 /// </summary> <summary> 定时周期 /// </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit.EmailTopic"> <member name="P:IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig.EmailTopic">
<summary> 邮件主题 /// </summary> <summary> 邮件主题 /// </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit.AttachPath"> <member name="P:IRaCIS.Core.Application.ViewModel.BatchAddTrialEmailNoticeConfig.AttachPath">
<summary> 附件 /// </summary> <summary> 附件 /// </summary>
</member> </member>
<member name="T:IRaCIS.Core.Application.ViewModel.TrialEmailNoticeConfigAddOrEdit">
<summary> TrialEmailNoticeConfigAddOrEdit 列表查询参数模型</summary>
</member>
<member name="T:IRaCIS.Core.Application.ViewModel.SystemAnonymizationView"> <member name="T:IRaCIS.Core.Application.ViewModel.SystemAnonymizationView">
<summary> SystemAnonymizationView 列表视图模型 </summary> <summary> SystemAnonymizationView 列表视图模型 </summary>
</member> </member>

View File

@ -8,6 +8,11 @@ using IRaCIS.Core.Domain.Share;
using Newtonsoft.Json; using Newtonsoft.Json;
namespace IRaCIS.Core.Application.Contracts namespace IRaCIS.Core.Application.Contracts
{ {
public class TrialSelectEmailNoticeConfigView: EmailNoticeConfigView
{
public bool IsHaveSelected { get; set; }
}
/// <summary> EmailNoticeConfigView 列表视图模型 </summary> /// <summary> EmailNoticeConfigView 列表视图模型 </summary>
public class EmailNoticeConfigView : EmailNoticeConfigAddOrEdit public class EmailNoticeConfigView : EmailNoticeConfigAddOrEdit
{ {
@ -54,7 +59,7 @@ namespace IRaCIS.Core.Application.Contracts
public CriterionType? CriterionTypeEnum { get; set; } public CriterionType? CriterionTypeEnum { get; set; }
public Guid? TrialId { get; set; }
} }

View File

@ -24,9 +24,13 @@ namespace IRaCIS.Core.Application.Service
CreateMap<EmailNoticeUserType, EmailUserTypeDto>(); CreateMap<EmailNoticeUserType, EmailUserTypeDto>();
var trialId = Guid.Empty;
CreateMap<EmailNoticeConfig, TrialSelectEmailNoticeConfigView>().IncludeBase<EmailNoticeConfig, EmailNoticeConfigView>()
.ForMember(o => o.IsHaveSelected, t => t.MapFrom(u => u.TrialEmailNoticeConfigList.Any(c=>c.TrialId==trialId && c.SysEmailNoticeConfigId==u.Id)))
;
CreateMap<EmailNoticeConfig, EmailNoticeConfigView>() CreateMap<EmailNoticeConfig, EmailNoticeConfigView>()
.ForMember(t => t.EmailNoticeUserList, u => u.MapFrom(c => c.EmailNoticeUserTypeList)); .ForMember(t => t.EmailNoticeUserList, u => u.MapFrom(c => c.EmailNoticeUserTypeList));

View File

@ -77,7 +77,7 @@ namespace IRaCIS.Core.Application.ViewModel
/// <summary> /// <summary>
/// SMTP端口 /// SMTP端口
/// </summary> /// </summary>
public int? EmailSMTPServerPort { get; set; } public int EmailSMTPServerPort { get; set; }
/// <summary> /// <summary>
/// 是否配置过邮箱 /// 是否配置过邮箱
@ -120,39 +120,30 @@ namespace IRaCIS.Core.Application.ViewModel
public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; } public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; }
} }
///<summary> TrialEmailNoticeConfigAddOrEdit 列表查询参数模型</summary> public class BatchAddTrialEmailNoticeConfig
public class TrialEmailNoticeConfigAddOrEdit
{ {
public Guid? Id { get; set; } public Guid? Id { get; set; }
public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; } public CommonDocumentBusinessScenario BusinessScenarioEnum { get; set; }
public string Code { get; set; } = string.Empty; public string Code { get; set; } = string.Empty;
public Guid? TrialReadingCriterionId { get; set; }
public Guid TrialId { get; set; } public Guid TrialId { get; set; }
public string AuthorizationCode { get; set; } = string.Empty;
public string SMTPServerAddress { get; set; } = string.Empty;
public int SMTPServerPort { get; set; }
public CriterionType CriterionTypeEnum { get; set; } public CriterionType CriterionTypeEnum { get; set; }
public string FromName { get; set; } = string.Empty;
public string FromEmail { get; set; } = string.Empty;
public List<UserTypeEnum> ToUserTypeList { get; set; } public List<UserTypeEnum> ToUserTypeList { get; set; }
public List<UserTypeEnum> CopyUserTypeList { get; set; } public List<UserTypeEnum> CopyUserTypeList { get; set; }
public bool IsUrgent { get; set; }
public bool IsAutoSend { get; set; } public bool IsAutoSend { get; set; }
@ -160,8 +151,6 @@ namespace IRaCIS.Core.Application.ViewModel
/// <summary> 业务模块 /// </summary> /// <summary> 业务模块 /// </summary>
public int BusinessModuleEnum { get; set; } public int BusinessModuleEnum { get; set; }
@ -197,6 +186,26 @@ namespace IRaCIS.Core.Application.ViewModel
public string EmailHtmlContent { get; set; } = string.Empty; public string EmailHtmlContent { get; set; } = string.Empty;
public string EmailHtmlContentCN { get; set; } = string.Empty; public string EmailHtmlContentCN { get; set; } = string.Empty;
}
///<summary> TrialEmailNoticeConfigAddOrEdit 列表查询参数模型</summary>
public class TrialEmailNoticeConfigAddOrEdit: BatchAddTrialEmailNoticeConfig
{
public Guid? TrialReadingCriterionId { get; set; }
public string AuthorizationCode { get; set; } = string.Empty;
public string SMTPServerAddress { get; set; } = string.Empty;
public int SMTPServerPort { get; set; }
public string FromName { get; set; } = string.Empty;
public string FromEmail { get; set; } = string.Empty;
public List<Guid> BlackUserIdList { get; set; } public List<Guid> BlackUserIdList { get; set; }

View File

@ -0,0 +1,121 @@
using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure;
using MailKit;
using MimeKit;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Service
{
public class EmailSendService : BaseService
{
private readonly IRepository<TrialEmailNoticeConfig> _trialEmailNoticeConfigRepository;
private readonly IRepository<EmailNoticeConfig> _emailNoticeConfigRepository;
public EmailSendService(IRepository<TrialEmailNoticeConfig> trialEmailNoticeConfigRepository, IRepository<EmailNoticeConfig> emailNoticeConfigRepository)
{
_trialEmailNoticeConfigRepository = trialEmailNoticeConfigRepository;
_emailNoticeConfigRepository = emailNoticeConfigRepository;
}
public async Task BaseTrialEmailConfigSendEmail(Guid trialId, CommonDocumentBusinessScenario businessScenario, Guid? trialReadingCriterionId, Guid? subjectId)
{
//找到配置
var trialEmailConfig = await _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == trialReadingCriterionId && t.BusinessScenarioEnum == businessScenario, ignoreQueryFilters: true)
.Include(t => t.TrialEmailNoticeUserList).Include(t => t.TrialEmailBlackUserList).FirstOrDefaultAsync();
if (trialEmailConfig == null || trialEmailConfig.IsAutoSend == false)
{
return;
}
else
{
var sendEmailConfig = new SMTPEmailConfig();
//收件人 如果是CRC CRA 要按照中心发送
var toUserTypeEnumList = trialEmailConfig.TrialEmailNoticeUserList.Where(t => t.EmailUserType == EmailUserType.To).Select(c => c.UserType).ToList();
var copyUserTypeEnumList = trialEmailConfig.TrialEmailNoticeUserList.Where(t => t.EmailUserType == EmailUserType.Copy).Select(c => c.UserType).ToList();
var allUserTypeEnumList= toUserTypeEnumList.Union(copyUserTypeEnumList).Distinct().ToList();
var allUserList= _repository.Where<TrialUser>(t => t.TrialId == trialId && allUserTypeEnumList.Contains(t.User.UserTypeEnum)).Select(t => new { t.User.EMail, t.User.FullName ,t.User.UserTypeEnum }).ToList();
var toUserList = allUserList.Where(t => toUserTypeEnumList.Contains(t.UserTypeEnum)).ToList();
if(subjectId!=null)
{
toUserList = _repository.Where<TrialSiteUser>(t => t.TrialId == trialId && allUserTypeEnumList.Contains(t.User.UserTypeEnum) && t.TrialSite.SubjectList.Any(c=>c.Id==subjectId)).Select(t => new { t.User.EMail, t.User.FullName, t.User.UserTypeEnum }).ToList();
}
var copyUserList = allUserList.Where(t => copyUserTypeEnumList.Contains(t.UserTypeEnum)).ToList();
if (toUserList.Count() == 0)
{
//---没有收件人,无法发送邮件
throw new BusinessValidationFailedException(_localizer["TrialEmailN_NoRecipient"]);
}
if (trialEmailConfig.FromEmail.Contains("@") && !string.IsNullOrEmpty(trialEmailConfig.FromEmail))
{
sendEmailConfig.FromEmailAddress = new MimeKit.MailboxAddress(trialEmailConfig.FromName, trialEmailConfig.FromEmail);
sendEmailConfig.AuthorizationCode = trialEmailConfig.AuthorizationCode;
sendEmailConfig.UserName = trialEmailConfig.FromEmail;
sendEmailConfig.Host = trialEmailConfig.SMTPServerAddress;
sendEmailConfig.Port = trialEmailConfig.SMTPServerPort;
}
else
{
//---项目发件邮箱配置有误,请核实
throw new BusinessValidationFailedException(_localizer["TrialEmailN_InvalidEmailConfig"]);
}
foreach (var item in toUserList)
{
if (item.EMail.Contains("@") && !string.IsNullOrEmpty(item.EMail))
{
sendEmailConfig.ToMailAddressList.Add(new MimeKit.MailboxAddress(item.FullName, item.EMail));
}
}
foreach (var item in copyUserList)
{
if (item.EMail.Contains("@") && !string.IsNullOrEmpty(item.EMail))
{
sendEmailConfig.CopyToMailAddressList.Add(new MimeKit.MailboxAddress(item.FullName, item.EMail));
}
}
}
}
}
}

View File

@ -33,11 +33,12 @@ 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<TrialEmailBlackUser> _trialEmailBlackUserRepository;
private readonly IRepository<TaskMedicalReview> _taskMedicalReviewRepository; private readonly IRepository<TaskMedicalReview> _taskMedicalReviewRepository;
private readonly IRepository<EmailNoticeConfig> _emailNoticeConfigRepository;
public IRepository<VisitTask> _visitTaskRepository { get; } public IRepository<VisitTask> _visitTaskRepository { get; }
public IRepository<TrialUser> _trialUserRepository { get; } public IRepository<TrialUser> _trialUserRepository { get; }
@ -46,9 +47,13 @@ namespace IRaCIS.Core.Application.Service
public IRepository<SubjectVisit> _subjectVisitRepository { get; } public IRepository<SubjectVisit> _subjectVisitRepository { get; }
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<TrialEmailBlackUser> trialEmailBlackUserRepository) IRepository<TrialUser> trialUserRepository, IRepository<TaskMedicalReview> taskMedicalReviewRepository, IRepository<Subject> subjectRepository,
Repository<SubjectVisit> subjectVisitRepository, IRepository<TrialEmailBlackUser> trialEmailBlackUserRepository, IRepository<EmailNoticeConfig> emailNoticeConfigRepository)
{ {
_trialEmailNoticeConfigRepository = trialEmailNoticeConfigRepository; _trialEmailNoticeConfigRepository = trialEmailNoticeConfigRepository;
_visitTaskRepository = visitTaskRepository; _visitTaskRepository = visitTaskRepository;
@ -59,6 +64,7 @@ namespace IRaCIS.Core.Application.Service
_subjectVisitRepository = subjectVisitRepository; _subjectVisitRepository = subjectVisitRepository;
_trialEmailBlackUserRepository = trialEmailBlackUserRepository; _trialEmailBlackUserRepository = trialEmailBlackUserRepository;
_emailNoticeConfigRepository = emailNoticeConfigRepository;
} }
/// <summary> /// <summary>
@ -97,7 +103,7 @@ namespace IRaCIS.Core.Application.Service
FromEmail = inDto.EmailFromEmail, FromEmail = inDto.EmailFromEmail,
FromName = inDto.EmailFromName, FromName = inDto.EmailFromName,
SMTPServerAddress = inDto.EmailSMTPServerAddress, SMTPServerAddress = inDto.EmailSMTPServerAddress,
SMTPServerPort = inDto.EmailSMTPServerPort.Value, SMTPServerPort = inDto.EmailSMTPServerPort,
TrialId = inDto.TrialId, TrialId = inDto.TrialId,
}); });
@ -120,7 +126,7 @@ namespace IRaCIS.Core.Application.Service
FromEmail = inDto.EmailFromEmail, FromEmail = inDto.EmailFromEmail,
FromName = inDto.EmailFromName, FromName = inDto.EmailFromName,
SMTPServerAddress = inDto.EmailSMTPServerAddress, SMTPServerAddress = inDto.EmailSMTPServerAddress,
SMTPServerPort = inDto.EmailSMTPServerPort.Value, SMTPServerPort = inDto.EmailSMTPServerPort,
}); });
await _trialRepository.SaveChangesAsync(); await _trialRepository.SaveChangesAsync();
@ -1518,6 +1524,83 @@ namespace IRaCIS.Core.Application.Service
return await query.ToListAsync(); return await query.ToListAsync();
} }
/// <summary>
/// 获取系统 邮件配置 勾选列表
/// </summary>
/// <param name="queryEmailNoticeConfig"></param>
/// <returns></returns>
public async Task<PageOutput<TrialSelectEmailNoticeConfigView>> GetSysEmailNoticeConfigList(EmailNoticeConfigQuery queryEmailNoticeConfig)
{
var emailNoticeConfigQueryable = _emailNoticeConfigRepository
.WhereIf(queryEmailNoticeConfig.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == queryEmailNoticeConfig.BusinessScenarioEnum)
.WhereIf(queryEmailNoticeConfig.IsReturnRequired != null, t => t.IsReturnRequired == queryEmailNoticeConfig.IsReturnRequired)
.WhereIf(queryEmailNoticeConfig.IsEnable != null, t => t.IsEnable == queryEmailNoticeConfig.IsEnable)
.ProjectTo<TrialSelectEmailNoticeConfigView>(_mapper.ConfigurationProvider, new { trialId = queryEmailNoticeConfig.TrialId });
return await emailNoticeConfigQueryable.ToPagedListAsync(queryEmailNoticeConfig.PageIndex, queryEmailNoticeConfig.PageSize, queryEmailNoticeConfig.SortField, queryEmailNoticeConfig.Asc);
}
/// <summary>
/// 批量勾选 传递列表每行数据,后台进行处理转换,建立关联关系
/// </summary>
/// <param name="batchAddList"></param>
/// <returns></returns>
public async Task<IResponseOutput> BatchAddSysEmailConfig(List<BatchAddTrialEmailNoticeConfig> batchAddList)
{
var first = batchAddList.First();
var trialId = first.TrialId;
var emailConfig = await _trialRepository.Where(t => t.Id == trialId).Select(x => new
{
TrialId = x.Id,
EmailAuthorizationCode = x.EmailAuthorizationCode,
EmailSMTPServerAddress = x.EmailSMTPServerAddress,
EmailFromEmail = x.EmailFromEmail,
EmailFromName = x.EmailFromName,
IsConfigureEmail = x.IsConfigureEmail,
EmailSMTPServerPort = x.EmailSMTPServerPort
}).FirstNotNullAsync();
var list = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.TrialId == trialId && t.IsConfirm).Select(t => new { t.CriterionType, TrialReadingCriterionId = t.Id }).ToListAsync();
var addList = _mapper.Map<List<TrialEmailNoticeConfig>>(batchAddList);
foreach (var item in addList)
{
item.SysEmailNoticeConfigId = item.Id;
item.Id = Guid.Empty;
item.AuthorizationCode = emailConfig.EmailAuthorizationCode;
item.FromEmail = emailConfig.EmailFromEmail;
item.SMTPServerAddress = emailConfig.EmailSMTPServerAddress;
item.FromName=emailConfig.EmailFromName;
item.SMTPServerPort = emailConfig.EmailSMTPServerPort;
item.TrialReadingCriterionId = list.FirstOrDefault(t => t.CriterionType == item.CriterionTypeEnum)?.TrialReadingCriterionId;
item.TrialEmailNoticeUserList.AddRange(batchAddList.Where(t => t.Id == item.SysEmailNoticeConfigId)
.SelectMany(t => t.ToUserTypeList).Select(t => new TrialEmailNoticeUser() { EmailUserType = EmailUserType.To, UserType = t }));
item.TrialEmailNoticeUserList.AddRange(batchAddList.Where(t => t.Id == item.SysEmailNoticeConfigId)
.SelectMany(t => t.CopyUserTypeList).Select(t => new TrialEmailNoticeUser() { EmailUserType = EmailUserType.Copy, UserType = t }));
await _trialEmailNoticeConfigRepository.AddAsync(item);
}
await _trialEmailNoticeConfigRepository.SaveChangesAsync();
return ResponseOutput.Ok();
}
[HttpPost] [HttpPost]
@ -1534,6 +1617,7 @@ namespace IRaCIS.Core.Application.Service
return await trialEmailNoticeConfigQueryable.ToListAsync(); return await trialEmailNoticeConfigQueryable.ToListAsync();
} }
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
public async Task<IResponseOutput> AddOrUpdateTrialEmailNoticeConfig(TrialEmailNoticeConfigAddOrEdit addOrEditTrialEmailNoticeConfig) public async Task<IResponseOutput> AddOrUpdateTrialEmailNoticeConfig(TrialEmailNoticeConfigAddOrEdit addOrEditTrialEmailNoticeConfig)
{ {
@ -1609,6 +1693,8 @@ namespace IRaCIS.Core.Application.Service
} }
private async Task TestEmailConfigAsync(TrialEmailNoticeConfigAddOrEdit config) private async Task TestEmailConfigAsync(TrialEmailNoticeConfigAddOrEdit config)
{ {

View File

@ -18,6 +18,9 @@ namespace IRaCIS.Core.Domain.Models
[Table("EmailNoticeConfig")] [Table("EmailNoticeConfig")]
public class EmailNoticeConfig : Entity, IAuditUpdate, IAuditAdd,ISoftDelete public class EmailNoticeConfig : Entity, IAuditUpdate, IAuditAdd,ISoftDelete
{ {
[JsonIgnore]
public List<TrialEmailNoticeConfig> TrialEmailNoticeConfigList { get; set; }
[JsonIgnore] [JsonIgnore]
public List<EmailNoticeUserType> EmailNoticeUserTypeList { get; set; } public List<EmailNoticeUserType> EmailNoticeUserTypeList { get; set; }
public string Code { get; set; } = String.Empty; public string Code { get; set; } = String.Empty;

View File

@ -76,10 +76,12 @@ namespace IRaCIS.Core.Domain.Models
public string EmailHtmlContent { get; set; } = string.Empty; public string EmailHtmlContent { get; set; } = string.Empty;
public string EmailHtmlContentCN { get; set; } = string.Empty; public string EmailHtmlContentCN { get; set; } = string.Empty;
[JsonIgnore]
public EmailNoticeConfig SysEmailNoticeConfig { get; set; }
public Guid? SysEmailNoticeConfigId { get; set; } public Guid? SysEmailNoticeConfigId { get; set; }

View File

@ -382,7 +382,7 @@ namespace IRaCIS.Core.Domain.Models
/// <summary> /// <summary>
/// SMTP端口 /// SMTP端口
/// </summary> /// </summary>
public int? EmailSMTPServerPort { get; set; } public int EmailSMTPServerPort { get; set; }
/// <summary> /// <summary>
/// 是否配置过邮箱 /// 是否配置过邮箱