diff --git a/ZR.Admin.WebApi/Template/ControllersTemplate.txt b/ZR.Admin.WebApi/Template/ControllersTemplate.txt index e805591..6d8d8b2 100644 --- a/ZR.Admin.WebApi/Template/ControllersTemplate.txt +++ b/ZR.Admin.WebApi/Template/ControllersTemplate.txt @@ -22,90 +22,90 @@ namespace ZRAdmin.Controllers /// [Verify] - [Route("bus/<#=ModelName#>")] - public class <#=ControllerName#>Controller: BaseController + [Route("bus/{ModelName}")] + public class {ControllerName}Controller: BaseController { /// - /// <#=FileName#>接口 + /// {FileName}接口 /// - private readonly I<#=ServiceName#> _<#=ServiceName#>; + private readonly I{ServiceName} _{ServiceName}; - public <#=ControllerName#>Controller(I<#=ServiceName#> <#=ServiceName#>) + public {ControllerName}Controller(I{ServiceName} {ServiceName}) { - _<#=ServiceName#> = <#=ServiceName#>; + _{ServiceName} = {ServiceName}; } /// - /// 查询<#=FileName#>列表 + /// 查询{FileName}列表 /// /// [HttpGet("list")] - [ActionPermissionFilter(Permission = "<#=Permission#>:list")] - public IActionResult Query([FromQuery] <#=ModelName#>QueryDto parm) + [ActionPermissionFilter(Permission = "{Permission}:list")] + public IActionResult Query([FromQuery] {ModelName}QueryDto parm) { //开始拼装查询条件 - var predicate = Expressionable.Create<<#=ModelName#>>(); + var predicate = Expressionable.Create<{ModelName}>(); //TODO 搜索条件 //predicate = predicate.And(m => m.Name.Contains(parm.Name)); - var response = _<#=ServiceName#>.GetPages(predicate.ToExpression(), parm); + var response = _{ServiceName}.GetPages(predicate.ToExpression(), parm); return SUCCESS(response); } /// - /// 查询<#=FileName#>详情 + /// 查询{FileName}详情 /// /// /// [HttpGet("{{primaryKey}}")] - [ActionPermissionFilter(Permission = "<#=Permission#>:query")] + [ActionPermissionFilter(Permission = "{Permission}:query")] public IActionResult Get({KeyTypeName} {primaryKey}) { - var response = _<#=ServiceName#>.GetId({primaryKey}); + var response = _{ServiceName}.GetId({primaryKey}); return SUCCESS(response); } /// - /// 添加<#=FileName#> + /// 添加{FileName} /// /// [HttpPost] - [ActionPermissionFilter(Permission = "<#=Permission#>:add")] - [Log(Title = "<#=FileName#>添加", BusinessType = BusinessType.INSERT)] - public IActionResult Create([FromBody] <#=ModelName#>Dto parm) + [ActionPermissionFilter(Permission = "{Permission}:add")] + [Log(Title = "{FileName}添加", BusinessType = BusinessType.INSERT)] + public IActionResult Create([FromBody] {ModelName}Dto parm) { if (parm == null) { throw new CustomException("请求参数错误"); } //从 Dto 映射到 实体 - var addModel = parm.Adapt<<#=ModelName#>>().ToCreate(); + var addModel = parm.Adapt<{ModelName}>().ToCreate(); //addModel.CreateID = User.Identity.Name; - return SUCCESS(_<#=ServiceName#>.Add(addModel)); + return SUCCESS(_{ServiceName}.Add(addModel)); } /// - /// 更新<#=FileName#> + /// 更新{FileName} /// /// [HttpPut] - [ActionPermissionFilter(Permission = "<#=Permission#>:update")] - [Log(Title = "<#=FileName#>修改", BusinessType = BusinessType.UPDATE)] - public IActionResult Update([FromBody] <#=ModelName#>Dto parm) + [ActionPermissionFilter(Permission = "{Permission}:update")] + [Log(Title = "{FileName}修改", BusinessType = BusinessType.UPDATE)] + public IActionResult Update([FromBody] {ModelName}Dto parm) { if (parm == null) { throw new CustomException("请求实体不能为空"); } //从 Dto 映射到 实体 - var updateModel = parm.Adapt<<#=ModelName#>>().ToCreate(); + var updateModel = parm.Adapt<{ModelName}>().ToCreate(); //updateModel.CreateID = User.Identity.Name; - var response = _<#=ServiceName#>.Update(w => w.{primaryKey} == updateModel.{primaryKey}, it => new <#=ModelName#>() + var response = _{ServiceName}.Update(w => w.{primaryKey} == updateModel.{primaryKey}, it => new {ModelName}() { //TODO 字段映射 {updateColumn} @@ -115,18 +115,18 @@ namespace ZRAdmin.Controllers } /// - /// 删除<#=FileName#> + /// 删除{FileName} /// /// [HttpDelete("{{primaryKey}}")] - [ActionPermissionFilter(Permission = "<#=Permission#>:delete")] - [Log(Title = "<#=FileName#>删除", BusinessType = BusinessType.DELETE)] + [ActionPermissionFilter(Permission = "{Permission}:delete")] + [Log(Title = "{FileName}删除", BusinessType = BusinessType.DELETE)] public IActionResult Delete({KeyTypeName} {primaryKey} = 0) { if ({primaryKey} <= 0) { return OutputJson(ApiResult.Error($"删除失败Id 不能为空")); } - // 删除<#=FileName#> - var response = _<#=ServiceName#>.Delete({primaryKey}); + // 删除{FileName} + var response = _{ServiceName}.Delete({primaryKey}); return SUCCESS(response); } diff --git a/ZR.Admin.WebApi/Template/VueTemplate.txt b/ZR.Admin.WebApi/Template/VueTemplate.txt index 7605e85..421fa82 100644 --- a/ZR.Admin.WebApi/Template/VueTemplate.txt +++ b/ZR.Admin.WebApi/Template/VueTemplate.txt @@ -223,18 +223,6 @@ export default { } }); }, - // 详情 - handleView(row) { - this.open = true; - this.title = "详情"; - // TODO 给表单赋值 - this.form = { - content: row.content, - userId: row.userId, - name: row.name, - sortId: row.sortId, - }; - } }, }; diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs index 3912cae..3896d0d 100644 --- a/ZR.CodeGenerator/CodeGeneratorTool.cs +++ b/ZR.CodeGenerator/CodeGeneratorTool.cs @@ -272,7 +272,7 @@ namespace ZR.CodeGenerator /// 数据库表实体内容 /// 主键数据类型 /// 如果目标文件存在,是否覆盖。默认为false - private static void GenerateModels(string modelsNamespace, string modelTypeName, string tableName, string modelContent, string modelTypeDesc, string keyTypeName, bool ifExsitedCovered = false) + private static Tuple GenerateModels(string modelsNamespace, string modelTypeName, string tableName, string modelContent, string modelTypeDesc, string keyTypeName, bool ifExsitedCovered = false) { var parentPath = ".."; //../ZR.Model @@ -285,7 +285,7 @@ namespace ZR.CodeGenerator var fullPath = servicesPath + modelTypeName + ".cs"; Console.WriteLine(fullPath); if (File.Exists(fullPath) && !ifExsitedCovered) - return; + return Tuple.Create(fullPath, ""); var content = ReadTemplate("ModelTemplate.txt"); content = content .Replace("{ModelsNamespace}", modelsNamespace) @@ -295,6 +295,7 @@ namespace ZR.CodeGenerator .Replace("{PropertyName}", modelContent) .Replace("{TableName}", tableName); WriteAndSave(fullPath, content); + return Tuple.Create(fullPath, content); } @@ -307,7 +308,7 @@ namespace ZR.CodeGenerator /// /// /// 如果目标文件存在,是否覆盖。默认为false - private static void GenerateInputDto(string modelsNamespace, string modelTypeName, string modelTypeDesc, string modelContent, string keyTypeName, bool ifExsitedCovered = false) + private static Tuple GenerateInputDto(string modelsNamespace, string modelTypeName, string modelTypeDesc, string modelContent, string keyTypeName, bool ifExsitedCovered = false) { var parentPath = ".."; var servicesPath = parentPath + "\\" + modelsNamespace + "\\Dto\\"; @@ -319,7 +320,7 @@ namespace ZR.CodeGenerator var fullPath = servicesPath + modelTypeName + "Dto.cs"; Console.WriteLine(fullPath); if (File.Exists(fullPath) && !ifExsitedCovered) - return; + return Tuple.Create(fullPath, ""); ; var content = ReadTemplate("InputDtoTemplate.txt"); content = content .Replace("{DtosNamespace}", _option.DtosNamespace) @@ -329,6 +330,7 @@ namespace ZR.CodeGenerator .Replace("{PropertyName}", modelContent) .Replace("{ModelTypeName}", modelTypeName); WriteAndSave(fullPath, content); + return Tuple.Create(fullPath, content); } #endregion @@ -342,7 +344,7 @@ namespace ZR.CodeGenerator /// 表名 /// /// 如果目标文件存在,是否覆盖。默认为false - private static void GenerateRepository(string modelTypeName, string modelTypeDesc, string tableName, string keyTypeName, bool ifExsitedCovered = false) + private static Tuple GenerateRepository(string modelTypeName, string modelTypeDesc, string tableName, string keyTypeName, bool ifExsitedCovered = false) { var parentPath = ".."; var repositoryPath = parentPath + "\\" + _option.RepositoriesNamespace + "\\Repositories\\"; @@ -353,7 +355,7 @@ namespace ZR.CodeGenerator var fullPath = repositoryPath + "\\" + modelTypeName + "Repository.cs"; Console.WriteLine(fullPath); if (File.Exists(fullPath) && !ifExsitedCovered) - return; + return Tuple.Create(fullPath, ""); var content = ReadTemplate("RepositoryTemplate.txt"); content = content.Replace("{ModelsNamespace}", _option.ModelsNamespace) //.Replace("{IRepositoriesNamespace}", _option.IRepositoriesNamespace) @@ -363,6 +365,7 @@ namespace ZR.CodeGenerator .Replace("{TableName}", tableName) .Replace("{KeyTypeName}", keyTypeName); WriteAndSave(fullPath, content); + return Tuple.Create(fullPath, content); } #endregion @@ -376,7 +379,7 @@ namespace ZR.CodeGenerator /// /// /// 如果目标文件存在,是否覆盖。默认为false - private static void GenerateIService(string modelsNamespace, string modelTypeName, string modelTypeDesc, string keyTypeName, bool ifExsitedCovered = false) + private static Tuple GenerateIService(string modelsNamespace, string modelTypeName, string modelTypeDesc, string keyTypeName, bool ifExsitedCovered = false) { var parentPath = ".."; var iServicesPath = parentPath + "\\" + _option.IServicsNamespace + "\\Business\\IBusService\\"; @@ -387,7 +390,7 @@ namespace ZR.CodeGenerator var fullPath = $"{iServicesPath}\\I{modelTypeName}Service.cs"; Console.WriteLine(fullPath); if (File.Exists(fullPath) && !ifExsitedCovered) - return; + return Tuple.Create(fullPath, ""); var content = ReadTemplate("IServiceTemplate.txt"); content = content.Replace("{ModelsNamespace}", modelsNamespace) .Replace("{TableNameDesc}", modelTypeDesc) @@ -397,6 +400,7 @@ namespace ZR.CodeGenerator .Replace("{ModelTypeName}", modelTypeName) .Replace("{KeyTypeName}", keyTypeName); WriteAndSave(fullPath, content); + return Tuple.Create(fullPath, content); } /// @@ -407,7 +411,7 @@ namespace ZR.CodeGenerator /// /// /// 如果目标文件存在,是否覆盖。默认为false - private static void GenerateService(string modelsNamespace, string modelTypeName, string modelTypeDesc, string keyTypeName, bool ifExsitedCovered = false) + private static Tuple GenerateService(string modelsNamespace, string modelTypeName, string modelTypeDesc, string keyTypeName, bool ifExsitedCovered = false) { var parentPath = ".."; var servicesPath = parentPath + "\\" + _option.ServicesNamespace + "\\Business\\"; @@ -418,7 +422,7 @@ namespace ZR.CodeGenerator var fullPath = servicesPath + modelTypeName + "Service.cs"; Console.WriteLine(fullPath); if (File.Exists(fullPath) && !ifExsitedCovered) - return; + return Tuple.Create(fullPath, ""); var content = ReadTemplate("ServiceTemplate.txt"); content = content .Replace("{IRepositoriesNamespace}", _option.IRepositoriesNamespace) @@ -430,6 +434,7 @@ namespace ZR.CodeGenerator .Replace("{ModelTypeName}", modelTypeName) .Replace("{KeyTypeName}", keyTypeName); WriteAndSave(fullPath, content); + return Tuple.Create(fullPath, content); } #endregion @@ -443,7 +448,7 @@ namespace ZR.CodeGenerator /// 实体描述 /// /// 如果目标文件存在,是否覆盖。默认为false - private static void GenerateControllers(string modelTypeName, string primaryKey, string modelTypeDesc, string keyTypeName, string updateColumn, bool ifExsitedCovered = false) + private static Tuple GenerateControllers(string modelTypeName, string primaryKey, string modelTypeDesc, string keyTypeName, string updateColumn, bool ifExsitedCovered = false) { var parentPath = ".."; var servicesPath = parentPath + "\\" + _option.ApiControllerNamespace + "\\Controllers\\business\\"; @@ -454,20 +459,21 @@ namespace ZR.CodeGenerator var fullPath = servicesPath + modelTypeName + "Controller.cs"; Console.WriteLine(fullPath); if (File.Exists(fullPath) && !ifExsitedCovered) - return; + return Tuple.Create(fullPath, ""); var content = ReadTemplate("ControllersTemplate.txt"); content = content //.Replace("{DtosNamespace}", _option.DtosNamespace) - .Replace("<#=ControllerName#>", modelTypeName) + .Replace("{ControllerName}", modelTypeName) .Replace("{ModelsNamespace}", _option.ModelsNamespace) - .Replace("<#=FileName#>", modelTypeDesc) - .Replace("<#=ServiceName#>", modelTypeName + "Service") - .Replace("<#=ModelName#>", modelTypeName) - .Replace("<#=Permission#>", modelTypeName.ToLower()) + .Replace("{FileName}", modelTypeDesc) + .Replace("{ServiceName}", modelTypeName + "Service") + .Replace("{ModelName}", modelTypeName) + .Replace("{Permission}", modelTypeName.ToLower()) .Replace("{primaryKey}", primaryKey) .Replace("{updateColumn}", updateColumn) .Replace("{KeyTypeName}", keyTypeName); WriteAndSave(fullPath, content); + return Tuple.Create(fullPath, content); } #endregion @@ -484,7 +490,7 @@ namespace ZR.CodeGenerator /// /// /// 如果目标文件存在,是否覆盖。默认为false - private static void GenerateVueViews(string modelTypeName, string primaryKey, string modelTypeDesc, string vueViewListContent, string vueViewFromContent, string vueViewEditFromContent, string vueViewEditFromBindContent, string vueViewSaveBindContent, string vueViewEditFromRuleContent, bool ifExsitedCovered = false) + private static Tuple GenerateVueViews(string modelTypeName, string primaryKey, string modelTypeDesc, string vueViewListContent, string vueViewFromContent, string vueViewEditFromContent, string vueViewEditFromBindContent, string vueViewSaveBindContent, string vueViewEditFromRuleContent, bool ifExsitedCovered = false) { //var parentPath = "..\\CodeGenerate";//若要生成到项目中将路径改成 “..\\ZR.Vue\\src” var parentPath = "..\\ZR.Vue\\src"; @@ -496,7 +502,7 @@ namespace ZR.CodeGenerator var fullPath = servicesPath + "\\" + "index.vue"; Console.WriteLine(fullPath); if (File.Exists(fullPath) && !ifExsitedCovered) - return; + return Tuple.Create(fullPath, ""); ; var content = ReadTemplate("VueTemplate.txt"); content = content .Replace("{fileClassName}", FirstLowerCase(modelTypeName)) @@ -517,13 +523,14 @@ namespace ZR.CodeGenerator fullPath = servicesPath + "\\" + FirstLowerCase(modelTypeName) + ".js"; Console.WriteLine(fullPath); if (File.Exists(fullPath) && !ifExsitedCovered) - return; + return Tuple.Create(fullPath, ""); content = ReadTemplate("VueJsTemplate.txt"); content = content .Replace("{ModelTypeName}", modelTypeName) .Replace("{ModelTypeDesc}", modelTypeDesc); //.Replace("{fileClassName}", fileClassName) WriteAndSave(fullPath, content); + return Tuple.Create(fullPath, content); } #endregion