diff --git a/Admin.NET/Admin.NET.Application/Service/App/Auth/AppAuthService.cs b/Admin.NET/Admin.NET.Application/Service/App/Auth/AppAuthService.cs index ad178dba..d389d907 100644 --- a/Admin.NET/Admin.NET.Application/Service/App/Auth/AppAuthService.cs +++ b/Admin.NET/Admin.NET.Application/Service/App/Auth/AppAuthService.cs @@ -59,12 +59,12 @@ public class AppAuthService : IDynamicApiController, ITransient // 判断密码错误次数(缓存30分钟) var keyPasswordErrorTimes = $"{CacheConst.KeyPasswordErrorTimes}{input.Account}"; var passwordErrorTimes = _sysCacheService.Get(keyPasswordErrorTimes); - var passwdMaxErrorTimes = await _sysConfigService.GetConfigValue(CommonConst.SysPasswordMaxErrorTimes); + var passwdMaxErrorTimes = await _sysConfigService.GetConfigValue(ConfigConst.SysPasswordMaxErrorTimes); if (passwordErrorTimes >= passwdMaxErrorTimes) throw Oops.Oh(ErrorCodeEnum.D1027); // 是否开启验证码 - if (await _sysConfigService.GetConfigValue(CommonConst.SysCaptcha)) + if (await _sysConfigService.GetConfigValue(ConfigConst.SysCaptcha)) { // 判断验证码 if (!_captcha.Validate(input.CodeId.ToString(), input.Code)) diff --git a/Admin.NET/Admin.NET.Core/Const/CommonConst.cs b/Admin.NET/Admin.NET.Core/Const/CommonConst.cs index bfecf5e7..32beb009 100644 --- a/Admin.NET/Admin.NET.Core/Const/CommonConst.cs +++ b/Admin.NET/Admin.NET.Core/Const/CommonConst.cs @@ -12,91 +12,11 @@ namespace Admin.NET.Core; [Const("平台配置")] public class CommonConst { - /// - /// 演示环境开关 - /// - public const string SysDemoEnv = "sys_demo"; - - /// - /// 默认密码 - /// - public const string SysPassword = "sys_password"; - - /// - /// 密码最大错误次数 - /// - public const string SysPasswordMaxErrorTimes = "sys_password_max_error_times"; - - /// - /// 登录二次验证 - /// - public const string SysSecondVer = "sys_second_ver"; - - /// - /// 开启图形验证码 - /// - public const string SysCaptcha = "sys_captcha"; - - /// - /// 开启水印 - /// - public const string SysWatermark = "sys_watermark"; - - /// - /// 开启操作日志 - /// - public const string SysOpLog = "sys_oplog"; - - /// - /// Token过期时间 - /// - public const string SysTokenExpire = "sys_token_expire"; - - /// - /// RefreshToken过期时间 - /// - public const string SysRefreshTokenExpire = "sys_refresh_token_expire"; - - /// - /// 开启发送异常日志邮件 - /// - public const string SysErrorMail = "sys_error_mail"; - - /// - /// 单用户登录 - /// - public const string SysSingleLogin = "sys_single_login"; - /// /// 系统管理员角色编码 /// public const string SysAdminRole = "sys_admin"; - ///// - ///// 开启全局脱敏处理(默认不开启) - ///// - //public static bool SysSensitiveDetection = false; - - /// - /// 开启域登录验证 - /// - public const string SysDomainLogin = "sys_domain_login"; - - /// - /// 开启记录数据校验日志 - /// - public const string SysValidationLog = "sys_validation_log"; - - /// - /// 行政区域同步层级 1-省级,2-市级,3-区县级,4-街道级,5-村级 - /// - public const string SysRegionSyncLevel = "sys_region_sync_level"; - - /// - /// 日志保留天数 - /// - public const string SysLogRetentionDays = "sys_log_retention_days"; - /// /// 日志分组名称 /// diff --git a/Admin.NET/Admin.NET.Core/Const/ConfigConst.cs b/Admin.NET/Admin.NET.Core/Const/ConfigConst.cs index ec33dabb..0cdd2d28 100644 --- a/Admin.NET/Admin.NET.Core/Const/ConfigConst.cs +++ b/Admin.NET/Admin.NET.Core/Const/ConfigConst.cs @@ -11,6 +11,76 @@ namespace Admin.NET.Core; /// public class ConfigConst { + /// + /// 演示环境 + /// + public const string SysDemoEnv = "sys_demo"; + + /// + /// 默认密码 + /// + public const string SysPassword = "sys_password"; + + /// + /// 密码最大错误次数 + /// + public const string SysPasswordMaxErrorTimes = "sys_password_max_error_times"; + + /// + /// 日志保留天数 + /// + public const string SysLogRetentionDays = "sys_log_retention_days"; + + /// + /// 记录操作日志 + /// + public const string SysOpLog = "sys_oplog"; + + /// + /// 单设备登录 + /// + public const string SysSingleLogin = "sys_single_login"; + + /// + /// 登录二次验证 + /// + public const string SysSecondVer = "sys_second_ver"; + + /// + /// 图形验证码 + /// + public const string SysCaptcha = "sys_captcha"; + + /// + /// Token过期时间 + /// + public const string SysTokenExpire = "sys_token_expire"; + + /// + /// RefreshToken过期时间 + /// + public const string SysRefreshTokenExpire = "sys_refresh_token_expire"; + + /// + /// 发送异常日志邮件 + /// + public const string SysErrorMail = "sys_error_mail"; + + /// + /// 域登录验证 + /// + public const string SysDomainLogin = "sys_domain_login"; + + /// + /// 数据校验日志 + /// + public const string SysValidationLog = "sys_validation_log"; + + /// + /// 行政区域同步层级 1-省级,2-市级,3-区县级,4-街道级,5-村级 + /// + public const string SysRegionSyncLevel = "sys_region_sync_level"; + /// /// WebConfig 分组 /// diff --git a/Admin.NET/Admin.NET.Core/Hub/OnlineUserHub.cs b/Admin.NET/Admin.NET.Core/Hub/OnlineUserHub.cs index 6e1d583e..59f6d7b3 100644 --- a/Admin.NET/Admin.NET.Core/Hub/OnlineUserHub.cs +++ b/Admin.NET/Admin.NET.Core/Hub/OnlineUserHub.cs @@ -61,7 +61,7 @@ public class OnlineUserHub : Hub await _sysOnlineUerRep.InsertAsync(user); // 是否开启单用户登录 - if (await _sysConfigService.GetConfigValue(CommonConst.SysSingleLogin)) + if (await _sysConfigService.GetConfigValue(ConfigConst.SysSingleLogin)) { _sysCacheService.Set(CacheConst.KeyUserOnline + user.UserId, user); } @@ -102,7 +102,7 @@ public class OnlineUserHub : Hub await _sysOnlineUerRep.DeleteAsync(u => u.Id == user.Id); // 是否开启单用户登录 - if (await _sysConfigService.GetConfigValue(CommonConst.SysSingleLogin)) + if (await _sysConfigService.GetConfigValue(ConfigConst.SysSingleLogin)) { _sysCacheService.Remove(CacheConst.KeyUserOnline + user.UserId); } diff --git a/Admin.NET/Admin.NET.Core/Job/LogJob.cs b/Admin.NET/Admin.NET.Core/Job/LogJob.cs index f29036d2..0f766e95 100644 --- a/Admin.NET/Admin.NET.Core/Job/LogJob.cs +++ b/Admin.NET/Admin.NET.Core/Job/LogJob.cs @@ -31,10 +31,10 @@ public class LogJob : IJob var logDiffRep = serviceScope.ServiceProvider.GetRequiredService>(); var sysConfigService = serviceScope.ServiceProvider.GetRequiredService(); - var daysAgo = await sysConfigService.GetConfigValue(CommonConst.SysLogRetentionDays); // 日志保留天数 - await logVisRep.CopyNew().AsDeleteable().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除访问日志 - await logOpRep.CopyNew().AsDeleteable().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除操作日志 - await logDiffRep.CopyNew().AsDeleteable().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(stoppingToken); // 删除差异日志 + 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); // 删除差异日志 string msg = $"【{DateTime.Now}】清理系统日志成功,删除 {daysAgo} 天前的日志数据!"; var originColor = Console.ForegroundColor; diff --git a/Admin.NET/Admin.NET.Core/Logging/DatabaseLoggingWriter.cs b/Admin.NET/Admin.NET.Core/Logging/DatabaseLoggingWriter.cs index dfc2f66d..54617af4 100644 --- a/Admin.NET/Admin.NET.Core/Logging/DatabaseLoggingWriter.cs +++ b/Admin.NET/Admin.NET.Core/Logging/DatabaseLoggingWriter.cs @@ -51,7 +51,7 @@ public class DatabaseLoggingWriter : IDatabaseLoggingWriter, IDisposable var loggingMonitor = JSON.Deserialize(jsonStr); // 记录数据校验日志 - if (loggingMonitor.validation != null && !await _sysConfigService.GetConfigValue(CommonConst.SysValidationLog)) return; + if (loggingMonitor.validation != null && !await _sysConfigService.GetConfigValue(ConfigConst.SysValidationLog)) return; // 获取当前操作者 string account = "", realName = "", userId = "", tenantId = ""; @@ -125,7 +125,7 @@ public class DatabaseLoggingWriter : IDatabaseLoggingWriter, IDisposable }).ExecuteCommandAsync(); // 将异常日志发送到邮件 - if (await _sysConfigService.GetConfigValue(CommonConst.SysErrorMail)) + if (await _sysConfigService.GetConfigValue(ConfigConst.SysErrorMail)) { await App.GetRequiredService().PublishAsync(CommonConst.SendErrorMail, logMsg.Exception ?? loggingMonitor.exception); } @@ -160,7 +160,7 @@ public class DatabaseLoggingWriter : IDatabaseLoggingWriter, IDisposable } // 记录操作日志 - if (!await _sysConfigService.GetConfigValue(CommonConst.SysOpLog)) return; + if (!await _sysConfigService.GetConfigValue(ConfigConst.SysOpLog)) return; await _db.Insertable(new SysLogOp { ControllerName = loggingMonitor.controllerName, diff --git a/Admin.NET/Admin.NET.Core/Logging/ElasticSearchLoggingWriter.cs b/Admin.NET/Admin.NET.Core/Logging/ElasticSearchLoggingWriter.cs index ea2bce48..d4253a57 100644 --- a/Admin.NET/Admin.NET.Core/Logging/ElasticSearchLoggingWriter.cs +++ b/Admin.NET/Admin.NET.Core/Logging/ElasticSearchLoggingWriter.cs @@ -27,7 +27,7 @@ public class ElasticSearchLoggingWriter : IDatabaseLoggingWriter, IDisposable public async Task WriteAsync(LogMessage logMsg, bool flush) { // 是否启用操作日志 - var sysOpLogEnabled = await _sysConfigService.GetConfigValue(CommonConst.SysOpLog); + var sysOpLogEnabled = await _sysConfigService.GetConfigValue(ConfigConst.SysOpLog); if (!sysOpLogEnabled) return; var jsonStr = logMsg.Context?.Get("loggingMonitor")?.ToString(); diff --git a/Admin.NET/Admin.NET.Core/SeedData/SysConfigSeedData.cs b/Admin.NET/Admin.NET.Core/SeedData/SysConfigSeedData.cs index 53b97a0e..c885d0ea 100644 --- a/Admin.NET/Admin.NET.Core/SeedData/SysConfigSeedData.cs +++ b/Admin.NET/Admin.NET.Core/SeedData/SysConfigSeedData.cs @@ -19,28 +19,28 @@ public class SysConfigSeedData : ISqlSugarEntitySeedData { return new[] { - new SysConfig{ Id=1300000000101, Name="演示环境", Code="sys_demo", Value="False", SysFlag=YesNoEnum.Y, Remark="演示环境", OrderNo=10, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000111, Name="默认密码", Code="sys_password", Value="123456", SysFlag=YesNoEnum.Y, Remark="默认密码", OrderNo=20, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000121, Name="密码最大错误次数", Code="sys_password_max_error_times", Value="5", SysFlag=YesNoEnum.Y, Remark="允许密码最大输入错误次数", OrderNo=30, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000131, Name="日志保留天数", Code="sys_log_retention_days", Value="180", SysFlag=YesNoEnum.Y, Remark="日志保留天数(天)", OrderNo=40, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000141, Name="记录操作日志", Code="sys_oplog", Value="True", SysFlag=YesNoEnum.Y, Remark="是否记录操作日志", OrderNo=50, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000151, Name="开启单设备登录", Code="sys_single_login", Value="False", SysFlag=YesNoEnum.Y, Remark="是否开启单设备登录", OrderNo=60, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000161, Name="开启登录二次验证", Code="sys_second_ver", Value="False", SysFlag=YesNoEnum.Y, Remark="是否开启登录二次验证", OrderNo=70, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000171, Name="开启图形验证码", Code="sys_captcha", Value="True", SysFlag=YesNoEnum.Y, Remark="是否开启图形验证码", OrderNo=80, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000181, Name="Token过期时间", Code="sys_token_expire", Value="10080", SysFlag=YesNoEnum.Y, Remark="Token过期时间(分钟)", OrderNo=90, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000191, Name="刷新Token过期时间", Code="sys_refresh_token_expire", Value="20160", SysFlag=YesNoEnum.Y, Remark="刷新Token过期时间(分钟)(一般 refresh_token 的有效时间 > 2 * access_token 的有效时间)", OrderNo=100, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000201, Name="发送异常日志邮件", Code="sys_error_mail", Value="True", SysFlag=YesNoEnum.Y, Remark="是否发送异常日志邮件", OrderNo=110, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000211, Name="开启域登录验证", Code="sys_domain_login", Value="False", SysFlag=YesNoEnum.Y, Remark="是否开启域登录验证", OrderNo=120, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000221, Name="开启数据校验日志", Code="sys_validation_log", Value="True", SysFlag=YesNoEnum.Y, Remark="是否数据校验日志", OrderNo=130, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000231, Name="行政区域同步层级", Code="sys_region_sync_level", Value="3", SysFlag=YesNoEnum.Y, Remark="行政区域同步层级 1-省级,2-市级,3-区县级,4-街道级,5-村级", OrderNo=140, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000301, Name="系统主标题", Code="sys_web_title", Value="Admin.NET.Pro", SysFlag=YesNoEnum.Y, Remark="系统主标题", OrderNo=300, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000311, Name="系统副标题", Code="sys_web_viceTitle", Value="Admin.NET.Pro", SysFlag=YesNoEnum.Y, Remark="系统副标题", OrderNo=310, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000321, Name="系统描述", Code="sys_web_viceDesc", Value="站在巨人肩膀上的 .NET 通用权限开发框架", SysFlag=YesNoEnum.Y, Remark="系统描述", OrderNo=320, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000331, Name="水印内容", Code="sys_web_watermark", Value="Admin.NET.Pro", SysFlag=YesNoEnum.Y, Remark="水印内容", OrderNo=330, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000341, Name="版权说明", Code="sys_web_copyright", Value="Copyright © 2021-present Admin.NET All rights reserved.", SysFlag=YesNoEnum.Y, Remark="版权说明", OrderNo=340, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000351, Name="系统图标", Code="sys_web_logo", Value="/Upload/logo.png", SysFlag=YesNoEnum.Y, Remark="系统图标", OrderNo=350, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000361, Name="ICP备案号", Code="sys_web_icp", Value="省ICP备12345678号", SysFlag=YesNoEnum.Y, Remark="ICP备案号", OrderNo=360, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysConfig{ Id=1300000000371, Name="ICP地址", Code="sys_web_icpUrl", Value="https://beian.miit.gov.cn", SysFlag=YesNoEnum.Y, Remark="ICP地址", OrderNo=370, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000101, Name="演示环境", Code=ConfigConst.SysDemoEnv, Value="False", SysFlag=YesNoEnum.Y, Remark="演示环境", OrderNo=10, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000111, Name="默认密码", Code=ConfigConst.SysPassword, Value="123456", SysFlag=YesNoEnum.Y, Remark="默认密码", OrderNo=20, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000121, Name="密码最大错误次数", Code=ConfigConst.SysPasswordMaxErrorTimes, Value="5", SysFlag=YesNoEnum.Y, Remark="允许密码最大输入错误次数", OrderNo=30, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000131, Name="日志保留天数", Code=ConfigConst.SysLogRetentionDays, Value="180", SysFlag=YesNoEnum.Y, Remark="日志保留天数(天)", OrderNo=40, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000141, Name="记录操作日志", Code=ConfigConst.SysOpLog, Value="True", SysFlag=YesNoEnum.Y, Remark="是否记录操作日志", OrderNo=50, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000151, Name="单设备登录", Code=ConfigConst.SysSingleLogin, Value="False", SysFlag=YesNoEnum.Y, Remark="是否开启单设备登录", OrderNo=60, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000161, Name="登录二次验证", Code=ConfigConst.SysSecondVer, Value="False", SysFlag=YesNoEnum.Y, Remark="是否开启登录二次验证", OrderNo=70, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000171, Name="图形验证码", Code=ConfigConst.SysCaptcha, Value="True", SysFlag=YesNoEnum.Y, Remark="是否开启图形验证码", OrderNo=80, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000181, Name="Token过期时间", Code=ConfigConst.SysTokenExpire, Value="10080", SysFlag=YesNoEnum.Y, Remark="Token过期时间(分钟)", OrderNo=90, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000191, Name="RefreshToken过期时间", Code=ConfigConst.SysRefreshTokenExpire, Value="20160", SysFlag=YesNoEnum.Y, Remark="刷新Token过期时间(分钟)(一般 refresh_token 的有效时间 > 2 * access_token 的有效时间)", OrderNo=100, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000201, Name="发送异常日志邮件", Code=ConfigConst.SysErrorMail, Value="True", SysFlag=YesNoEnum.Y, Remark="是否发送异常日志邮件", OrderNo=110, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000211, Name="域登录验证", Code=ConfigConst.SysDomainLogin, Value="False", SysFlag=YesNoEnum.Y, Remark="是否开启域登录验证", OrderNo=120, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000221, Name="数据校验日志", Code=ConfigConst.SysValidationLog, Value="True", SysFlag=YesNoEnum.Y, Remark="是否数据校验日志", OrderNo=130, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000231, Name="行政区域同步层级", Code=ConfigConst.SysRegionSyncLevel, Value="3", SysFlag=YesNoEnum.Y, Remark="行政区域同步层级 1-省级,2-市级,3-区县级,4-街道级,5-村级", OrderNo=140, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000301, Name="系统主标题", Code=ConfigConst.SysWebTitle, Value="Admin.NET.Pro", SysFlag=YesNoEnum.Y, Remark="系统主标题", OrderNo=300, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000311, Name="系统副标题", Code=ConfigConst.SysWebViceTitle, Value="Admin.NET.Pro", SysFlag=YesNoEnum.Y, Remark="系统副标题", OrderNo=310, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000321, Name="系统描述", Code=ConfigConst.SysWebViceDesc, Value="站在巨人肩膀上的 .NET 通用权限开发框架", SysFlag=YesNoEnum.Y, Remark="系统描述", OrderNo=320, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000331, Name="水印内容", Code=ConfigConst.SysWebWatermark, Value="Admin.NET.Pro", SysFlag=YesNoEnum.Y, Remark="水印内容", OrderNo=330, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000341, Name="版权说明", Code=ConfigConst.SysWebCopyright, Value="Copyright © 2021-present Admin.NET All rights reserved.", SysFlag=YesNoEnum.Y, Remark="版权说明", OrderNo=340, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000351, Name="系统图标", Code=ConfigConst.SysWebLogo, Value="/Upload/logo.png", SysFlag=YesNoEnum.Y, Remark="系统图标", OrderNo=350, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000361, Name="ICP备案号", Code=ConfigConst.SysWebIcp, Value="省ICP备12345678号", SysFlag=YesNoEnum.Y, Remark="ICP备案号", OrderNo=360, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000371, Name="ICP地址", Code=ConfigConst.SysWebIcpUrl, Value="https://beian.miit.gov.cn", SysFlag=YesNoEnum.Y, Remark="ICP地址", OrderNo=370, GroupCode="WebConfig", CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, }; } } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs b/Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs index 38013046..ac0e7c43 100644 --- a/Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs @@ -65,12 +65,12 @@ public class SysAuthService : IDynamicApiController, ITransient // 判断密码错误次数(缓存30分钟) var keyPasswordErrorTimes = $"{CacheConst.KeyPasswordErrorTimes}{input.Account}"; var passwordErrorTimes = _sysCacheService.Get(keyPasswordErrorTimes); - var passwdMaxErrorTimes = await _sysConfigService.GetConfigValue(CommonConst.SysPasswordMaxErrorTimes); + var passwdMaxErrorTimes = await _sysConfigService.GetConfigValue(ConfigConst.SysPasswordMaxErrorTimes); if (passwordErrorTimes >= passwdMaxErrorTimes) throw Oops.Oh(ErrorCodeEnum.D1027); // 是否开启验证码 - if (await _sysConfigService.GetConfigValue(CommonConst.SysCaptcha)) + if (await _sysConfigService.GetConfigValue(ConfigConst.SysCaptcha)) { // 判断验证码 if (!_captcha.Validate(input.CodeId.ToString(), input.Code)) @@ -101,7 +101,7 @@ public class SysAuthService : IDynamicApiController, ITransient } // 是否开启域登录验证 - if (await _sysConfigService.GetConfigValue(CommonConst.SysDomainLogin)) + if (await _sysConfigService.GetConfigValue(ConfigConst.SysDomainLogin)) { var userLdap = await _sysUserLdap.GetFirstAsync(u => u.UserId == user.Id && u.TenantId == tenant.Id); if (userLdap == null) @@ -334,23 +334,11 @@ public class SysAuthService : IDynamicApiController, ITransient [DisplayName("获取登录配置")] public async Task GetLoginConfig() { - var secondVerEnabled = await _sysConfigService.GetConfigValue(CommonConst.SysSecondVer); - var captchaEnabled = await _sysConfigService.GetConfigValue(CommonConst.SysCaptcha); + var secondVerEnabled = await _sysConfigService.GetConfigValue(ConfigConst.SysSecondVer); + var captchaEnabled = await _sysConfigService.GetConfigValue(ConfigConst.SysCaptcha); return new { SecondVerEnabled = secondVerEnabled, CaptchaEnabled = captchaEnabled }; } - /// - /// 获取水印配置 🔖 - /// - /// - [SuppressMonitor] - [DisplayName("获取水印配置")] - public async Task GetWatermarkConfig() - { - var watermarkEnabled = await _sysConfigService.GetConfigValue(CommonConst.SysWatermark); - return new { WatermarkEnabled = watermarkEnabled }; - } - /// /// 获取验证码 🔖 /// @@ -389,7 +377,7 @@ public class SysAuthService : IDynamicApiController, ITransient { try { - _sysCacheService.Set($"{CacheConst.KeyConfig}{CommonConst.SysCaptcha}", false); + _sysCacheService.Set($"{CacheConst.KeyConfig}{ConfigConst.SysCaptcha}", false); await Login(new LoginInput { @@ -397,7 +385,7 @@ public class SysAuthService : IDynamicApiController, ITransient Password = CryptogramUtil.SM2Encrypt(auth.Password), }); - _sysCacheService.Remove($"{CacheConst.KeyConfig}{CommonConst.SysCaptcha}"); + _sysCacheService.Remove($"{CacheConst.KeyConfig}{ConfigConst.SysCaptcha}"); return 200; } diff --git a/Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs b/Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs index ecb4f26b..e54b7f93 100644 --- a/Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs @@ -195,7 +195,7 @@ public class SysConfigService : IDynamicApiController, ITransient [NonAction] public async Task GetTokenExpire() { - var tokenExpireStr = await GetConfigValue(CommonConst.SysTokenExpire); + var tokenExpireStr = await GetConfigValue(ConfigConst.SysTokenExpire); _ = int.TryParse(tokenExpireStr, out var tokenExpire); return tokenExpire == 0 ? 20 : tokenExpire; } @@ -207,7 +207,7 @@ public class SysConfigService : IDynamicApiController, ITransient [NonAction] public async Task GetRefreshTokenExpire() { - var refreshTokenExpireStr = await GetConfigValue(CommonConst.SysRefreshTokenExpire); + var refreshTokenExpireStr = await GetConfigValue(ConfigConst.SysRefreshTokenExpire); _ = int.TryParse(refreshTokenExpireStr, out var refreshTokenExpire); return refreshTokenExpire == 0 ? 40 : refreshTokenExpire; } diff --git a/Admin.NET/Admin.NET.Core/Service/Job/JobMonitor.cs b/Admin.NET/Admin.NET.Core/Service/Job/JobMonitor.cs index 5dcb02ed..b132f926 100644 --- a/Admin.NET/Admin.NET.Core/Service/Job/JobMonitor.cs +++ b/Admin.NET/Admin.NET.Core/Service/Job/JobMonitor.cs @@ -30,7 +30,7 @@ public class JobMonitor : IJobMonitor public async Task OnExecutedAsync(JobExecutedContext context, CancellationToken stoppingToken) { // 将异常作业发送到邮件 - if (await _sysConfigService.GetConfigValue(CommonConst.SysErrorMail) && context.Exception != null) + if (await _sysConfigService.GetConfigValue(ConfigConst.SysErrorMail) && context.Exception != null) { var errorInfo = $"【{context.Trigger.Description}】定时任务错误:{context.Exception}"; await _eventPublisher.PublishAsync(CommonConst.SendErrorMail, errorInfo, stoppingToken); diff --git a/Admin.NET/Admin.NET.Core/Service/Message/SysMessageService.cs b/Admin.NET/Admin.NET.Core/Service/Message/SysMessageService.cs index 9d53d38b..7e3f188f 100644 --- a/Admin.NET/Admin.NET.Core/Service/Message/SysMessageService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Message/SysMessageService.cs @@ -48,7 +48,7 @@ public class SysMessageService : IDynamicApiController, ITransient { var cacheKey = CacheConst.KeyUserOnline + input.ReceiveUserId; // 是否开启单用户登录 - if (await _sysConfigService.GetConfigValue(CommonConst.SysSingleLogin)) + if (await _sysConfigService.GetConfigValue(ConfigConst.SysSingleLogin)) { var user = _sysCacheService.Get(cacheKey); if (user == null) return; @@ -76,7 +76,7 @@ public class SysMessageService : IDynamicApiController, ITransient { var cacheKey = CacheConst.KeyUserOnline + input.ReceiveUserId; // 是否开启单用户登录 - if (await _sysConfigService.GetConfigValue(CommonConst.SysSingleLogin)) + if (await _sysConfigService.GetConfigValue(ConfigConst.SysSingleLogin)) { var user = _sysCacheService.Get(cacheKey); if (user == null) return; @@ -107,7 +107,7 @@ public class SysMessageService : IDynamicApiController, ITransient { var cacheKey = CacheConst.KeyUserOnline + userId; // 是否开启单用户登录 - if (await _sysConfigService.GetConfigValue(CommonConst.SysSingleLogin)) + if (await _sysConfigService.GetConfigValue(ConfigConst.SysSingleLogin)) { var user = _sysCacheService.Get(cacheKey); if (user != null) userList.Add(user.ConnectionId); diff --git a/Admin.NET/Admin.NET.Core/Service/OnlineUser/SysOnlineUserService.cs b/Admin.NET/Admin.NET.Core/Service/OnlineUser/SysOnlineUserService.cs index f8170d68..9a008eff 100644 --- a/Admin.NET/Admin.NET.Core/Service/OnlineUser/SysOnlineUserService.cs +++ b/Admin.NET/Admin.NET.Core/Service/OnlineUser/SysOnlineUserService.cs @@ -78,7 +78,7 @@ public class SysOnlineUserService : IDynamicApiController, ITransient [NonAction] public async Task SingleLogin(long userId) { - if (await _sysConfigService.GetConfigValue(CommonConst.SysSingleLogin)) + if (await _sysConfigService.GetConfigValue(ConfigConst.SysSingleLogin)) { var users = await _sysOnlineUerRep.GetListAsync(u => u.UserId == userId); foreach (var user in users) diff --git a/Admin.NET/Admin.NET.Core/Service/Region/SysRegionService.cs b/Admin.NET/Admin.NET.Core/Service/Region/SysRegionService.cs index 332a82be..5c9f9648 100644 --- a/Admin.NET/Admin.NET.Core/Service/Region/SysRegionService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Region/SysRegionService.cs @@ -149,7 +149,7 @@ public class SysRegionService : IDynamicApiController, ITransient [DisplayName("同步行政区域")] public async Task Sync() { - var syncLevel = await _sysConfigService.GetConfigValue(CommonConst.SysRegionSyncLevel); + var syncLevel = await _sysConfigService.GetConfigValue(ConfigConst.SysRegionSyncLevel); if (syncLevel < 1 || syncLevel > 5) syncLevel = 3;//默认区县级 var context = BrowsingContext.New(AngleSharp.Configuration.Default.WithDefaultLoader()); diff --git a/Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs b/Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs index 01ebdd0a..03c9c42c 100644 --- a/Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs @@ -210,7 +210,7 @@ public class SysTenantService : IDynamicApiController, ITransient await _sysPosRep.InsertAsync(newPos); // 初始化系统账号 - var password = await _sysConfigService.GetConfigValue(CommonConst.SysPassword); + var password = await _sysConfigService.GetConfigValue(ConfigConst.SysPassword); var newUser = new SysUser { Id = tenantId, @@ -375,7 +375,7 @@ public class SysTenantService : IDynamicApiController, ITransient [DisplayName("重置租户管理员密码")] public async Task ResetPwd(TenantUserInput input) { - var password = await _sysConfigService.GetConfigValue(CommonConst.SysPassword); + var password = await _sysConfigService.GetConfigValue(ConfigConst.SysPassword); var encryptPassword = CryptogramUtil.Encrypt(password); await _sysUserRep.UpdateAsync(u => new SysUser() { Password = encryptPassword }, u => u.Id == input.UserId); return password; diff --git a/Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs b/Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs index 6b3870fb..36fd807e 100644 --- a/Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs +++ b/Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs @@ -96,7 +96,7 @@ public class SysUserService : IDynamicApiController, ITransient var isExist = await _sysUserRep.AsQueryable().ClearFilter().AnyAsync(u => u.Account == input.Account); if (isExist) throw Oops.Oh(ErrorCodeEnum.D1003); - var password = await _sysConfigService.GetConfigValue(CommonConst.SysPassword); + var password = await _sysConfigService.GetConfigValue(ConfigConst.SysPassword); var user = input.Adapt(); user.Password = CryptogramUtil.Encrypt(password); @@ -317,7 +317,7 @@ public class SysUserService : IDynamicApiController, ITransient public virtual async Task ResetPwd(ResetPwdUserInput input) { var user = await _sysUserRep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D0009); - var password = await _sysConfigService.GetConfigValue(CommonConst.SysPassword); + var password = await _sysConfigService.GetConfigValue(ConfigConst.SysPassword); user.Password = CryptogramUtil.Encrypt(password); await _sysUserRep.AsUpdateable(user).UpdateColumns(u => u.Password).ExecuteCommandAsync(); diff --git a/Admin.NET/Admin.NET.Core/Service/Wechat/Dto/WxOpenInput.cs b/Admin.NET/Admin.NET.Core/Service/Wechat/Dto/WxOpenInput.cs index ed73300e..be855b1d 100644 --- a/Admin.NET/Admin.NET.Core/Service/Wechat/Dto/WxOpenInput.cs +++ b/Admin.NET/Admin.NET.Core/Service/Wechat/Dto/WxOpenInput.cs @@ -125,20 +125,20 @@ public class VerifySignatureInput /// /// 签名 /// - public string signature { get; set; } + public string Signature { get; set; } /// /// 时间戳 /// - public string timestamp { get; set; } + public string Timestamp { get; set; } /// /// 随机数 /// - public string nonce { get; set; } + public string Nonce { get; set; } /// /// 随机字符串 /// - public string echostr { get; set; } + public string Echostr { get; set; } } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Service/Wechat/SysWxOpenService.cs b/Admin.NET/Admin.NET.Core/Service/Wechat/SysWxOpenService.cs index 29d6dc53..22b16ac3 100644 --- a/Admin.NET/Admin.NET.Core/Service/Wechat/SysWxOpenService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Wechat/SysWxOpenService.cs @@ -123,13 +123,13 @@ public class SysWxOpenService : IDynamicApiController, ITransient [DisplayName("验证签名")] public string VerifySignature([FromQuery] VerifySignatureInput input) { - bool valid = _wechatApiClient.VerifyEventSignatureForEcho(input.timestamp, input.nonce, input.signature); + bool valid = _wechatApiClient.VerifyEventSignatureForEcho(input.Timestamp, input.Nonce, input.Signature); if (!valid) { return "fail"; } - return input.echostr; + return input.Echostr; } /// diff --git a/Admin.NET/Plugins/Admin.NET.Plugin.GoView/Service/GoViewSys/GoViewSysService.cs b/Admin.NET/Plugins/Admin.NET.Plugin.GoView/Service/GoViewSys/GoViewSysService.cs index 61788239..2440edce 100644 --- a/Admin.NET/Plugins/Admin.NET.Plugin.GoView/Service/GoViewSys/GoViewSysService.cs +++ b/Admin.NET/Plugins/Admin.NET.Plugin.GoView/Service/GoViewSys/GoViewSysService.cs @@ -34,7 +34,7 @@ public class GoViewSysService : IDynamicApiController [DisplayName("GoView 登录")] public async Task Login(GoViewLoginInput input) { - _sysCacheService.Set($"{CacheConst.KeyConfig}{CommonConst.SysCaptcha}", false); + _sysCacheService.Set($"{CacheConst.KeyConfig}{ConfigConst.SysCaptcha}", false); input.Password = CryptogramUtil.SM2Encrypt(input.Password); var loginResult = await _sysAuthService.Login(new LoginInput() @@ -43,7 +43,7 @@ public class GoViewSysService : IDynamicApiController Password = input.Password, }); - _sysCacheService.Remove($"{CacheConst.KeyConfig}{CommonConst.SysCaptcha}"); + _sysCacheService.Remove($"{CacheConst.KeyConfig}{ConfigConst.SysCaptcha}"); var sysUser = await _sysUserRep.AsQueryable().ClearFilter().FirstAsync(u => u.Account.Equals(input.Username)); return new GoViewLoginOutput() diff --git a/Web/src/api-services/apis/sys-auth-api.ts b/Web/src/api-services/apis/sys-auth-api.ts index 67c54226..f89cf0dc 100644 --- a/Web/src/api-services/apis/sys-auth-api.ts +++ b/Web/src/api-services/apis/sys-auth-api.ts @@ -501,49 +501,6 @@ export const SysAuthApiAxiosParamCreator = function (configuration?: Configurati let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - return { - url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, - options: localVarRequestOptions, - }; - }, - /** - * - * @summary 获取水印配置 🔖 - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiSysAuthWatermarkConfigGet: async (options: AxiosRequestConfig = {}): Promise => { - const localVarPath = `/api/sysAuth/watermarkConfig`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, 'https://example.com'); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions :AxiosRequestConfig = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication Bearer required - // http bearer authentication required - if (configuration && configuration.accessToken) { - const accessToken = typeof configuration.accessToken === 'function' - ? await configuration.accessToken() - : await configuration.accessToken; - localVarHeaderParameter["Authorization"] = "Bearer " + accessToken; - } - - const query = new URLSearchParams(localVarUrlObj.search); - for (const key in localVarQueryParameter) { - query.set(key, localVarQueryParameter[key]); - } - for (const key in options.params) { - query.set(key, options.params[key]); - } - localVarUrlObj.search = (new URLSearchParams(query)).toString(); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - return { url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, options: localVarRequestOptions, @@ -694,19 +651,6 @@ export const SysAuthApiFp = function(configuration?: Configuration) { return axios.request(axiosRequestArgs); }; }, - /** - * - * @summary 获取水印配置 🔖 - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiSysAuthWatermarkConfigGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { - const localVarAxiosArgs = await SysAuthApiAxiosParamCreator(configuration).apiSysAuthWatermarkConfigGet(options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, } }; @@ -812,15 +756,6 @@ export const SysAuthApiFactory = function (configuration?: Configuration, basePa async apiSysAuthUserInfoGet(options?: AxiosRequestConfig): Promise> { return SysAuthApiFp(configuration).apiSysAuthUserInfoGet(options).then((request) => request(axios, basePath)); }, - /** - * - * @summary 获取水印配置 🔖 - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiSysAuthWatermarkConfigGet(options?: AxiosRequestConfig): Promise> { - return SysAuthApiFp(configuration).apiSysAuthWatermarkConfigGet(options).then((request) => request(axios, basePath)); - }, }; }; @@ -937,14 +872,4 @@ export class SysAuthApi extends BaseAPI { public async apiSysAuthUserInfoGet(options?: AxiosRequestConfig) : Promise> { return SysAuthApiFp(this.configuration).apiSysAuthUserInfoGet(options).then((request) => request(this.axios, this.basePath)); } - /** - * - * @summary 获取水印配置 🔖 - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SysAuthApi - */ - public async apiSysAuthWatermarkConfigGet(options?: AxiosRequestConfig) : Promise> { - return SysAuthApiFp(this.configuration).apiSysAuthWatermarkConfigGet(options).then((request) => request(this.axios, this.basePath)); - } } diff --git a/Web/src/api-services/apis/sys-wx-open-api.ts b/Web/src/api-services/apis/sys-wx-open-api.ts index dd2c9b66..03a883be 100644 --- a/Web/src/api-services/apis/sys-wx-open-api.ts +++ b/Web/src/api-services/apis/sys-wx-open-api.ts @@ -200,19 +200,19 @@ export const SysWxOpenApiAxiosParamCreator = function (configuration?: Configura } if (signature !== undefined) { - localVarQueryParameter['signature'] = signature; + localVarQueryParameter['Signature'] = signature; } if (timestamp !== undefined) { - localVarQueryParameter['timestamp'] = timestamp; + localVarQueryParameter['Timestamp'] = timestamp; } if (nonce !== undefined) { - localVarQueryParameter['nonce'] = nonce; + localVarQueryParameter['Nonce'] = nonce; } if (echostr !== undefined) { - localVarQueryParameter['echostr'] = echostr; + localVarQueryParameter['Echostr'] = echostr; } const query = new URLSearchParams(localVarUrlObj.search); diff --git a/Web/src/api-services/models/member-info.ts b/Web/src/api-services/models/member-info.ts index b1fbee1e..983879e9 100644 --- a/Web/src/api-services/models/member-info.ts +++ b/Web/src/api-services/models/member-info.ts @@ -30,6 +30,12 @@ export interface MemberInfo { */ memberType?: MemberTypes; + /** + * @type {string} + * @memberof MemberInfo + */ + name?: string | null; + /** * @type {Type} * @memberof MemberInfo @@ -42,12 +48,6 @@ export interface MemberInfo { */ reflectedType?: Type; - /** - * @type {string} - * @memberof MemberInfo - */ - name?: string | null; - /** * @type {Module} * @memberof MemberInfo