From 7c78ce8ed53b0c632968531a027313730923469b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Sat, 16 Dec 2023 16:18:44 +0800 Subject: [PATCH] =?UTF-8?q?:zap:=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../System/CodeGeneratorController.cs | 59 ++++++++++--------- ZR.CodeGenerator/CodeGeneratorTool.cs | 3 +- ZR.ServiceCore/Model/Dto/GenTableDto.cs | 23 +------- ZR.ServiceCore/Model/Generate/GenTable.cs | 9 +-- 4 files changed, 36 insertions(+), 58 deletions(-) diff --git a/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs b/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs index 7ca442f..2b7e903 100644 --- a/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs +++ b/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Options; using SqlSugar; using ZR.Admin.WebApi.Filters; using ZR.CodeGenerator; @@ -23,16 +24,20 @@ namespace ZR.Admin.WebApi.Controllers private readonly IGenTableColumnService GenTableColumnService; private readonly ISysMenuService SysMenuService; private readonly IWebHostEnvironment WebHostEnvironment; + private readonly OptionsSetting OptionsSetting; + public CodeGeneratorController( IGenTableService genTableService, IGenTableColumnService genTableColumnService, IWebHostEnvironment webHostEnvironment, + IOptions options, ISysMenuService sysMenuService) { GenTableService = genTableService; GenTableColumnService = genTableColumnService; WebHostEnvironment = webHostEnvironment; SysMenuService = sysMenuService; + OptionsSetting = options.Value; } /// @@ -143,8 +148,6 @@ namespace ZR.Admin.WebApi.Controllers { throw new CustomException("表或数据库不能为空"); } - DbConfigs dbConfig = AppSettings.Get(nameof(GenConstants.CodeGenDbConfig)); - CodeGen codeGen = AppSettings.Get("codeGen"); int result = 0; foreach (var table in dto.Tables) @@ -156,12 +159,12 @@ namespace ZR.Admin.WebApi.Controllers UserName = HttpContext.GetName(), TableName = table.Name, Desc = table.Description, - CodeGen = codeGen + CodeGen = OptionsSetting.CodeGen }; GenTable genTable = CodeGeneratorTool.InitTable(initTableDto); genTable.TableId = GenTableService.ImportGenTable(genTable); - if (dbConfig.DbType == 3) + if (OptionsSetting.CodeGenDbConfig.DbType == 3) { seqs = _CodeGeneraterService.GetAllOracleSeqs(table.Name); } @@ -169,7 +172,7 @@ namespace ZR.Admin.WebApi.Controllers { //保存列信息 List dbColumnInfos = _CodeGeneraterService.GetColumnInfo(dto.DbName, table.Name); - List genTableColumns = CodeGeneratorTool.InitGenTableColumn(genTable, dbColumnInfos, seqs, codeGen); + List genTableColumns = CodeGeneratorTool.InitGenTableColumn(genTable, dbColumnInfos, seqs, OptionsSetting.CodeGen); GenTableColumnService.DeleteGenTableColumnByTableName(table.Name); GenTableColumnService.InsertGenTableColumn(genTableColumns); genTable.Columns = genTableColumns; @@ -198,7 +201,7 @@ namespace ZR.Admin.WebApi.Controllers var genTable = genTableDto.Adapt().ToUpdate(HttpContext); //将前端额外参数转成字符串存入Options中 - genTable.Options = genTableDto.Params.Adapt(); + genTable.Options = genTableDto.Params.Adapt(); DbResult result = GenTableService.UseTran(() => { int rows = GenTableService.UpdateGenTable(genTable); @@ -227,9 +230,8 @@ namespace ZR.Admin.WebApi.Controllers throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空"); } var genTableInfo = GenTableService.GetGenTableInfo(dto.TableId); - var dbConfig = AppSettings.Get(nameof(GenConstants.CodeGenDbConfig)); - dto.DbType = dbConfig.DbType; + dto.DbType = OptionsSetting.CodeGenDbConfig.DbType; dto.GenTable = genTableInfo; dto.IsPreview = true; @@ -252,15 +254,21 @@ namespace ZR.Admin.WebApi.Controllers { throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空"); } - var genTableInfo = GenTableService.GetGenTableInfo(dto.TableId); - var dbConfig = AppSettings.Get(nameof(GenConstants.CodeGenDbConfig)); - dto.DbType = dbConfig.DbType; - dto.GenTable = genTableInfo; - //自定义路径 - if (genTableInfo.GenType == "1") + dto.DbType = OptionsSetting.CodeGenDbConfig.DbType; + dto.GenTable = GenTableService.GetGenTableInfo(dto.TableId); + //生成压缩包 + string zipReturnFileName = $"ZrAdmin.NET-{dto.GenTable.TableName}-{DateTime.Now:MMddHHmmss}.zip"; + + //生成代码到指定文件夹 + CodeGeneratorTool.Generate(dto); + if (dto.GenTable.Options.GenerateMenu) { - var genPath = genTableInfo.GenPath; + SysMenuService.AddSysMenu(dto.GenTable, dto.ReplaceDto.PermissionPrefix, dto.ReplaceDto.ShowBtnEdit, dto.ReplaceDto.ShowBtnExport, dto.ReplaceDto.ShowBtnImport); + } + if (dto.GenTable.GenType == "1")//自定义路径 + { + var genPath = dto.GenTable.GenPath; string parentPath; string tempPath = WebHostEnvironment.ContentRootPath; @@ -274,32 +282,25 @@ namespace ZR.Admin.WebApi.Controllers } Console.WriteLine("代码生成路径" + parentPath); //代码生成文件夹路径 - dto.GenCodePath = (genPath.IsEmpty() || genPath.Equals("/")) ? parentPath : genTableInfo.GenPath; + dto.GenCodePath = (genPath.IsEmpty() || genPath.Equals("/")) ? parentPath : genPath; } else { dto.ZipPath = Path.Combine(WebHostEnvironment.WebRootPath, "Generatecode"); dto.GenCodePath = Path.Combine(dto.ZipPath, DateTime.Now.ToString("yyyyMMdd")); } - //生成压缩包 - string zipReturnFileName = $"ZrAdmin.NET-{genTableInfo.TableComment}-{DateTime.Now:MMddHHmmss}.zip"; - - //生成代码到指定文件夹 - CodeGeneratorTool.Generate(dto); - if (genTableInfo.Options.GenerateMenu) - { - SysMenuService.AddSysMenu(genTableInfo, dto.ReplaceDto.PermissionPrefix, dto.ReplaceDto.ShowBtnEdit, dto.ReplaceDto.ShowBtnExport, dto.ReplaceDto.ShowBtnImport); - } + //写入文件 foreach (var item in dto.GenCodes) { item.Path = Path.Combine(dto.GenCodePath, item.Path); FileUtil.WriteAndSave(item.Path, item.Content); } - - //下载文件 - FileUtil.ZipGenCode(dto.ZipPath, dto.GenCodePath, zipReturnFileName); - + if (dto.GenTable.GenType != "1") + { + //压缩文件 + FileUtil.ZipGenCode(dto.ZipPath, dto.GenCodePath, zipReturnFileName); + } return SUCCESS(new { path = "/Generatecode/" + zipReturnFileName, fileName = dto.ZipFileName }); } diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs index b1c73fa..fa99c4f 100644 --- a/ZR.CodeGenerator/CodeGeneratorTool.cs +++ b/ZR.CodeGenerator/CodeGeneratorTool.cs @@ -8,7 +8,6 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Xml.Linq; using ZR.CodeGenerator.Model; using ZR.Model.System.Generate; @@ -443,7 +442,7 @@ namespace ZR.CodeGenerator TableComment = dto.Desc, FunctionName = dto.Desc, Create_by = dto.UserName, - Options = new Options() + Options = new CodeOptions() { SortType = "asc", CheckedBtn = new int[] { 1, 2, 3 }, diff --git a/ZR.ServiceCore/Model/Dto/GenTableDto.cs b/ZR.ServiceCore/Model/Dto/GenTableDto.cs index ca73d06..0151bbb 100644 --- a/ZR.ServiceCore/Model/Dto/GenTableDto.cs +++ b/ZR.ServiceCore/Model/Dto/GenTableDto.cs @@ -1,5 +1,4 @@ -using System.Collections.Generic; -using ZR.Model.System.Generate; +using ZR.Model.System.Generate; namespace ZR.Model.System.Dto { @@ -24,28 +23,10 @@ namespace ZR.Model.System.Dto /// /// 额外参数 /// - public Options Params { get; set; } + public CodeOptions Params { get; set; } public List Columns { get; set; } } - /// - /// 额外参数 - /// ****注意里面参数统一首字母小写***** - /// - public class Params - { - public string TreeCode { get; set; } - public string TreeName { get; set; } - public string TreeParentCode { get; set; } - public int? ParentMenuId { get; set; } - public string SortField { get; set; } - public string SortType { get; set; } - /// - /// 额外参数字符串 - /// - public string CheckedBtn { get; set; } - public string PermissionPrefix { get; set; } - } public class GenTableColumnDto { public int ColumnId { get; set; } diff --git a/ZR.ServiceCore/Model/Generate/GenTable.cs b/ZR.ServiceCore/Model/Generate/GenTable.cs index e22dd92..245cd98 100644 --- a/ZR.ServiceCore/Model/Generate/GenTable.cs +++ b/ZR.ServiceCore/Model/Generate/GenTable.cs @@ -1,7 +1,4 @@ -using SqlSugar; -using System.Collections.Generic; - -namespace ZR.Model.System.Generate +namespace ZR.Model.System.Generate { /// /// 代码生成表 @@ -86,7 +83,7 @@ namespace ZR.Model.System.Generate /// 其他生成选项 /// [SugarColumn(IsJson = true)] - public Options Options { get; set; } + public CodeOptions Options { get; set; } #region 表额外字段 /// @@ -103,7 +100,7 @@ namespace ZR.Model.System.Generate #endregion } - public class Options + public class CodeOptions { public long ParentMenuId { get; set; } public string SortType { get; set; } = "asc";