diff --git a/IRaCIS.Core.Application/BackGroundJob/IRaCISCHangfireJob.cs b/IRaCIS.Core.Application/BackGroundJob/IRaCISCHangfireJob.cs index 514df5174..6317b4020 100644 --- a/IRaCIS.Core.Application/BackGroundJob/IRaCISCHangfireJob.cs +++ b/IRaCIS.Core.Application/BackGroundJob/IRaCISCHangfireJob.cs @@ -9,6 +9,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using SharpCompress.Common; +using ZiggyCreatures.Caching.Fusion; namespace IRaCIS.Application.Services.BackGroundJob { @@ -21,28 +22,16 @@ namespace IRaCIS.Application.Services.BackGroundJob Task InitHangfireJobTaskAsync(); } - public class IRaCISCHangfireJob : IIRaCISHangfireJob + public class IRaCISCHangfireJob(IRepository _trialRepository, + IEasyCachingProvider _provider, + ILogger _logger, + IRepository _systemAnonymizationRepository, + IRepository _internationalizationRepository, + IRepository _trialEmailNoticeConfigRepository + ) : IIRaCISHangfireJob { public static string JsonFileFolder = Path.Combine(AppContext.BaseDirectory, StaticData.Folder.Resources); - private readonly IRepository _trialRepository; - private readonly IEasyCachingProvider _provider; - private readonly ILogger _logger; - private readonly IRepository _systemAnonymizationRepository; - private readonly IRepository _trialEmailNoticeConfigRepository; - private readonly IRepository _internationalizationRepository; - - - - public IRaCISCHangfireJob(IRepository trialRepository, ILogger logger, IEasyCachingProvider provider, IRepository trialEmailNoticeConfigRepository, IRepository internationalizationRepository, IRepository systemAnonymizationRepository) - { - _trialRepository = trialRepository; - _provider = provider; - _logger = logger; - _trialEmailNoticeConfigRepository = trialEmailNoticeConfigRepository; - _internationalizationRepository = internationalizationRepository; - _systemAnonymizationRepository = systemAnonymizationRepository; - } public async Task InitHangfireJobTaskAsync() { @@ -52,7 +41,7 @@ namespace IRaCIS.Application.Services.BackGroundJob //项目状态 立即加载到缓存中 await MemoryCacheTrialStatusAsync(); - await MemoryCacheAnonymizeData(); + //await MemoryCacheAnonymizeData(); //创建项目缓存 定时任务 @@ -69,29 +58,8 @@ namespace IRaCIS.Application.Services.BackGroundJob _logger.LogInformation("项目启动 hangfire 任务初始化 执行结束"); } - /// - /// 缓存项目状态 - /// - /// - public async Task MemoryCacheTrialStatusAsync() - { - 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))); - - } - - public async Task MemoryCacheAnonymizeData() - { - 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)); - } @@ -136,6 +104,36 @@ namespace IRaCIS.Application.Services.BackGroundJob } + + + #region 废弃 前端上传的时候获取 + + + /// + /// 缓存项目状态--之前是启动的时候就获取所有的项目进行缓存,加上定时任务刷新,现在的话,改为是按照需要进行缓存请求数据库 + /// + /// + public async Task MemoryCacheTrialStatusAsync() + { + + 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))); + + } + public async Task MemoryCacheAnonymizeData() + { + 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)); + } + + + #endregion } diff --git a/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs b/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs index f7dfe2583..f231decaf 100644 --- a/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs +++ b/IRaCIS.Core.Application/BusinessFilter/TrialResourceFilter.cs @@ -5,6 +5,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.Extensions.Localization; using System.Text.RegularExpressions; +using ZiggyCreatures.Caching.Fusion; using static IRaCIS.Core.Domain.Share.StaticData; namespace IRaCIS.Core.Application.Filter @@ -16,36 +17,25 @@ namespace IRaCIS.Core.Application.Filter { private readonly IEasyCachingProvider _provider; private readonly IUserInfo _userInfo; - + private readonly IFusionCache _fusionCache; public IStringLocalizer _localizer; private readonly List _trialOptList=new List(); - public TrialResourceFilter(IEasyCachingProvider provider, IStringLocalizer localizer , IUserInfo userInfo, string trialOpt = null, string trialOpt2 = null, string trialOpt3 = null) + public TrialResourceFilter(IFusionCache fusionCache, IEasyCachingProvider provider, IStringLocalizer localizer , IUserInfo userInfo, string trialOpt = null, string trialOpt2 = null, string trialOpt3 = null) { + _fusionCache = fusionCache; _provider = provider; _userInfo = userInfo; _localizer = localizer; - //_trialOpt = trialOpt; if (!string.IsNullOrWhiteSpace(trialOpt)) _trialOptList.Add(trialOpt.Trim()); if (!string.IsNullOrWhiteSpace(trialOpt2)) _trialOptList.Add(trialOpt2.Trim()); if (!string.IsNullOrWhiteSpace(trialOpt3)) _trialOptList.Add(trialOpt3.Trim()); - } - - - //public TrialResourceFilter(IEasyCachingProvider provider, IUserInfo userInfo) - //{ - // _provider = provider; - // _userInfo = userInfo; - //} - - - - + StaticData //优先选择异步的方法 public async Task OnResourceExecutionAsync(ResourceExecutingContext context, ResourceExecutionDelegate next) diff --git a/IRaCIS.Core.Infrastructure/_IRaCIS/_Config/_StaticData.cs b/IRaCIS.Core.Infrastructure/_IRaCIS/_Config/_StaticData.cs index 42ab4a9ca..79ccfa568 100644 --- a/IRaCIS.Core.Infrastructure/_IRaCIS/_Config/_StaticData.cs +++ b/IRaCIS.Core.Infrastructure/_IRaCIS/_Config/_StaticData.cs @@ -15,6 +15,7 @@ public static class StaticData public static Dictionary Log_Locoalize_Dic = new Dictionary(); + #region 国际化 public static readonly string En_US_Json = "en-US.json"; public static readonly string Zh_CN_Json = "zh-CN.json"; @@ -70,9 +71,11 @@ public static class StaticData } + #endregion - #region 字典表项固定值 - public static readonly string Title = "Title"; + #region 字典表项固定值 + + public static readonly string Title = "Title"; public static readonly string ReadingType = "ReadingType"; public static readonly string Subspeciality = "Subspeciality"; @@ -80,6 +83,7 @@ public static class StaticData public static readonly string Criterion = "Criterion"; public static readonly string ReviewType = "ReviewType"; public static readonly string ReadingStandard = "ReadingStandard"; + #endregion