diff --git a/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj b/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj index 0b9ad045..460f49a6 100644 --- a/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj +++ b/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj @@ -17,10 +17,10 @@ - - - - + + + + @@ -36,10 +36,10 @@ - + - - + + diff --git a/Admin.NET/Admin.NET.Core/Const/ConfigConst.cs b/Admin.NET/Admin.NET.Core/Const/ConfigConst.cs index 0cdd2d28..54809813 100644 --- a/Admin.NET/Admin.NET.Core/Const/ConfigConst.cs +++ b/Admin.NET/Admin.NET.Core/Const/ConfigConst.cs @@ -81,6 +81,11 @@ public class ConfigConst /// public const string SysRegionSyncLevel = "sys_region_sync_level"; + /// + /// Default 分组 + /// + public const string SysDefaultGroup = "Default"; + /// /// WebConfig 分组 /// diff --git a/Admin.NET/Admin.NET.Core/Entity/SysCodeGenTemplate.cs b/Admin.NET/Admin.NET.Core/Entity/SysCodeGenTemplate.cs index e3137261..75b00476 100644 --- a/Admin.NET/Admin.NET.Core/Entity/SysCodeGenTemplate.cs +++ b/Admin.NET/Admin.NET.Core/Entity/SysCodeGenTemplate.cs @@ -7,9 +7,9 @@ namespace Admin.NET.Core; /// -/// 代码生成模板配置 +/// 代码生成模板配置表 /// -[SugarTable(null, "代码生成模板配置")] +[SugarTable(null, "代码生成模板配置表")] [SysTable] public partial class SysCodeGenTemplate : EntityBase { @@ -21,27 +21,29 @@ public partial class SysCodeGenTemplate : EntityBase public string Name { get; set; } /// - /// 是否是内置模板(Y-是,N-否) + /// 代码生成类型 /// - [SugarColumn(ColumnDescription = "是否是内置模板")] - public CodeGenTypeEnum Type { get; set; } + [SugarColumn(ColumnDescription = "代码生成类型")] + public CodeGenTypeEnum Type { get; set; } = CodeGenTypeEnum.Backend; /// /// 是否是内置模板(Y-是,N-否) /// [SugarColumn(ColumnDescription = "是否是内置模板")] - public YesNoEnum SysFlag { get; set; } + public YesNoEnum SysFlag { get; set; } = YesNoEnum.Y; /// /// 输出位置 /// [SugarColumn(ColumnDescription = "输出位置", Length = 256)] + [Required, MaxLength(256)] public string OutputFile { get; set; } /// /// 描述 /// - [SugarColumn(ColumnDescription = "描述", Length = 200)] + [SugarColumn(ColumnDescription = "描述", Length = 256)] + [Required, MaxLength(256)] public string Describe { get; set; } /// diff --git a/Admin.NET/Admin.NET.Core/EventBus/AppEventSubscriber.cs b/Admin.NET/Admin.NET.Core/EventBus/AppEventSubscriber.cs index 92f27f51..18752629 100644 --- a/Admin.NET/Admin.NET.Core/EventBus/AppEventSubscriber.cs +++ b/Admin.NET/Admin.NET.Core/EventBus/AppEventSubscriber.cs @@ -26,8 +26,8 @@ public class AppEventSubscriber : IEventSubscriber, ISingleton, IDisposable [EventSubscribe(CommonConst.AddExLog)] public async Task CreateExLog(EventHandlerExecutingContext context) { - var rep = _serviceScope.ServiceProvider.GetRequiredService>(); - await rep.InsertAsync((SysLogEx)context.Source.Payload); + var db = _serviceScope.ServiceProvider.GetRequiredService(); + await db.CopyNew().Insertable((SysLogEx)context.Source.Payload).ExecuteCommandAsync(); } /// diff --git a/Admin.NET/Admin.NET.Core/SeedData/SysCodeGenTemplate.cs b/Admin.NET/Admin.NET.Core/SeedData/SysCodeGenTemplate.cs index 1adc98aa..d5c51776 100644 --- a/Admin.NET/Admin.NET.Core/SeedData/SysCodeGenTemplate.cs +++ b/Admin.NET/Admin.NET.Core/SeedData/SysCodeGenTemplate.cs @@ -7,7 +7,7 @@ namespace Admin.NET.Core; /// -/// 系统配置表种子数据 +/// 代码生成模板配置表种子数据 /// public class SysCodeGenTemplateSeedData : ISqlSugarEntitySeedData { @@ -25,7 +25,7 @@ public class SysCodeGenTemplateSeedData : ISqlSugarEntitySeedData { return new[] { - 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="WebConfig", 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="WebConfig", 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="False", 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") }, + new SysConfig{ Id=1300000000101, Name="演示环境", Code=ConfigConst.SysDemoEnv, Value="False", SysFlag=YesNoEnum.Y, Remark="演示环境", OrderNo=10, GroupCode=ConfigConst.SysDefaultGroup, 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=ConfigConst.SysDefaultGroup, 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=ConfigConst.SysDefaultGroup, 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=ConfigConst.SysDefaultGroup, 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=ConfigConst.SysDefaultGroup, 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=ConfigConst.SysDefaultGroup, 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=ConfigConst.SysWebConfigGroup, 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=ConfigConst.SysWebConfigGroup, 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=ConfigConst.SysDefaultGroup, 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=ConfigConst.SysDefaultGroup, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysConfig{ Id=1300000000201, Name="发送异常日志邮件", Code=ConfigConst.SysErrorMail, Value="False", SysFlag=YesNoEnum.Y, Remark="是否发送异常日志邮件", OrderNo=110, GroupCode=ConfigConst.SysDefaultGroup, 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=ConfigConst.SysDefaultGroup, 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=ConfigConst.SysDefaultGroup, 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=ConfigConst.SysDefaultGroup, 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=ConfigConst.SysWebConfigGroup, 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=ConfigConst.SysWebConfigGroup, 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=ConfigConst.SysWebConfigGroup, 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=ConfigConst.SysWebConfigGroup, 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=ConfigConst.SysWebConfigGroup, 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=ConfigConst.SysWebConfigGroup, 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=ConfigConst.SysWebConfigGroup, 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=ConfigConst.SysWebConfigGroup, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, }; } } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs b/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs index ec9f1cf3..e588e21d 100644 --- a/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs +++ b/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs @@ -4,8 +4,6 @@ // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! -using Elastic.Clients.Elasticsearch.MachineLearning; - namespace Admin.NET.Core.Service; /// @@ -137,7 +135,7 @@ public class SysCodeGenConfigService : IDynamicApiController, ITransient orderNo += 10; // 每个配置排序间隔10 } // 多库代码生成---这里要切回主库 - var provider = _db.AsTenant().GetConnectionScope(SqlSugarConst.MainConfigId); + var provider = _db.AsTenant().GetConnectionScope(SqlSugarConst.MainConfigId); provider.Insertable(codeGenConfigs).ExecuteCommand(); } diff --git a/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs b/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs index 673ddcda..e5a596fc 100644 --- a/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs +++ b/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs @@ -84,7 +84,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient var codeGen = input.Adapt(); await _db.Updateable(codeGen).ExecuteCommandAsync(); - // 更新配置表 + // 更新配置表 _codeGenConfigService.AddList(GetColumnList(input.Adapt()), codeGen); } @@ -377,13 +377,13 @@ public class SysCodeGenService : IDynamicApiController, ITransient if (templateList[i].Type == CodeGenTypeEnum.Frontend) tmpPath = Path.Combine(new DirectoryInfo(App.WebHostEnvironment.ContentRootPath).Parent!.Parent!.FullName, _codeGenOptions.FrontRootPath, "src"); else - tmpPath = Path.Combine(new DirectoryInfo(App.WebHostEnvironment.ContentRootPath).Parent!.FullName, input.NameSpace); + tmpPath = Path.Combine(new DirectoryInfo(App.WebHostEnvironment.ContentRootPath).Parent!.FullName, input.NameSpace); } else { tmpPath = templateList[i].Type == CodeGenTypeEnum.Frontend ? Path.Combine(outputPath, _codeGenOptions.FrontRootPath, "src") : Path.Combine(outputPath, input!.NameSpace!); } - targetFile = Path.Combine( tmpPath, targetFile); + targetFile = Path.Combine(tmpPath, targetFile); var dirPath = new DirectoryInfo(targetFile).Parent!.FullName; if (!Directory.Exists(dirPath)) diff --git a/Admin.NET/Admin.NET.Core/Service/Const/SysConstService.cs b/Admin.NET/Admin.NET.Core/Service/Const/SysConstService.cs index 31867127..f4508e1a 100644 --- a/Admin.NET/Admin.NET.Core/Service/Const/SysConstService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Const/SysConstService.cs @@ -56,16 +56,18 @@ public class SysConstService : IDynamicApiController, ITransient { var typeList = GetConstAttributeList(); var type = typeList.FirstOrDefault(u => u.Name == typeName); - - var isEnum = type.BaseType.Name == "Enum"; - constlist = type.GetFields()? - .Where(isEnum, u => u.FieldType.Name == typeName) - .Select(u => new ConstOutput - { - Name = u.Name, - Code = isEnum ? (int)u.GetValue(BindingFlags.Instance) : u.GetValue(BindingFlags.Instance) - }).ToList(); - _sysCacheService.Set(key, constlist); + if (type != null) + { + var isEnum = type.BaseType.Name == "Enum"; + constlist = type.GetFields()? + .Where(isEnum, u => u.FieldType.Name == typeName) + .Select(u => new ConstOutput + { + Name = u.Name, + Code = isEnum ? (int)u.GetValue(BindingFlags.Instance) : u.GetValue(BindingFlags.Instance) + }).ToList(); + _sysCacheService.Set(key, constlist); + } } return await Task.FromResult(constlist); } diff --git a/Admin.NET/Admin.NET.Core/Service/Log/SysLogDiffService.cs b/Admin.NET/Admin.NET.Core/Service/Log/SysLogDiffService.cs index 0afa7f79..d2f8c45b 100644 --- a/Admin.NET/Admin.NET.Core/Service/Log/SysLogDiffService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Log/SysLogDiffService.cs @@ -44,15 +44,4 @@ public class SysLogDiffService : IDynamicApiController, ITransient { return await _sysLogDiffRep.GetFirstAsync(u => u.Id == id); } - - /// - /// 清空差异日志 🔖 - /// - /// - [ApiDescriptionSettings(Name = "Clear"), HttpPost] - [DisplayName("清空差异日志")] - public void Clear() - { - _sysLogDiffRep.AsSugarClient().DbMaintenance.TruncateTable(); - } } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Util/BaseInput.cs b/Admin.NET/Admin.NET.Core/Util/BaseInput.cs index df81c995..9e81e0f7 100644 --- a/Admin.NET/Admin.NET.Core/Util/BaseInput.cs +++ b/Admin.NET/Admin.NET.Core/Util/BaseInput.cs @@ -64,7 +64,7 @@ public class PhoneInput /// /// 手机号码 /// - /// 13980134216 + /// 13980134216 [Required(ErrorMessage = "手机号码不能为空")] [DataValidation(ValidationTypes.PhoneNumber, ErrorMessage = "手机号码不正确")] public string Phone { get; set; } diff --git a/Admin.NET/Admin.NET.Core/Util/BaseOutput.cs b/Admin.NET/Admin.NET.Core/Util/BaseOutput.cs index 204c9251..809d97a1 100644 --- a/Admin.NET/Admin.NET.Core/Util/BaseOutput.cs +++ b/Admin.NET/Admin.NET.Core/Util/BaseOutput.cs @@ -13,37 +13,37 @@ public class BaseOutput { /// /// 创建时间 - /// + /// public virtual DateTime CreateTime { get; set; } - + /// /// 更新时间 - /// + /// public virtual DateTime UpdateTime { get; set; } - + ///// ///// 创建者Id - ///// + ///// //public virtual long CreateUserId { get; set; } - + ///// ///// 创建者部门Id - ///// + ///// //public virtual long CreateOrgId { get; set; } - + /// /// 创建者名称 - /// + /// public virtual string CreateUserName { get; set; } - + ///// ///// 修改者Id - ///// + ///// //public virtual long UpdateUserId { get; set; } /// /// 修改者名称 - /// + /// public virtual string UpdateUserName { get; set; } } diff --git a/Admin.NET/Admin.NET.Core/Util/ComputerUtil.cs b/Admin.NET/Admin.NET.Core/Util/ComputerUtil.cs index 29036de3..a3458d3f 100644 --- a/Admin.NET/Admin.NET.Core/Util/ComputerUtil.cs +++ b/Admin.NET/Admin.NET.Core/Util/ComputerUtil.cs @@ -84,9 +84,9 @@ public static class ComputerUtil { DiskName = disk[0], TypeName = ShellHelper.Bash("diskutil info " + disk[0] + " | awk '/File System Personality/ {print $4}'").Replace("\n", string.Empty), - TotalSize = long.Parse(disk[1]) / 1024, - Used = long.Parse(disk[2]) / 1024, - AvailableFreeSpace = long.Parse(disk[3]) / 1024, + TotalSize = Math.Round(long.Parse(disk[1]) / 1024.0m, 2, MidpointRounding.AwayFromZero), + Used = Math.Round(long.Parse(disk[2]) / 1024.0m, 2, MidpointRounding.AwayFromZero), + AvailableFreeSpace = Math.Round(long.Parse(disk[3]) / 1024.0m, 2, MidpointRounding.AwayFromZero), AvailablePercent = decimal.Parse(disk[4].Replace("%", "")) }; diskInfos.Add(diskInfo); @@ -112,9 +112,9 @@ public static class ComputerUtil { DiskName = disk[0], TypeName = disk[1], - TotalSize = long.Parse(disk[2]) / 1024, - Used = long.Parse(disk[3]) / 1024, - AvailableFreeSpace = long.Parse(disk[4]) / 1024, + TotalSize = Math.Round(long.Parse(disk[2]) / 1024.0m, 2, MidpointRounding.AwayFromZero), + Used = Math.Round(long.Parse(disk[3]) / 1024.0m, 2, MidpointRounding.AwayFromZero), + AvailableFreeSpace = Math.Round(long.Parse(disk[4]) / 1024.0m, 2, MidpointRounding.AwayFromZero), AvailablePercent = decimal.Parse(disk[5].Replace("%", "")) }; diskInfos.Add(diskInfo); @@ -130,8 +130,8 @@ public static class ComputerUtil { DiskName = item.Name, TypeName = item.DriveType.ToString(), - TotalSize = item.TotalSize / 1024 / 1024 / 1024, - AvailableFreeSpace = item.AvailableFreeSpace / 1024 / 1024 / 1024, + TotalSize = Math.Round(item.TotalSize / 1024 / 1024 / 1024.0m, 2, MidpointRounding.AwayFromZero), + AvailableFreeSpace = Math.Round(item.AvailableFreeSpace / 1024 / 1024 / 1024.0m, 2, MidpointRounding.AwayFromZero), }; obj.Used = obj.TotalSize - obj.AvailableFreeSpace; obj.AvailablePercent = decimal.Ceiling(obj.Used / (decimal)obj.TotalSize * 100); @@ -294,22 +294,22 @@ public class DiskInfo /// /// 总剩余 /// - public long TotalFree { get; set; } + public decimal TotalFree { get; set; } /// /// 总量 /// - public long TotalSize { get; set; } + public decimal TotalSize { get; set; } /// /// 已使用 /// - public long Used { get; set; } + public decimal Used { get; set; } /// /// 可使用 /// - public long AvailableFreeSpace { get; set; } + public decimal AvailableFreeSpace { get; set; } /// /// 使用百分比 diff --git a/Web/package.json b/Web/package.json index 868899fc..8df03192 100644 --- a/Web/package.json +++ b/Web/package.json @@ -2,7 +2,7 @@ "name": "admin.net.pro", "type": "module", "version": "2.4.33", - "lastBuildTime": "2024.08.16", + "lastBuildTime": "2024.08.24", "description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架", "author": "zuohuaijun", "license": "MIT", @@ -21,32 +21,32 @@ "@vue-office/docx": "^1.6.2", "@vue-office/excel": "^1.7.11", "@vue-office/pdf": "^2.0.2", - "@vueuse/core": "^10.11.1", + "@vueuse/core": "^11.0.1", "@wangeditor/editor": "^5.1.23", "@wangeditor/editor-for-vue": "^5.1.12", "animate.css": "^4.1.1", "async-validator": "^4.2.5", - "axios": "^1.7.4", + "axios": "^1.7.5", "countup.js": "^2.8.0", "cropperjs": "^1.6.2", "echarts": "^5.5.1", "echarts-gl": "^2.0.9", "echarts-wordcloud": "^2.1.0", - "element-plus": "^2.8.0", + "element-plus": "^2.8.1", "exceljs": "^4.4.0", "ezuikit": "^1.0.0", - "ezuikit-js": "^8.0.9", + "ezuikit-js": "^8.0.11", "gcoord": "^1.0.6", "js-cookie": "^3.0.5", "js-table2excel": "^1.1.2", "jsplumb": "^2.15.6", "lodash-es": "^4.17.21", - "md-editor-v3": "^4.18.1", + "md-editor-v3": "^4.19.1", "mitt": "^3.0.1", - "monaco-editor": "^0.50.0", + "monaco-editor": "^0.51.0", "mqtt": "^4.3.8", "nprogress": "^0.2.0", - "ol": "^10.0.0", + "ol": "^10.1.0", "pinia": "^2.2.2", "print-js": "^1.6.0", "push.js": "^1.0.12", @@ -64,13 +64,13 @@ "vue-demi": "0.14.6", "vue-draggable-plus": "^0.5.3", "vue-grid-layout": "3.0.0-beta1", - "vue-i18n": "^9.13.1", + "vue-i18n": "^9.14.0", "vue-json-pretty": "^2.4.0", "vue-plugin-hiprint": "0.0.57-beta28", "vue-router": "^4.4.3", "vue-signature-pad": "^3.0.2", "vue3-tree-org": "^4.2.2", - "vxe-pc-ui": "^4.0.96", + "vxe-pc-ui": "^4.1.5", "vxe-table": "^4.7.59", "vxe-table-plugin-element": "^4.0.4", "vxe-table-plugin-export-xlsx": "^4.0.5", @@ -84,13 +84,13 @@ "@types/node": "^20.14.14", "@types/nprogress": "^0.2.3", "@types/sortablejs": "^1.15.8", - "@typescript-eslint/eslint-plugin": "^8.1.0", - "@typescript-eslint/parser": "^8.1.0", + "@typescript-eslint/eslint-plugin": "^8.2.0", + "@typescript-eslint/parser": "^8.2.0", "@vitejs/plugin-vue": "^5.1.2", "@vitejs/plugin-vue-jsx": "^4.0.1", "@vue/compiler-sfc": "^3.4.38", "code-inspector-plugin": "^0.15.2", - "eslint": "^9.9.0", + "eslint": "^9.9.1", "eslint-plugin-vue": "^9.27.0", "globals": "^15.8.0", "less": "^4.2.0", @@ -99,7 +99,7 @@ "sass": "^1.77.8", "terser": "^5.31.6", "typescript": "^5.5.4", - "vite": "^5.4.1", + "vite": "^5.4.2", "vite-plugin-cdn-import": "^1.0.1", "vite-plugin-compression2": "^1.2.0", "vite-plugin-vue-setup-extend": "^0.4.0", diff --git a/Web/src/api-services/apis/sys-code-gen-api.ts b/Web/src/api-services/apis/sys-code-gen-api.ts index 8ff15afc..81fada14 100644 --- a/Web/src/api-services/apis/sys-code-gen-api.ts +++ b/Web/src/api-services/apis/sys-code-gen-api.ts @@ -423,7 +423,7 @@ export const SysCodeGenApiAxiosParamCreator = function (configuration?: Configur }, /** * - * @summary 代码生成到本地 🔖 + * @summary 执行代码生成 🔖 * @param {SysCodeGen} [body] * @param {*} [options] Override http request option. * @throws {RequiredError} @@ -688,7 +688,7 @@ export const SysCodeGenApiFp = function(configuration?: Configuration) { }, /** * - * @summary 代码生成到本地 🔖 + * @summary 执行代码生成 🔖 * @param {SysCodeGen} [body] * @param {*} [options] Override http request option. * @throws {RequiredError} @@ -818,7 +818,7 @@ export const SysCodeGenApiFactory = function (configuration?: Configuration, bas }, /** * - * @summary 代码生成到本地 🔖 + * @summary 执行代码生成 🔖 * @param {SysCodeGen} [body] * @param {*} [options] Override http request option. * @throws {RequiredError} @@ -945,7 +945,7 @@ export class SysCodeGenApi extends BaseAPI { } /** * - * @summary 代码生成到本地 🔖 + * @summary 执行代码生成 🔖 * @param {SysCodeGen} [body] * @param {*} [options] Override http request option. * @throws {RequiredError} diff --git a/Web/src/api-services/apis/sys-log-diff-api.ts b/Web/src/api-services/apis/sys-log-diff-api.ts index 8b546c08..0c3fb9ff 100644 --- a/Web/src/api-services/apis/sys-log-diff-api.ts +++ b/Web/src/api-services/apis/sys-log-diff-api.ts @@ -26,49 +26,6 @@ import { PageLogInput } from '../models'; */ export const SysLogDiffApiAxiosParamCreator = function (configuration?: Configuration) { return { - /** - * - * @summary 清空差异日志 🔖 - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiSysLogDiffClearPost: async (options: AxiosRequestConfig = {}): Promise => { - const localVarPath = `/api/sysLogDiff/clear`; - // 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: 'POST', ...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, - }; - }, /** * * @summary 获取差异日志详情 🔖 @@ -175,19 +132,6 @@ export const SysLogDiffApiAxiosParamCreator = function (configuration?: Configur */ export const SysLogDiffApiFp = function(configuration?: Configuration) { return { - /** - * - * @summary 清空差异日志 🔖 - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiSysLogDiffClearPost(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { - const localVarAxiosArgs = await SysLogDiffApiAxiosParamCreator(configuration).apiSysLogDiffClearPost(options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, /** * * @summary 获取差异日志详情 🔖 @@ -225,15 +169,6 @@ export const SysLogDiffApiFp = function(configuration?: Configuration) { */ export const SysLogDiffApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { return { - /** - * - * @summary 清空差异日志 🔖 - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiSysLogDiffClearPost(options?: AxiosRequestConfig): Promise> { - return SysLogDiffApiFp(configuration).apiSysLogDiffClearPost(options).then((request) => request(axios, basePath)); - }, /** * * @summary 获取差异日志详情 🔖 @@ -264,16 +199,6 @@ export const SysLogDiffApiFactory = function (configuration?: Configuration, bas * @extends {BaseAPI} */ export class SysLogDiffApi extends BaseAPI { - /** - * - * @summary 清空差异日志 🔖 - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SysLogDiffApi - */ - public async apiSysLogDiffClearPost(options?: AxiosRequestConfig) : Promise> { - return SysLogDiffApiFp(this.configuration).apiSysLogDiffClearPost(options).then((request) => request(this.axios, this.basePath)); - } /** * * @summary 获取差异日志详情 🔖 diff --git a/Web/src/views/system/codeGen/component/editCodeGenDialog.vue b/Web/src/views/system/codeGen/component/editCodeGenDialog.vue index 44447f04..62b0fe97 100644 --- a/Web/src/views/system/codeGen/component/editCodeGenDialog.vue +++ b/Web/src/views/system/codeGen/component/editCodeGenDialog.vue @@ -22,7 +22,7 @@ - + diff --git a/Web/src/views/system/codeGen/component/fkDialog.vue b/Web/src/views/system/codeGen/component/fkDialog.vue index 3fb0378d..e40bb6a3 100644 --- a/Web/src/views/system/codeGen/component/fkDialog.vue +++ b/Web/src/views/system/codeGen/component/fkDialog.vue @@ -25,14 +25,14 @@ - + - + diff --git a/Web/src/views/system/codeGen/component/genConfigDialog.vue b/Web/src/views/system/codeGen/component/genConfigDialog.vue index 179aa554..b5a5b4a3 100644 --- a/Web/src/views/system/codeGen/component/genConfigDialog.vue +++ b/Web/src/views/system/codeGen/component/genConfigDialog.vue @@ -19,7 +19,7 @@