From 852506182db84d2b3b7ed8ba56951b37fedfcb4e Mon Sep 17 00:00:00 2001 From: zuohuaijun Date: Sun, 1 Sep 2024 14:54:08 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=98=8E1=E3=80=81=E8=8B=A5=E5=BC=80?= =?UTF-8?q?=E5=90=AF=E5=BC=BA=E5=88=B6=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E5=88=99=E9=BB=98=E8=AE=A490=E5=A4=A9=E5=BF=85=E9=A1=BB?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E6=AC=A1=E5=AF=86=E7=A0=81=20=202?= =?UTF-8?q?=E3=80=81=E4=BC=98=E5=8C=96=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Admin.NET/Admin.NET.Core/Job/LogJob.cs | 23 ++++++++++++++----- Admin.NET/Admin.NET.Core/Job/OnlineUserJob.cs | 4 ++-- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Admin.NET/Admin.NET.Core/Job/LogJob.cs b/Admin.NET/Admin.NET.Core/Job/LogJob.cs index 0f766e95..1ab23370 100644 --- a/Admin.NET/Admin.NET.Core/Job/LogJob.cs +++ b/Admin.NET/Admin.NET.Core/Job/LogJob.cs @@ -26,15 +26,13 @@ public class LogJob : IJob { using var serviceScope = _scopeFactory.CreateScope(); - var logVisRep = serviceScope.ServiceProvider.GetRequiredService>(); - var logOpRep = serviceScope.ServiceProvider.GetRequiredService>(); - var logDiffRep = serviceScope.ServiceProvider.GetRequiredService>(); + var db = serviceScope.ServiceProvider.GetRequiredService().CopyNew(); var sysConfigService = serviceScope.ServiceProvider.GetRequiredService(); var daysAgo = await sysConfigService.GetConfigValue(ConfigConst.SysLogRetentionDays); // 日志保留天数 - await logVisRep.CopyNew().AsDeleteable().Where(u => u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除访问日志 - await logOpRep.CopyNew().AsDeleteable().Where(u => u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除操作日志 - await logDiffRep.CopyNew().AsDeleteable().Where(u => u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除差异日志 + await db.Deleteable().Where(u => u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除访问日志 + await db.Deleteable().Where(u => u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除操作日志 + await db.Deleteable().Where(u => u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除差异日志 string msg = $"【{DateTime.Now}】清理系统日志成功,删除 {daysAgo} 天前的日志数据!"; var originColor = Console.ForegroundColor; @@ -44,5 +42,18 @@ public class LogJob : IJob // 自定义日志 _logger.LogInformation(msg); + + // 默认 3个月/90天 强制修改一次密码(将最新修改密码时间置空) + if (await sysConfigService.GetConfigValue(ConfigConst.SysForceChangePassword)) + { + var userIds = await db.Queryable() + .Where(u => SqlFunc.IsNullOrEmpty(u.LastChangePasswordTime) || (DateTime.Now - (DateTime)u.LastChangePasswordTime).Days > 90) + .Select(u => u.Id).ToListAsync(stoppingToken); + + await db.Updateable() + .SetColumns(u => new SysUser() { LastChangePasswordTime = null }) + .Where(u => userIds.Contains(u.Id)) + .ExecuteCommandAsync(stoppingToken); + } } } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Job/OnlineUserJob.cs b/Admin.NET/Admin.NET.Core/Job/OnlineUserJob.cs index e33ad308..7e49e698 100644 --- a/Admin.NET/Admin.NET.Core/Job/OnlineUserJob.cs +++ b/Admin.NET/Admin.NET.Core/Job/OnlineUserJob.cs @@ -28,8 +28,8 @@ public class OnlineUserJob : IJob { using var serviceScope = _scopeFactory.CreateScope(); - var rep = serviceScope.ServiceProvider.GetRequiredService>(); - await rep.CopyNew().AsDeleteable().ExecuteCommandAsync(stoppingToken); + var db = serviceScope.ServiceProvider.GetRequiredService().CopyNew(); + await db.Deleteable().ExecuteCommandAsync(stoppingToken); string msg = $"【{DateTime.Now}】清理在线用户成功!服务已重启..."; var originColor = Console.ForegroundColor;