修改邮件配置

IRC_NewDev
hang 2024-11-06 13:51:05 +08:00
parent 506955ca7c
commit b83ea13aed
8 changed files with 95 additions and 10 deletions

View File

@ -63,7 +63,7 @@ namespace IRaCIS.Core.Application.Contracts
public bool? IsDistinguishCriteria { get; set; }
public SysEmailLevel? SystemLevel { get; set; }
public int? BusinessModuleEnum { get; set; }
public BusinessModule? BusinessModuleEnum { get; set; }
public int? EmailUrgentEnum { get; set; }

View File

@ -26,6 +26,7 @@ namespace IRaCIS.Core.Application.Contracts
.WhereIf(inQuery.SystemLevel != null, t => t.SystemLevel == inQuery.SystemLevel)
.WhereIf(inQuery.IsDistinguishCriteria != null, t => t.IsDistinguishCriteria == inQuery.IsDistinguishCriteria)
.WhereIf(inQuery.CriterionTypeEnum != null, t => t.CriterionTypeEnum == inQuery.CriterionTypeEnum)
.WhereIf(inQuery.BusinessModuleEnum != null, t => t.BusinessModuleEnum == inQuery.BusinessModuleEnum)
.WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum)
.WhereIf(inQuery.IsReturnRequired != null, t => t.IsReturnRequired == inQuery.IsReturnRequired)
.WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable)

View File

@ -116,6 +116,8 @@ namespace IRaCIS.Core.Application.ViewModel
public UserTypeEnum? ToUserType { get; set; }
public UserTypeEnum? CopyUserType { get; set; }
public BusinessModule? BusinessModuleEnum { get; set; }
}

View File

@ -16,7 +16,7 @@ namespace IRaCIS.Core.Application.Interfaces
{
Task<List<TrialEmailNoticeConfigView>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery);
Task<IResponseOutput<List<TrialEmailNoticeConfigView>>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery);
Task<IResponseOutput> AddOrUpdateTrialEmailNoticeConfig(TrialEmailNoticeConfigAddOrEdit addOrEditTrialEmailNoticeConfig);

View File

