From a06e6a26168c5e72c546d805f9033ebd8df82528 Mon Sep 17 00:00:00 2001 From: "{872297557@qq.com}" <872297557@qq.com> Date: Thu, 1 Dec 2022 11:38:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=82=AE=E4=BB=B6=E5=8F=91?= =?UTF-8?q?=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/Controllers/InspectionController.cs | 4 +++- .../_ServiceExtensions/Serilog/HttpContextEnricher.cs | 2 +- .../BusinessFilter/TrialResourceFilter.cs | 2 +- .../Service/Document/TrialEmailNoticeConfigService.cs | 7 ++++++- .../Service/TrialSiteUser/TrialConfigService.cs | 6 ++++++ IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs | 2 ++ 6 files changed, 19 insertions(+), 4 deletions(-) diff --git a/IRaCIS.Core.API/Controllers/InspectionController.cs b/IRaCIS.Core.API/Controllers/InspectionController.cs index 6e4684bbd..b6da6930d 100644 --- a/IRaCIS.Core.API/Controllers/InspectionController.cs +++ b/IRaCIS.Core.API/Controllers/InspectionController.cs @@ -4,7 +4,7 @@ using AutoMapper; using IRaCIS.Application.Interfaces; using IRaCIS.Core.Application.Contracts; - +using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Application.Image.QA; using IRaCIS.Core.Application.Interfaces; using IRaCIS.Core.Application.Service; @@ -300,6 +300,8 @@ namespace IRaCIS.Core.API.Controllers /// [HttpPost, Route("Inspection/configTrialBasicInfo/TrialConfigSignatureConfirm")] [UnitOfWork] + [TypeFilter(typeof(TrialResourceFilter))] + public async Task TrialConfigSignatureConfirm(DataInspectionDto opt) { var singid = await _inspectionService.RecordSing(opt.SignInfo); diff --git a/IRaCIS.Core.API/_ServiceExtensions/Serilog/HttpContextEnricher.cs b/IRaCIS.Core.API/_ServiceExtensions/Serilog/HttpContextEnricher.cs index 4948a695e..330cbc0a0 100644 --- a/IRaCIS.Core.API/_ServiceExtensions/Serilog/HttpContextEnricher.cs +++ b/IRaCIS.Core.API/_ServiceExtensions/Serilog/HttpContextEnricher.cs @@ -36,7 +36,7 @@ namespace IRaCIS.Core.API //logEvent.AddPropertyIfAbsent(propertyFactory.CreateProperty("RequestBody", await ReadRequestBody(httpContext.Request))); //logEvent.AddPropertyIfAbsent(propertyFactory.CreateProperty("RequestIP", IPHelper.GetIP(httpContext.Request) )); logEvent.AddPropertyIfAbsent(propertyFactory.CreateProperty("TokenUserRealName", httpContext?.User?.FindFirst(ClaimAttributes.RealName)?.Value)); - logEvent.AddPropertyIfAbsent(propertyFactory.CreateProperty("TokenUserType", httpContext?.User?.FindFirst("userTypeEnumName")?.Value)); + logEvent.AddPropertyIfAbsent(propertyFactory.CreateProperty("TokenUserType", httpContext?.User?.FindFirst(JwtIRaCISClaimType.UserTypeShortName)?.Value)); //logEvent.AddPropertyIfAbsent(propertyFactory.CreateProperty("Referer", httpContext.Request.Headers["Referer"].ToString())); //logEvent.AddPropertyIfAbsent(propertyFactory.CreateProperty("request_path", httpContext.Request.Path)); diff --git a/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs b/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs index f6775a8e8..2ba6c8812 100644 --- a/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs +++ b/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs @@ -9,7 +9,7 @@ namespace IRaCIS.Core.Application.Filter /// /// 主要为了 处理项目结束 锁库,不允许操作 /// - public class TrialResourceFilter : Attribute, IAsyncResourceFilter /* , IResourceFilter*/ + public class TrialResourceFilter : Attribute, IAsyncResourceFilter { private readonly IEasyCachingProvider _provider; private readonly IUserInfo _userInfo; diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs index b39fa6d08..90fd5400b 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs @@ -107,6 +107,7 @@ namespace IRaCIS.Core.Application.Service t.SourceSubjectVisitId, t.SouceReadModuleId, t.SubjectId, + t.Subject.SiteId, t.ReadingTaskState, t.ReadingCategory, @@ -182,8 +183,12 @@ namespace IRaCIS.Core.Application.Service var sendEmailConfig = new SMTPEmailConfig(); + //收件人 如果是CRC CRA 要按照中心发送 var toUserTypeEnumList = emailConfig.TrialEmailNoticeUserList.Where(t => t.EmailUserType == EmailUserType.To).Select(c => c.UserType).ToList(); - var toUserList = _repository.Where(t => t.TrialId == taskInfo.TrialId && toUserTypeEnumList.Contains(t.User.UserTypeEnum)).Select(t => new { t.User.EMail, t.User.FullName }).ToList(); + + + + var toUserList = _repository.Where(t => t.TrialId == taskInfo.TrialId && toUserTypeEnumList.Contains(t.User.UserTypeEnum) && t.SiteId== taskInfo.SiteId).Select(t => new { t.User.EMail, t.User.FullName }).ToList(); var copyUserTypeEnumList = emailConfig.TrialEmailNoticeUserList.Where(t => t.EmailUserType == EmailUserType.Copy).Select(c => c.UserType).ToList(); var copyUserList = _repository.Where(t => t.TrialId == taskInfo.TrialId && copyUserTypeEnumList.Contains(t.User.UserTypeEnum)).Select(t => new { t.User.EMail, t.User.FullName }).ToList(); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 948a06197..f3c15670a 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -14,6 +14,7 @@ using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Application.Interfaces; using IRaCIS.Core.Application.ViewModel; using MassTransit; +using IRaCIS.Core.Application.Filter; namespace IRaCIS.Core.Application { @@ -647,6 +648,7 @@ namespace IRaCIS.Core.Application /// [HttpPut] [Authorize(Policy = IRaCISPolicy.PM_APM)] + [TypeFilter(typeof(TrialResourceFilter))] public async Task ConfigTrialBasicInfo(BasicTrialConfig trialConfig) { await VerifyOnlyInOngoingOrInitialIzingOptAsync(trialConfig.TrialId); @@ -670,6 +672,7 @@ namespace IRaCIS.Core.Application /// [HttpPut] [Authorize(Policy = IRaCISPolicy.PM_APM)] + [TypeFilter(typeof(TrialResourceFilter))] public async Task ConfigTrialProcessInfo(TrialProcessConfig trialConfig) { if (!await _trialRepository.Where(t => t.Id == trialConfig.TrialId).IgnoreQueryFilters().AnyAsync(t => t.TrialStatusStr == StaticData.TrialState.TrialInitializing)) @@ -743,6 +746,7 @@ namespace IRaCIS.Core.Application /// [HttpPut] [Authorize(Policy = IRaCISPolicy.PM_APM)] + [TypeFilter(typeof(TrialResourceFilter))] public async Task ConfigTrialUrgentInfo(TrialUrgentConfig trialConfig) { @@ -902,6 +906,7 @@ namespace IRaCIS.Core.Application /// /// [HttpPut] + [TypeFilter(typeof(TrialResourceFilter))] public async Task ConfigTrialTaskInfo(TrialTaskConfig trialConfig) { var trialInfo = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId)).IfNullThrowException(); @@ -918,6 +923,7 @@ namespace IRaCIS.Core.Application /// /// [HttpPut] + [TypeFilter(typeof(TrialResourceFilter))] public async Task ConfigTrialReadingTaskViewRule(TrialReadingTaskViewConfig trialConfig) { var trialInfo = (await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialConfig.TrialId)).IfNullThrowException(); diff --git a/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs b/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs index fcb72be74..596c1ec9b 100644 --- a/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs +++ b/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs @@ -88,6 +88,7 @@ namespace IRaCIS.Application.Services /// 添加或更新访视计划某项 [UnitOfWork] [HttpPost] + [TypeFilter(typeof(TrialResourceFilter))] [Authorize(Policy = IRaCISPolicy.PM_APM)] public async Task AddOrUpdateVisitStage(VisitPlanCommand visitPlan) { @@ -189,6 +190,7 @@ namespace IRaCIS.Application.Services [UnitOfWork] [HttpPost("{trialId:guid}")] + [TypeFilter(typeof(TrialResourceFilter))] [Authorize(Policy = IRaCISPolicy.PM_APM)] public async Task ConfirmTrialVisitPlan(Guid trialId) {