From 6ab0f86ca272a7aa858084df3ec3c4293667b593 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: Sun, 8 May 2022 14:08:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=BC=E8=88=AA=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CodeGenTemplate/TplControllers.txt | 24 +++------- .../wwwroot/CodeGenTemplate/TplIService.txt | 1 + .../wwwroot/CodeGenTemplate/TplModel.txt | 12 ++++- .../wwwroot/CodeGenTemplate/TplService.txt | 45 +++++++++++++------ ZR.CodeGenerator/CodeGeneratorTool.cs | 3 +- ZR.CodeGenerator/ZR.CodeGenerator.csproj | 2 +- ZR.Model/System/Generate/GenTable.cs | 6 +++ ZR.Model/ZR.Model.csproj | 2 +- ZR.Repository/ZR.Repository.csproj | 2 +- ZR.Service/System/GenTableService.cs | 6 ++- 10 files changed, 67 insertions(+), 36 deletions(-) diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt index eb25c9d..acf31de 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt @@ -1,26 +1,22 @@ -using Microsoft.AspNetCore.Mvc; -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Infrastructure; +using Infrastructure; using Infrastructure.Attribute; using Infrastructure.Enums; using Infrastructure.Model; using Mapster; +using Microsoft.AspNetCore.Mvc; using ${options.ModelsNamespace}.Dto; using ${options.ModelsNamespace}.Models; using ${options.IServicsNamespace}.${options.SubNamespace}.I${options.SubNamespace}Service; using ${options.ApiControllerNamespace}.Extensions; using ${options.ApiControllerNamespace}.Filters; -using ZR.Common; -using Infrastructure.Extensions; -using System.Linq; +using ${options.BaseNamespace}.Common; namespace ${options.ApiControllerNamespace}.Controllers { /// /// ${genTable.functionName}Controller - /// + /// + /// @tableName ${genTable.TableName} /// @author ${replaceDto.Author} /// @date ${replaceDto.AddTime} /// @@ -97,14 +93,8 @@ $if(replaceDto.ShowBtnAdd) //从 Dto 映射到 实体 var modal = parm.Adapt<${replaceDto.ModelTypeName}>().ToCreate(HttpContext); - var response = _${replaceDto.ModelTypeName}Service.Insert(modal, it => new - { -$foreach(item in genTable.Columns) -$if((item.IsInsert)) - it.$item.CsharpField, -$end -${end} - }); + var response = _${replaceDto.ModelTypeName}Service.Add${replaceDto.ModelTypeName}(modal); + return ToResponse(response); } $end diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplIService.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplIService.txt index 310864d..a0c2451 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplIService.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplIService.txt @@ -19,5 +19,6 @@ namespace ${options.IServicsNamespace}.${options.SubNamespace}.I${options.SubNam $if(genTable.TplCategory == "tree") List<${replaceDto.ModelTypeName}> GetTreeList(${replaceDto.ModelTypeName}QueryDto parm); $end + int Add${replaceDto.ModelTypeName}(${replaceDto.ModelTypeName} parm); } } diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplModel.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplModel.txt index 566d9b8..9c9236a 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplModel.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplModel.txt @@ -23,7 +23,7 @@ $if(replaceDto.ShowBtnExport) [EpplusTableColumn(Header = "$if(item.ColumnComment == "")${item.CsharpField}${else}${item.ColumnComment}${end}"$if(item.CsharpType == "DateTime"), NumberFormat = "yyyy-MM-dd HH:mm:ss"$end)] $end $if(item.IsPk || item.IsIncrement) - [SqlSugar.SugarColumn(IsPrimaryKey = ${item.IsPk.ToString().ToLower()}, IsIdentity = ${item.IsIncrement.ToString().ToLower()}$if(item.CsharpField.ToLower() != item.ColumnName.ToLower()), ColumnName = "$item.ColumnName"$end)] + [SugarColumn(IsPrimaryKey = ${item.IsPk.ToString().ToLower()}, IsIdentity = ${item.IsIncrement.ToString().ToLower()}$if(item.CsharpField.ToLower() != item.ColumnName.ToLower()), ColumnName = "$item.ColumnName"$end)] $elseif(item.CsharpField.ToLower() != item.ColumnName.ToLower()) [SugarColumn(ColumnName = "$item.ColumnName")] $end @@ -35,5 +35,15 @@ $if(genTable.TplCategory == "tree") [SugarColumn(IsIgnore = true)] public List<${replaceDto.ModelTypeName}> Children { get; set; } $end + +$if(genTable.TplCategory == "subNav" && genTable.SubTable != null) + [Navigate(NavigateType.Dynamic, null)] //自定义关系映射 + public ${genTable.SubTable.ClassName} Sub { get; set; } +$end + +$if(genTable.TplCategory == "subNavMore" && genTable.SubTable != null) + [Navigate(NavigateType.Dynamic, null)] //自定义关系映射 + public List<${genTable.SubTable.ClassName}> Sub { get; set; } +$end } } \ No newline at end of file diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt index b3e2add..219b23b 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt @@ -1,13 +1,13 @@ -using Infrastructure; +using System; +using SqlSugar; +using System.Collections.Generic; +using Infrastructure; using Infrastructure.Attribute; using ${options.ModelsNamespace}; using ${options.ModelsNamespace}.Dto; using ${options.ModelsNamespace}.Models; using ${options.IRepositoriesNamespace}; using ${options.IServicsNamespace}.${options.SubNamespace}.I${options.SubNamespace}Service; -using System; -using SqlSugar; -using System.Collections.Generic; namespace ${options.ServicesNamespace}.${options.SubNamespace} { @@ -20,10 +20,10 @@ namespace ${options.ServicesNamespace}.${options.SubNamespace} [AppService(ServiceType = typeof(I${replaceDto.ModelTypeName}Service), ServiceLifetime = LifeTime.Transient)] public class ${replaceDto.ModelTypeName}Service : BaseService<${replaceDto.ModelTypeName}>, I${replaceDto.ModelTypeName}Service { - private readonly ${replaceDto.ModelTypeName}Repository _${replaceDto.ModelTypeName}repository; + private readonly ${replaceDto.ModelTypeName}Repository _${replaceDto.ModelTypeName}Repository; public ${replaceDto.ModelTypeName}Service(${replaceDto.ModelTypeName}Repository repository) { - _${replaceDto.ModelTypeName}repository = repository; + _${replaceDto.ModelTypeName}Repository = repository; } #region 业务逻辑代码 @@ -51,15 +51,17 @@ $elseif(column.CsharpType == "int" || column.CsharpType == "long") $end $end $end -$if(genTable.SortField != "" && genTable.SortField != null) - var response = _${replaceDto.ModelTypeName}repository - .GetPages(predicate.ToExpression(), parm, it => it.${genTable.SortField}, "${genTable.SortType}"); -$else - var response = _${replaceDto.ModelTypeName}repository + var response = _${replaceDto.ModelTypeName}Repository .Queryable() +$if(genTable.SubTableName != "" && genTable.SubTableName != null) + .Includes(it => it.Sub.MappingField(z => z.${genTable.SubTableFkName}, () => it.${replaceDto.PKName})) +$end +$if(genTable.SortField != "" && genTable.SortField != null) + .OrderBy("${genTable.SortField} ${genTable.SortType}") +$end .Where(predicate.ToExpression()) .ToPage(parm); -$end + return response; } @@ -85,12 +87,29 @@ $end $end $end - var response = _${replaceDto.ModelTypeName}repository.Queryable().Where(predicate.ToExpression()) + var response = _${replaceDto.ModelTypeName}Repository.Queryable().Where(predicate.ToExpression()) .ToTree(it => it.Children, it => it.${genTable.TreeParentCode}, 0); return response; } $end + /// + /// 添加${genTable.FunctionName} + /// + /// + /// + public int Add${replaceDto.ModelTypeName}(${replaceDto.ModelTypeName} parm) + { + var response = _${replaceDto.ModelTypeName}Repository.Insert(parm, it => new + { +${foreach(item in genTable.Columns)} +$if((item.IsInsert)) + it.$item.CsharpField, +$end +${end} + }); + return response; + } #endregion } } \ No newline at end of file diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs index 3ea5e63..3f1ac66 100644 --- a/ZR.CodeGenerator/CodeGeneratorTool.cs +++ b/ZR.CodeGenerator/CodeGeneratorTool.cs @@ -513,7 +513,7 @@ namespace ZR.CodeGenerator /// private static void InitJntTemplate(GenerateDto dto, ReplaceDto replaceDto) { - Engine.Current.Clean(); + //Engine.Current.Clean(); dto.GenTable.Columns = dto.GenTable.Columns.OrderBy(x => x.Sort).ToList(); bool showCustomInput = dto.GenTable.Columns.Any(f => f.HtmlType.Equals(GenConstants.HTML_CUSTOM_INPUT, StringComparison.OrdinalIgnoreCase)); //jnt模板引擎全局变量 @@ -525,6 +525,7 @@ namespace ZR.CodeGenerator options.OutMode = OutMode.Auto; //options.DisableeLogogram = true;//禁用简写 options.Data.Set("refs", "$");//特殊标签替换 + options.Data.Set("t", "$");//特殊标签替换 options.Data.Set("modal", "$");//特殊标签替换 options.Data.Set("index", "$");//特殊标签替换 options.Data.Set("confirm", "$");//特殊标签替换 diff --git a/ZR.CodeGenerator/ZR.CodeGenerator.csproj b/ZR.CodeGenerator/ZR.CodeGenerator.csproj index 17787d8..bab66bd 100644 --- a/ZR.CodeGenerator/ZR.CodeGenerator.csproj +++ b/ZR.CodeGenerator/ZR.CodeGenerator.csproj @@ -12,6 +12,6 @@ - + diff --git a/ZR.Model/System/Generate/GenTable.cs b/ZR.Model/System/Generate/GenTable.cs index a50f585..a668623 100644 --- a/ZR.Model/System/Generate/GenTable.cs +++ b/ZR.Model/System/Generate/GenTable.cs @@ -103,6 +103,12 @@ namespace ZR.Model.System.Generate /// [SqlSugar.SugarColumn(IsIgnore = true)] public int[] CheckedBtn { get; set; } = new int[] { 1, 2, 3 }; + + /// + /// 字表信息 + /// + [SqlSugar.SugarColumn(IsIgnore = true)] + public GenTable SubTable { get; set; } #endregion } } diff --git a/ZR.Model/ZR.Model.csproj b/ZR.Model/ZR.Model.csproj index d1a23b6..7915d47 100644 --- a/ZR.Model/ZR.Model.csproj +++ b/ZR.Model/ZR.Model.csproj @@ -7,7 +7,7 @@ - + diff --git a/ZR.Repository/ZR.Repository.csproj b/ZR.Repository/ZR.Repository.csproj index ae91d4c..e76ef0d 100644 --- a/ZR.Repository/ZR.Repository.csproj +++ b/ZR.Repository/ZR.Repository.csproj @@ -14,7 +14,7 @@ - + diff --git a/ZR.Service/System/GenTableService.cs b/ZR.Service/System/GenTableService.cs index 3a5afa0..a9fbe81 100644 --- a/ZR.Service/System/GenTableService.cs +++ b/ZR.Service/System/GenTableService.cs @@ -57,7 +57,11 @@ namespace ZR.Service.System { var info = GenTableRepository.GetId(tableId); SetTableFromOptions(info); - + if (info != null && !info.SubTableName.IsEmpty()) + { + info.SubTable = GenTableRepository.Queryable().Where(f => f.SubTableName == info.TableName).First(); + SetTableFromOptions(info?.SubTable); + } return info; }