diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs index 2178dac27..7d60487ae 100644 --- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs +++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs @@ -10,6 +10,7 @@ using IRaCIS.Core.Application.Contracts.Dicom.DTO; using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Application.MediatR.CommandAndQueries; +using IRaCIS.Core.Application.MediatR.Handlers; using IRaCIS.Core.Application.Service; using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Domain.Models; @@ -207,11 +208,13 @@ namespace IRaCIS.Core.API.Controllers private readonly IRepository _repository; + private readonly IEasyCachingProvider _provider; - public StudyController(IMapper mapper, IUserInfo userInfo, IWebHostEnvironment hostEnvironment, IMediator mediator, + public StudyController(IMapper mapper, IUserInfo userInfo, IWebHostEnvironment hostEnvironment, IMediator mediator, IEasyCachingProvider provider, IRepository repository) { + _provider = provider; _hostEnvironment = hostEnvironment; _mediator = mediator; @@ -237,6 +240,11 @@ namespace IRaCIS.Core.API.Controllers { + if (_provider.Get>(StaticData.Anonymize.Anonymize_AddFixedFiled).Value==null ) + { + await _mediator.Send(new AnonymizeCacheRequest()); + } + //_logger.LogError("请求到达接口"); if (!HttpContext.Request.HasFormContentType || diff --git a/IRaCIS.Core.API/_PipelineExtensions/Hangfire/HangfireConfig.cs b/IRaCIS.Core.API/_PipelineExtensions/Hangfire/HangfireConfig.cs index 06ef8054e..5c5883030 100644 --- a/IRaCIS.Core.API/_PipelineExtensions/Hangfire/HangfireConfig.cs +++ b/IRaCIS.Core.API/_PipelineExtensions/Hangfire/HangfireConfig.cs @@ -30,7 +30,8 @@ namespace IRaCIS.Core.API //BackgroundJob.Enqueue(t => t.MemoryCacheTrialStatus()); //周期性任务,1天执行一次 - RecurringJob.AddOrUpdate(t => t.MemoryCacheTrialStatus(), Cron.Daily); + + RecurringJob.AddOrUpdate(t => t.MemoryCacheTrialStatus(), Cron.Daily); #endregion diff --git a/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusHangfireJob.cs b/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusHangfireJob.cs deleted file mode 100644 index 2eda2818a..000000000 --- a/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusHangfireJob.cs +++ /dev/null @@ -1,44 +0,0 @@ -using EasyCaching.Core; -using Microsoft.Extensions.Logging; - -namespace IRaCIS.Application.Services.BackGroundJob -{ - - public interface ICacheTrialStatusJob - { - Task MemoryCacheTrialStatus(); - } - public class CacheTrialStatusHangfireJob: ICacheTrialStatusJob - { - private readonly IRepository _trialRepository; - private readonly IEasyCachingProvider _provider; - private readonly ILogger _logger; - - public CacheTrialStatusHangfireJob(IRepository trialRepository, IEasyCachingProvider provider,ILogger logger) - { - _trialRepository = trialRepository; - _provider = provider; - _logger = logger; - } - public Task MemoryCacheTrialStatus() - { - _logger.LogInformation("hangfire 定时任务开始~"); - try - { - var list = _trialRepository.Select(t => new { TrialId = t.Id, TrialStatusStr = t.TrialStatusStr }) - .ToList(); - - list.ForEach(t => _provider.Set(t.TrialId.ToString(), t.TrialStatusStr, TimeSpan.FromDays(7))); - } - catch (Exception e) - { - _logger.LogError("hangfire 定时任务执行失败"+e.Message); - - } - - _logger.LogInformation("hangfire 定时任务执行结束"); - - return Task.CompletedTask; - } - } -} \ No newline at end of file diff --git a/IRaCIS.Core.Application/BackGroundJob/IRaCISCacheHangfireJob.cs b/IRaCIS.Core.Application/BackGroundJob/IRaCISCacheHangfireJob.cs new file mode 100644 index 000000000..577c26159 --- /dev/null +++ b/IRaCIS.Core.Application/BackGroundJob/IRaCISCacheHangfireJob.cs @@ -0,0 +1,65 @@ +using EasyCaching.Core; +using IRaCIS.Core.Domain.Share; +using Microsoft.Extensions.Logging; + +namespace IRaCIS.Application.Services.BackGroundJob +{ + + public interface IIRaCISCacheHangfireJob + { + Task MemoryCacheTrialStatus(); + } + public class IRaCISCacheHangfireJob: IIRaCISCacheHangfireJob + { + private readonly IRepository _trialRepository; + private readonly IEasyCachingProvider _provider; + private readonly ILogger _logger; + private readonly IRepository _systemAnonymizationRepository; + + public IRaCISCacheHangfireJob(IRepository trialRepository, IRepository systemAnonymizationRepository, IEasyCachingProvider provider,ILogger logger) + { + _trialRepository = trialRepository; + _provider = provider; + _logger = logger; + _systemAnonymizationRepository = systemAnonymizationRepository; + } + public async Task MemoryCacheTrialStatus() + { + _logger.LogInformation("hangfire 定时任务开始~"); + try + { + await CacheTrialStatusAsync(); + + await CacheAnonymizeAsync(); + } + catch (Exception e) + { + _logger.LogError("hangfire 定时任务执行失败"+e.Message); + + } + + _logger.LogInformation("hangfire 定时任务执行结束"); + + } + + + + private async Task CacheTrialStatusAsync() + { + var list = await _trialRepository.Select(t => new { TrialId = t.Id, TrialStatusStr = t.TrialStatusStr }) + .ToListAsync(); + + list.ForEach(t => _provider.Set(t.TrialId.ToString(), t.TrialStatusStr, TimeSpan.FromDays(7))); + } + + private async Task CacheAnonymizeAsync() + { + var systemAnonymizationList = await _systemAnonymizationRepository.Where(t => t.IsEnable).ToListAsync(); + + _provider.Set(StaticData.Anonymize.Anonymize_AddFixedFiled, systemAnonymizationList.Where(t => t.IsAdd && t.IsFixed).ToList(), TimeSpan.FromDays(7)); + _provider.Set(StaticData.Anonymize.Anonymize_AddIRCInfoFiled, systemAnonymizationList.Where(t => t.IsAdd && t.IsFixed == false).ToList(), TimeSpan.FromDays(7)); + _provider.Set(StaticData.Anonymize.Anonymize_FixedField, systemAnonymizationList.Where(t => t.IsAdd == false && t.IsFixed).ToList(), TimeSpan.FromDays(7)); + _provider.Set(StaticData.Anonymize.Anonymize_IRCInfoField, systemAnonymizationList.Where(t => t.IsAdd == false && t.IsFixed == false).ToList(), TimeSpan.FromDays(7)); + } + } +} \ No newline at end of file