From dd73415c007a28638788b17825995f099ae1b324 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 27 Jun 2023 16:05:07 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Common/PublishLogService.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/IRaCIS.Core.Application/Service/Common/PublishLogService.cs b/IRaCIS.Core.Application/Service/Common/PublishLogService.cs index 8dc3a1cf7..838210653 100644 --- a/IRaCIS.Core.Application/Service/Common/PublishLogService.cs +++ b/IRaCIS.Core.Application/Service/Common/PublishLogService.cs @@ -43,6 +43,13 @@ namespace IRaCIS.Core.Application.Service public async Task AddOrUpdatePublishLog(PublishLogAddOrEdit addOrEditPublishLog) { + Version version; + + if (!Version.TryParse(addOrEditPublishLog.Version, out version)) + { + return ResponseOutput.NotOk("版本号不符合要求"); + } + var verifyExp1 = new EntityVerifyExp() { VerifyExp = u => u.Version == addOrEditPublishLog.Version , From 978b230f000ac12ddb33fb8df2128e1d5744daaa Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 27 Jun 2023 16:08:08 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Common/InternationalizationService.cs | 1 + IRaCIS.Core.Application/Service/Common/PublishLogService.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs b/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs index 9ab02c47e..7c578c36e 100644 --- a/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs +++ b/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs @@ -24,6 +24,7 @@ namespace IRaCIS.Core.Application.Service _internationalizationRepository = internationalizationRepository; } + [HttpPost] public async Task> GetInternationalizationList(InternationalizationQuery inQuery) { diff --git a/IRaCIS.Core.Application/Service/Common/PublishLogService.cs b/IRaCIS.Core.Application/Service/Common/PublishLogService.cs index 838210653..5afb3aaf8 100644 --- a/IRaCIS.Core.Application/Service/Common/PublishLogService.cs +++ b/IRaCIS.Core.Application/Service/Common/PublishLogService.cs @@ -26,6 +26,7 @@ namespace IRaCIS.Core.Application.Service _publishLogRepository = publishLogRepository; } + [HttpPost] public async Task> GetPublishLogList(PublishLogQuery inQuery) { From 4eb5c97725d33ce94f43f84b9428d83a018ba6bb Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 27 Jun 2023 16:38:20 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Common/DTO/InternationalizationViewModel.cs | 4 ++-- .../Service/Common/InternationalizationService.cs | 8 ++++---- IRaCIS.Core.Domain/Common/Internationalization.cs | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Common/DTO/InternationalizationViewModel.cs b/IRaCIS.Core.Application/Service/Common/DTO/InternationalizationViewModel.cs index 9b51e5030..2425ca8e9 100644 --- a/IRaCIS.Core.Application/Service/Common/DTO/InternationalizationViewModel.cs +++ b/IRaCIS.Core.Application/Service/Common/DTO/InternationalizationViewModel.cs @@ -23,7 +23,7 @@ namespace IRaCIS.Core.Application.ViewModel public class InternationalizationQuery : PageInput { - public string? FolderPath { get; set; } + public string? Description { get; set; } public string? Code { get; set; } public string? Value { get; set; } @@ -36,7 +36,7 @@ namespace IRaCIS.Core.Application.ViewModel { public Guid? Id { get; set; } public int State { get; set; } - public string FolderPath { get; set; } + public string Description { get; set; } public string Code { get; set; } public string Value { get; set; } public string ValueCN { get; set; } diff --git a/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs b/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs index 7c578c36e..a110049bb 100644 --- a/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs +++ b/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs @@ -29,10 +29,10 @@ namespace IRaCIS.Core.Application.Service { var internationalizationQueryable =_internationalizationRepository - .WhereIf(inQuery.FolderPath!=null,t=>t.FolderPath.Contains(inQuery.FolderPath)) - .WhereIf(inQuery.Code != null, t => t.FolderPath.Contains(inQuery.Code)) - .WhereIf(inQuery.Value != null, t => t.FolderPath.Contains(inQuery.Value)) - .WhereIf(inQuery.ValueCN != null, t => t.FolderPath.Contains(inQuery.ValueCN)) + .WhereIf(inQuery.Description!=null,t=>t.Description.Contains(inQuery.Description)) + .WhereIf(inQuery.Code != null, t => t.Code.Contains(inQuery.Code)) + .WhereIf(inQuery.Value != null, t => t.Value.Contains(inQuery.Value)) + .WhereIf(inQuery.ValueCN != null, t => t.ValueCN.Contains(inQuery.ValueCN)) .ProjectTo(_mapper.ConfigurationProvider); var pageList = await internationalizationQueryable diff --git a/IRaCIS.Core.Domain/Common/Internationalization.cs b/IRaCIS.Core.Domain/Common/Internationalization.cs index bd6311a9d..dc3292224 100644 --- a/IRaCIS.Core.Domain/Common/Internationalization.cs +++ b/IRaCIS.Core.Domain/Common/Internationalization.cs @@ -33,7 +33,7 @@ namespace IRaCIS.Core.Domain.Models public int State { get; set; } - public string FolderPath { get; set; } + public string Description { get; set; } public string Code { get; set; } From 91a6f20dba1ab05ff57504c831863c504b08722a Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 27 Jun 2023 17:04:14 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=8E=BB=E6=8E=89hangfire=20=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0quartZ=20=20=E6=96=B9=E4=BE=BF=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=EF=BC=8C=E5=85=8D=E5=BE=97=E9=9C=80=E8=A6=81=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/IRaCIS.Core.API.csproj | 2 + IRaCIS.Core.API/Startup.cs | 4 +- .../_ServiceExtensions/QuartZSetup.cs | 54 +++++++++---------- .../CacheTrialStatusQuartZJob.cs | 38 +++++++++---- .../IRaCIS.Core.Application.xml | 29 ++++++++++ 5 files changed, 89 insertions(+), 38 deletions(-) diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.csproj b/IRaCIS.Core.API/IRaCIS.Core.API.csproj index 6f94ee5b8..c6af611a4 100644 --- a/IRaCIS.Core.API/IRaCIS.Core.API.csproj +++ b/IRaCIS.Core.API/IRaCIS.Core.API.csproj @@ -86,6 +86,8 @@ + + diff --git a/IRaCIS.Core.API/Startup.cs b/IRaCIS.Core.API/Startup.cs index 6fafd9402..92d6dd52f 100644 --- a/IRaCIS.Core.API/Startup.cs +++ b/IRaCIS.Core.API/Startup.cs @@ -114,7 +114,7 @@ namespace IRaCIS.Core.API //services.AddDistributedMemoryCache(); // hangfire ʱ н棬Ѻ~ - services.AddhangfireSetup(_configuration); + //services.AddhangfireSetup(_configuration); // QuartZ ʱ ʹhangfire ʱãҪԴ򿪣Ѿ services.AddQuartZSetup(_configuration); @@ -181,7 +181,7 @@ namespace IRaCIS.Core.API app.UseLogDashboard("/LogDashboard"); //hangfire - app.UseHangfireConfig(env); + //app.UseHangfireConfig(env); ////ʱ //app.UseHttpReports(); diff --git a/IRaCIS.Core.API/_ServiceExtensions/QuartZSetup.cs b/IRaCIS.Core.API/_ServiceExtensions/QuartZSetup.cs index bd48c49ab..2f42e8f7c 100644 --- a/IRaCIS.Core.API/_ServiceExtensions/QuartZSetup.cs +++ b/IRaCIS.Core.API/_ServiceExtensions/QuartZSetup.cs @@ -1,6 +1,8 @@  +using IRaCIS.Application.Services.BackGroundJob; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Quartz; namespace IRaCIS.Core.API { @@ -8,37 +10,35 @@ namespace IRaCIS.Core.API { public static void AddQuartZSetup(this IServiceCollection services, IConfiguration configuration) { - //services.AddTransient(); + services.AddTransient(); - //services.AddQuartz(q => - //{ - // // base quartz scheduler, job and trigger configuration + services.AddQuartz(q => + { + // base quartz scheduler, job and trigger configuration - // // as of 3.3.2 this also injects scoped services (like EF DbContext) without problems - // q.UseMicrosoftDependencyInjectionJobFactory(); + // as of 3.3.2 this also injects scoped services (like EF DbContext) without problems + q.UseMicrosoftDependencyInjectionJobFactory(); - // // 基本Quartz调度器、作业和触发器配置 - // var jobKey = new JobKey("RegularTrialWork", "regularWorkGroup"); - // q.AddJob(jobKey, j => j - // .WithDescription("Trial regular work") - // ); - // q.AddTrigger(t => t - // .WithIdentity("TrialStatusTrigger") - // .ForJob(jobKey) - // //.StartNow() - // //.WithSimpleSchedule(x => x.WithInterval(TimeSpan.FromSeconds(15))//开始秒数 15s - // // .RepeatForever())//持续工作 - // .WithCronSchedule("0 0 0/2 * * ?")//每小时执行一次 - // .WithDescription("My regular trial work trigger") - // ); - //}); + // 基本Quartz调度器、作业和触发器配置 + var jobKey = new JobKey("RegularTrialWork", "regularWorkGroup"); + q.AddJob(jobKey, j => j + .WithDescription("Trial regular work") + ); + q.AddTrigger(t => t + .WithIdentity("TrialStatusTrigger") + .ForJob(jobKey) + + .WithCronSchedule("0 0 * * * ?") + .WithDescription("My regular trial work trigger") + ); + }); - //// ASP.NET Core hosting - //services.AddQuartzServer(options => - //{ - // // when shutting down we want jobs to complete gracefully - // options.WaitForJobsToComplete = true; - //}); + // ASP.NET Core hosting + services.AddQuartzHostedService(options => + { + // when shutting down we want jobs to complete gracefully + options.WaitForJobsToComplete = true; + }); } } diff --git a/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusQuartZJob.cs b/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusQuartZJob.cs index dcc0f40ac..e3be27479 100644 --- a/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusQuartZJob.cs +++ b/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusQuartZJob.cs @@ -7,6 +7,7 @@ using IRaCIS.Core.Infra.EFCore; using IRaCIS.Core.Domain.Models; using Microsoft.Extensions.Logging; using Quartz; +using IRaCIS.Core.Domain.Share; namespace IRaCIS.Application.Services.BackGroundJob { @@ -17,36 +18,55 @@ namespace IRaCIS.Application.Services.BackGroundJob private readonly IRepository _trialRepository; private readonly IEasyCachingProvider _provider; private readonly ILogger _logger; + private readonly IRepository _systemAnonymizationRepository; - public CacheTrialStatusQuartZJob(IRepository trialRepository, IEasyCachingProvider provider,ILogger logger) + public CacheTrialStatusQuartZJob(IRepository trialRepository, IEasyCachingProvider provider,ILogger logger, IRepository systemAnonymizationRepository) { _trialRepository = trialRepository; _provider = provider; _logger = logger; + _systemAnonymizationRepository = systemAnonymizationRepository; } - public Task Execute(IJobExecutionContext context) + public async Task Execute(IJobExecutionContext context) { _logger.LogInformation($"开始执行QuartZ定时任务作业"); try { - var list = _trialRepository.Select(t => new { TrialId = t.Id, TrialStatusStr = t.TrialStatusStr }) - .ToList(); + await MemoryCacheTrialStatus(); + + await MemoryCacheAnonymizeData(); - list.ForEach(t => _provider.Set(t.TrialId.ToString(), t.TrialStatusStr, TimeSpan.FromDays(1))); - } catch (Exception e) { _logger.LogError($" 查询和缓存过程出现异常"+e.Message); } _logger.LogInformation("QuartZ定时任务作业结束"); - return Task.CompletedTask; } - - + public async Task MemoryCacheTrialStatus() + { + 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)); + } + + + } } \ No newline at end of file diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 4a10fe0d5..e9b41531c 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -680,6 +680,11 @@ InternationalizationService + + + PublishLogService + + TrialEmailNoticeConfigService @@ -2663,6 +2668,16 @@ + + + VisitId + + + + + VisitId + + 是否应用 @@ -7975,6 +7990,15 @@ InternationalizationAddOrEdit 列表查询参数模型 + + PublishLogView 列表视图模型 + + + PublishLogQuery 列表查询参数模型 + + + PublishLogAddOrEdit 列表查询参数模型 + TrialEmailNoticeConfigView 列表视图模型 @@ -8840,6 +8864,11 @@ IInternationalizationService + + + IPublishLogService + + ITrialEmailNoticeConfigService