From 3971e65482d8571b3b5849b29d1ac73b3bc9b6a0 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Wed, 10 Dec 2025 16:36:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 8 +++---- .../Recurring/QCRecurringEmailConsumer.cs | 24 ++++++++++++++----- .../Service/Document/TrialDocumentService.cs | 18 +++++++++++++- 3 files changed, 39 insertions(+), 11 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 6c879191d..7ce34bb53 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -15329,7 +15329,7 @@ QC 影像质疑 - + QC 影像质疑 @@ -15339,7 +15339,7 @@ CRC 影像质疑 - + CRC 影像质疑 @@ -15349,7 +15349,7 @@ 影像质控 发送给QC的 - + 影像质控 发送给QC的 @@ -18222,7 +18222,7 @@ - 测试定时发送 + 测试邮件定时发送 diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/QCRecurringEmailConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/QCRecurringEmailConsumer.cs index 84ee27d3a..f3460726c 100644 --- a/IRaCIS.Core.Application/MassTransit/Recurring/QCRecurringEmailConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Recurring/QCRecurringEmailConsumer.cs @@ -25,9 +25,11 @@ public class QCImageQuestionRecurringEventConsumer(IRepository _trialRepo IRepository _trialEmailNoticeConfigRepository, IRepository _trialUserRoleRepository, IRepository _visitTaskRepository, + IOptionsMonitor systemEmailConfig, IRepository _trialSiteUserRoleRepository, IOptionsMonitor _SystemEmailSendConfig) : IConsumer { + private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue; public async Task Consume(ConsumeContext context) { var trialId = context.Message.TrialId; @@ -64,8 +66,9 @@ public class QCImageQuestionRecurringEventConsumer(IRepository _trialRepo Func topicAndHtmlFunc = trialEmailConfig => { var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo); - var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, - user.FullName, DateTime.Now, sendStat.ToBeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl); + var htmlContent = isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN; + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, htmlContent), + user.FullName, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), sendStat.ToBeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl); return (topicStr, htmlBodyStr, isEn_us, userId); }; @@ -91,8 +94,10 @@ public class CRCImageQuestionRecurringEventConsumer(IRepository _trialRep IRepository _trialUserRoleRepository, IRepository _visitTaskRepository, IRepository _trialSiteUserRoleRepository, + IOptionsMonitor systemEmailConfig, IOptionsMonitor _SystemEmailSendConfig) : IConsumer { + private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue; public async Task Consume(ConsumeContext context) { var trialId = context.Message.TrialId; @@ -131,9 +136,10 @@ public class CRCImageQuestionRecurringEventConsumer(IRepository _trialRep Func topicAndHtmlFunc = trialEmailConfig => { var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo); - var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, + var htmlContent = isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN; + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, htmlContent), - user.FullName, DateTime.Now, sendStat.ToBeDealedCount - sendStat.ReUploadTobeDealedCount, sendStat.ReUploadTobeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl); + user.FullName, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), sendStat.ToBeDealedCount - sendStat.ReUploadTobeDealedCount, sendStat.ReUploadTobeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl); return (topicStr, htmlBodyStr, false, userId); @@ -158,8 +164,11 @@ public class ImageQCRecurringEventConsumer(IRepository _trialRepository, IRepository _trialUserRoleRepository, IRepository _visitTaskRepository, IRepository _trialSiteUserRoleRepository, + IOptionsMonitor systemEmailConfig, IOptionsMonitor _SystemEmailSendConfig) : IConsumer { + + private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue; public async Task Consume(ConsumeContext context) { var trialId=context.Message.TrialId; @@ -199,9 +208,12 @@ public class ImageQCRecurringEventConsumer(IRepository _trialRepository, Func topicAndHtmlFunc = trialEmailConfig => { + var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo); - var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, - user.FullName, DateTime.Now, sendStat.ToBeClaimedCount, sendStat.ToBeReviewedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl); + + var htmlContent = isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN; + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, htmlContent), + user.FullName, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), sendStat.ToBeClaimedCount, sendStat.ToBeReviewedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl); return (topicStr, htmlBodyStr, false, userId); }; diff --git a/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs b/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs index 7189d817a..131b4c887 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs @@ -121,7 +121,7 @@ namespace IRaCIS.Core.Application.Services } /// - /// 测试定时发送 + /// 测试邮件定时发送 /// /// public async Task TestPush() @@ -139,6 +139,22 @@ namespace IRaCIS.Core.Application.Services return ResponseOutput.Result(true); } + + public async Task TestSendEmail() + { + Task.Run(async () => + { + // 创建独立作用域 + using (var scope = serviceScopeFactory.CreateScope()) + { + // 从新作用域解析服务 + var mediator = scope.ServiceProvider.GetRequiredService(); + await mediator.Publish(new ImageQCRecurringEvent { TrialId= Guid.Parse("08de2254-5d7d-581a-0242-0a0001000000") }); + } + }); + return ResponseOutput.Result(true); + } + /// /// Setting 界面的 项目所有文档列表 ///