@ -1243,7 +1243,7 @@ namespace IRaCIS.Core.Application.Service
public async Task<PageOutput<TrialSelectEmailNoticeConfigView>> GetSysEmailNoticeConfigList(EmailNoticeConfigQuery inQuery)
{
var emailNoticeConfigQueryable = _emailNoticeConfigRepository
.WhereIf(inQuery.SystemLevel == null, t => t.SystemLevel == SysEmailLevel.not_sys )
.WhereIf(inQuery.SystemLevel == null, t => t.SystemLevel == SysEmailLevel.not_sys)
.WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum)
.WhereIf(inQuery.IsReturnRequired != null, t => t.IsReturnRequired == inQuery.IsReturnRequired)
.WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable)
@ -1320,11 +1320,33 @@ namespace IRaCIS.Core.Application.Service
}
public async Task<IResponseOutput> BatchAddEnrollOrPdEmailConfig(Guid trialId)
{
var trialConfig = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.IsEnrollementQualificationConfirm, t.IsPDProgressView }).First();
var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId)
.WhereIf(trialConfig.IsEnrollementQualificationConfirm == false, t => t.BusinessModuleEnum != BusinessModule.EligibilityVerification)
.WhereIf(trialConfig.IsPDProgressView == false, t => t.BusinessModuleEnum != BusinessModule.PDVerification)
.WhereIf(trialConfig.IsPDProgressView == false && trialConfig.IsEnrollementQualificationConfirm == false, t => t.BusinessModuleEnum != BusinessModule.PDVerification
&& t.BusinessModuleEnum != BusinessModule.EligibilityVerification)
.ProjectTo<TrialEmailNoticeConfigView>(_mapper.ConfigurationProvider);
var list = await trialEmailNoticeConfigQueryable.ToListAsync();
return await BatchAddSysEmailConfig(_mapper.Map<List<BatchAddTrialEmailNoticeConfig>>(list));
}
[HttpPost]
public async Task<List<TrialEmailNoticeConfigView>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery)
public async Task<IResponseOutput<List<TrialEmailNoticeConfigView>>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery)
{
//await SyncSystemEmainCofigDocListAsync(inQuery.TrialId);
var trialConfig = _trialRepository.Where(t => t.Id == inQuery.TrialId).Select(t => new { t.IsEnrollementQualificationConfirm, t.IsPDProgressView }).First();
var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository.Where(t => t.TrialId == inQuery.TrialId)
.WhereIf(inQuery.IsDistinguishCriteria == false, t => t.TrialReadingCriterionId == null)
.WhereIf(inQuery.IsDistinguishCriteria == true, t => t.CriterionTypeEnum != null)
@ -1334,15 +1356,23 @@ namespace IRaCIS.Core.Application.Service
.WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable)
.WhereIf(inQuery.ToUserType != null, t => t.TrialEmailNoticeUserList.Any(t => t.UserType == inQuery.ToUserType && t.EmailUserType == EmailUserType.To))
.WhereIf(inQuery.CopyUserType != null, t => t.TrialEmailNoticeUserList.Any(t => t.UserType == inQuery.CopyUserType && t.EmailUserType == EmailUserType.Copy))
.WhereIf(inQuery.BusinessModuleEnum != null, t => t.BusinessModuleEnum == inQuery.BusinessModuleEnum)
.WhereIf(trialConfig.IsEnrollementQualificationConfirm == false, t => t.BusinessModuleEnum != BusinessModule.EligibilityVerification)
.WhereIf(trialConfig.IsPDProgressView == false, t => t.BusinessModuleEnum != BusinessModule.PDVerification)
.WhereIf(trialConfig.IsPDProgressView == false && trialConfig.IsEnrollementQualificationConfirm == false, t => t.BusinessModuleEnum != BusinessModule.PDVerification
&& t.BusinessModuleEnum != BusinessModule.EligibilityVerification)
.ProjectTo<TrialEmailNoticeConfigView>(_mapper.ConfigurationProvider);
var sortField = string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(TrialEmailNoticeConfigView.Code) : inQuery.SortField;
var orderQuery = inQuery.Asc ? trialEmailNoticeConfigQueryable.OrderBy(sortField) : trialEmailNoticeConfigQueryable.OrderBy(sortField + " desc");
return await orderQuery.ToListAsync();
var list = await orderQuery.ToListAsync();
return ResponseOutput.Ok(list, trialConfig);
}
[TrialGlobalLimit( "AfterStopCannNotOpt" )]
[TrialGlobalLimit("AfterStopCannNotOpt")]
public async Task<IResponseOutput> AddOrUpdateTrialEmailNoticeConfig(TrialEmailNoticeConfigAddOrEdit addOrEditTrialEmailNoticeConfig)
{
await TestEmailConfigAsync(addOrEditTrialEmailNoticeConfig);
@ -1529,7 +1559,7 @@ namespace IRaCIS.Core.Application.Service
}
[TrialGlobalLimit( "AfterStopCannNotOpt" )]
[TrialGlobalLimit("AfterStopCannNotOpt")]
[HttpDelete("{trialEmailNoticeConfigId:guid}")]
public async Task<IResponseOutput> DeleteTrialEmailNoticeConfig(Guid trialEmailNoticeConfigId)
{

View File

@ -53,7 +53,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap<BatchAddTrialEmailNoticeConfig, TrialEmailNoticeConfig>();
CreateMap<TrialEmailNoticeConfigView, BatchAddTrialEmailNoticeConfig > ();
CreateMap<AddOrEditTrialDocument, TrialDocument>()

View File

@ -26,7 +26,7 @@ public class EmailNoticeConfig : BaseFullDeleteAuditEntity
public int BusinessLevelEnum { get; set; }
[Comment("业务模块")]
public int BusinessModuleEnum { get; set; }
public BusinessModule BusinessModuleEnum { get; set; }
[Comment("业务场景")]
public EmailBusinessScenario BusinessScenarioEnum { get; set; }
@ -83,3 +83,55 @@ public class EmailNoticeUserType : Entity
public EmailUserType EmailUserType { get; set; }
}
public enum BusinessModule
{
/// <summary>
/// 影像质控
/// </summary>
ImageQualityControl = 1,
/// <summary>
/// 影像阅片
/// </summary>
ImageReading = 2,
/// <summary>
/// 系统登录
/// </summary>
Login = 4,
/// <summary>
/// 后台邮件
/// </summary>
BackstageEmail = 5,
/// <summary>
/// 账号信息
/// </summary>
UserAccount = 6,
/// <summary>
/// 中心调研
/// </summary>
SiteSurvey = 7,
/// <summary>
/// 阅片人管理
/// </summary>
ReviewerManagement = 8,
/// <summary>
/// 问题反馈
/// </summary>
UsersSuggestions = 9,
/// <summary>
/// 入组确认
/// </summary>
EligibilityVerification = 10,
/// <summary>
/// PD确认
/// </summary>
PDVerification = 11,
/// <summary>
/// 医学反馈
/// </summary>
MedicalQC = 13,
/// <summary>
/// 入组/PD确认
/// </summary>
Eligibility_PDVerification = 12,
}

View File

@ -36,7 +36,7 @@ public class TrialEmailNoticeConfig : BaseFullDeleteAuditEntity
public int BusinessLevelEnum { get; set; }
public int BusinessModuleEnum { get; set; }
public BusinessModule BusinessModuleEnum { get; set; }
public EmailBusinessScenario BusinessScenarioEnum { get; set; }