优化代码生成
This commit is contained in:
parent
55b997e58b
commit
21e523a821
@ -4,8 +4,8 @@ using Infrastructure.Enums;
|
||||
using Infrastructure.Model;
|
||||
using Mapster;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using ${options.ModelsNamespace}.Dto;
|
||||
using ${options.ModelsNamespace}.Models;
|
||||
using ${options.DtosNamespace};
|
||||
using ${options.ModelsNamespace}.${options.SubNamespace};
|
||||
using ${options.IServicsNamespace}.${options.SubNamespace}.I${options.SubNamespace}Service;
|
||||
using ${options.ApiControllerNamespace}.Extensions;
|
||||
using ${options.ApiControllerNamespace}.Filters;
|
||||
|
||||
@ -1,14 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Newtonsoft.Json;
|
||||
using ${options.ModelsNamespace}.Dto;
|
||||
using ${options.ModelsNamespace}.Models;
|
||||
//using ${options.ModelsNamespace}.${options.SubNamespace};
|
||||
$if(replaceDto.ShowBtnExport)
|
||||
using MiniExcelLibs.Attributes;
|
||||
$end
|
||||
|
||||
namespace ${options.DtosNamespace}.Dto
|
||||
namespace ${options.DtosNamespace}
|
||||
{
|
||||
/// <summary>
|
||||
/// ${genTable.FunctionName}查询对象
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using ${options.ModelsNamespace};
|
||||
using ${options.ModelsNamespace}.Dto;
|
||||
using ${options.ModelsNamespace}.Models;
|
||||
using ${options.BaseNamespace}Model;
|
||||
using ${options.DtosNamespace};
|
||||
using ${options.ModelsNamespace}.${options.SubNamespace};
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace ${options.IServicsNamespace}.${options.SubNamespace}.I${options.SubNamespace}Service
|
||||
@ -22,7 +22,8 @@ $end
|
||||
int Add${replaceDto.ModelTypeName}(${replaceDto.ModelTypeName} parm);
|
||||
|
||||
int Update${replaceDto.ModelTypeName}(${replaceDto.ModelTypeName} parm);
|
||||
|
||||
$if(replaceDto.ShowBtnTruncate)
|
||||
void Truncate${replaceDto.ModelTypeName}();
|
||||
$end
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
using SqlSugar;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace ${options.ModelsNamespace}.Models
|
||||
namespace ${options.ModelsNamespace}.${options.SubNamespace}
|
||||
{
|
||||
/// <summary>
|
||||
/// ${genTable.FunctionName},数据实体对象
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
using System;
|
||||
using Infrastructure.Attribute;
|
||||
using ${options.RepositoriesNamespace}.System;
|
||||
using ${options.ModelsNamespace}.Models;
|
||||
using Infrastructure.Attribute;
|
||||
using ${options.ModelsNamespace}.${options.SubNamespace};
|
||||
|
||||
namespace ${options.RepositoriesNamespace}
|
||||
{
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
using System;
|
||||
using SqlSugar;
|
||||
using Infrastructure.Attribute;
|
||||
using ${options.ModelsNamespace};
|
||||
using ${options.ModelsNamespace}.Dto;
|
||||
using ${options.ModelsNamespace}.Models;
|
||||
using ${options.IRepositoriesNamespace};
|
||||
using ${options.BaseNamespace}Model;
|
||||
using ${options.DtosNamespace};
|
||||
using ${options.ModelsNamespace}.${options.SubNamespace};
|
||||
using ${options.RepositoriesNamespace};
|
||||
using ${options.IServicsNamespace}.${options.SubNamespace}.I${options.SubNamespace}Service;
|
||||
using System.Linq;
|
||||
$if(genTable.TplCategory == "tree")
|
||||
@ -120,7 +120,7 @@ ${end}
|
||||
//return response;
|
||||
return Update(model, true);
|
||||
}
|
||||
|
||||
$if(replaceDto.ShowBtnTruncate)
|
||||
/// <summary>
|
||||
/// 清空${genTable.FunctionName}
|
||||
/// </summary>
|
||||
@ -129,6 +129,7 @@ ${end}
|
||||
{
|
||||
Truncate();
|
||||
}
|
||||
$end
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@ -18,10 +18,10 @@
|
||||
/// 输入输出数据实体名称空间
|
||||
/// </summary>
|
||||
public string DtosNamespace { get; set; }
|
||||
/// <summary>
|
||||
/// 仓储接口命名空间
|
||||
/// </summary>
|
||||
public string IRepositoriesNamespace { get; set; }
|
||||
///// <summary>
|
||||
///// 仓储接口命名空间
|
||||
///// </summary>
|
||||
//public string IRepositoriesNamespace { get; set; }
|
||||
/// <summary>
|
||||
/// 仓储实现名称空间
|
||||
/// </summary>
|
||||
|
||||
@ -19,10 +19,6 @@ namespace ZR.CodeGenerator
|
||||
public class CodeGeneratorTool
|
||||
{
|
||||
private static readonly string CodeTemplateDir = "CodeGenTemplate";
|
||||
/// <summary>
|
||||
/// 代码生成器配置
|
||||
/// </summary>
|
||||
private static CodeGenerateOption _option = new CodeGenerateOption();
|
||||
|
||||
/// <summary>
|
||||
/// 代码生成器入口方法
|
||||
@ -30,26 +26,14 @@ namespace ZR.CodeGenerator
|
||||
/// <param name="dto"></param>
|
||||
public static void Generate(GenerateDto dto)
|
||||
{
|
||||
_option.BaseNamespace = dto.GenTable.BaseNameSpace;
|
||||
_option.SubNamespace = dto.GenTable.ModuleName.FirstUpperCase();
|
||||
_option.DtosNamespace = _option.BaseNamespace + "Model";
|
||||
_option.ModelsNamespace = _option.BaseNamespace + "Model";
|
||||
_option.RepositoriesNamespace = _option.BaseNamespace + "Repository";
|
||||
_option.IRepositoriesNamespace = _option.BaseNamespace + "Repository";
|
||||
_option.IServicsNamespace = _option.BaseNamespace + "Service";
|
||||
_option.ServicesNamespace = _option.BaseNamespace + "Service";
|
||||
_option.ApiControllerNamespace = _option.BaseNamespace + "Admin.WebApi";
|
||||
|
||||
var vuePath = AppSettings.GetConfig("gen:vuePath");
|
||||
dto.VueParentPath = dto.VueVersion == 3 ? "ZRAdmin-vue" : "ZR.Vue";
|
||||
if (!vuePath.IsEmpty())
|
||||
{
|
||||
dto.VueParentPath = vuePath;
|
||||
}
|
||||
dto.GenOptions = _option;
|
||||
dto.GenOptions = GenerateOption(dto.GenTable); ;
|
||||
|
||||
string PKName = "Id";
|
||||
string PKType = "int";
|
||||
ReplaceDto replaceDto = new()
|
||||
{
|
||||
ModelTypeName = dto.GenTable.ClassName,//表名对应C# 实体类名
|
||||
@ -61,6 +45,8 @@ namespace ZR.CodeGenerator
|
||||
ShowBtnExport = dto.GenTable.Options.CheckedBtn.Any(f => f == 4),
|
||||
ShowBtnView = dto.GenTable.Options.CheckedBtn.Any(f => f == 5),
|
||||
ShowBtnTruncate = dto.GenTable.Options.CheckedBtn.Any(f => f == 6),
|
||||
PKName = "Id",
|
||||
PKType = "int"
|
||||
};
|
||||
|
||||
//循环表字段信息
|
||||
@ -68,8 +54,8 @@ namespace ZR.CodeGenerator
|
||||
{
|
||||
if (dbFieldInfo.IsPk || dbFieldInfo.IsIncrement)
|
||||
{
|
||||
PKName = dbFieldInfo.CsharpField;
|
||||
PKType = dbFieldInfo.CsharpType;
|
||||
replaceDto.PKName = dbFieldInfo.CsharpField;
|
||||
replaceDto.PKType = dbFieldInfo.CsharpType;
|
||||
}
|
||||
if (dbFieldInfo.HtmlType.Equals(GenConstants.HTML_IMAGE_UPLOAD) || dbFieldInfo.HtmlType.Equals(GenConstants.HTML_FILE_UPLOAD))
|
||||
{
|
||||
@ -86,9 +72,7 @@ namespace ZR.CodeGenerator
|
||||
dbFieldInfo.CsharpFieldFl = dbFieldInfo.CsharpField.FirstLowerCase();
|
||||
}
|
||||
|
||||
replaceDto.PKName = PKName;
|
||||
replaceDto.PKType = PKType;
|
||||
replaceDto.FistLowerPk = PKName.FirstLowerCase();
|
||||
replaceDto.FistLowerPk = replaceDto.PKName.FirstLowerCase();
|
||||
InitJntTemplate(dto, replaceDto);
|
||||
|
||||
GenerateModels(replaceDto, dto);
|
||||
@ -122,6 +106,23 @@ namespace ZR.CodeGenerator
|
||||
}
|
||||
}
|
||||
|
||||
private static CodeGenerateOption GenerateOption(GenTable genTable)
|
||||
{
|
||||
CodeGenerateOption _option = new()
|
||||
{
|
||||
BaseNamespace = genTable.BaseNameSpace,
|
||||
SubNamespace = genTable.ModuleName.FirstUpperCase()
|
||||
};
|
||||
_option.DtosNamespace = _option.BaseNamespace + "Model.Dto";
|
||||
_option.ModelsNamespace = _option.BaseNamespace + "Model";
|
||||
_option.RepositoriesNamespace = _option.BaseNamespace + "Repository";
|
||||
//_option.IRepositoriesNamespace = _option.BaseNamespace + "Repository";
|
||||
_option.IServicsNamespace = _option.BaseNamespace + "Service";
|
||||
_option.ServicesNamespace = _option.BaseNamespace + "Service";
|
||||
_option.ApiControllerNamespace = _option.BaseNamespace + "Admin.WebApi";
|
||||
return _option;
|
||||
}
|
||||
|
||||
#region 读取模板
|
||||
|
||||
/// <summary>
|
||||
@ -134,8 +135,8 @@ namespace ZR.CodeGenerator
|
||||
var tpl = JnHelper.ReadTemplate(CodeTemplateDir, "TplModel.txt");
|
||||
var tplDto = JnHelper.ReadTemplate(CodeTemplateDir, "TplDto.txt");
|
||||
|
||||
string fullPath = Path.Combine(_option.ModelsNamespace, "Models", _option.SubNamespace, replaceDto.ModelTypeName + ".cs");
|
||||
string fullPathDto = Path.Combine(_option.ModelsNamespace, "Dto", _option.SubNamespace, $"{replaceDto.ModelTypeName}Dto.cs");
|
||||
string fullPath = Path.Combine(generateDto.GenOptions.ModelsNamespace, "Models", generateDto.GenOptions.SubNamespace, replaceDto.ModelTypeName + ".cs");
|
||||
string fullPathDto = Path.Combine(generateDto.GenOptions.ModelsNamespace, "Dto", generateDto.GenOptions.SubNamespace, replaceDto.ModelTypeName + "Dto.cs");
|
||||
|
||||
generateDto.GenCodes.Add(new GenCode(1, "Model.cs", fullPath, tpl.Render()));
|
||||
generateDto.GenCodes.Add(new GenCode(2, "Dto.cs", fullPathDto, tplDto.Render()));
|
||||
@ -150,7 +151,7 @@ namespace ZR.CodeGenerator
|
||||
{
|
||||
var tpl = JnHelper.ReadTemplate(CodeTemplateDir, "TplRepository.txt");
|
||||
var result = tpl.Render();
|
||||
var fullPath = Path.Combine(_option.RepositoriesNamespace, _option.SubNamespace, $"{replaceDto.ModelTypeName}Repository.cs");
|
||||
var fullPath = Path.Combine(generateDto.GenOptions.RepositoriesNamespace, generateDto.GenOptions.SubNamespace, $"{replaceDto.ModelTypeName}Repository.cs");
|
||||
|
||||
generateDto.GenCodes.Add(new GenCode(3, "Repository.cs", fullPath, result));
|
||||
}
|
||||
@ -163,8 +164,8 @@ namespace ZR.CodeGenerator
|
||||
var tpl = JnHelper.ReadTemplate(CodeTemplateDir, "TplService.txt");
|
||||
var tpl2 = JnHelper.ReadTemplate(CodeTemplateDir, "TplIService.txt");
|
||||
|
||||
var fullPath = Path.Combine(_option.ServicesNamespace, _option.SubNamespace, $"{replaceDto.ModelTypeName}Service.cs");
|
||||
var fullPath2 = Path.Combine(_option.IServicsNamespace, _option.SubNamespace, $"I{_option.SubNamespace}Service", $"I{replaceDto.ModelTypeName}Service.cs");
|
||||
var fullPath = Path.Combine(generateDto.GenOptions.ServicesNamespace, generateDto.GenOptions.SubNamespace, $"{replaceDto.ModelTypeName}Service.cs");
|
||||
var fullPath2 = Path.Combine(generateDto.GenOptions.IServicsNamespace, generateDto.GenOptions.SubNamespace, $"I{generateDto.GenOptions.SubNamespace}Service", $"I{replaceDto.ModelTypeName}Service.cs");
|
||||
|
||||
generateDto.GenCodes.Add(new GenCode(4, "Service.cs", fullPath, tpl.Render()));
|
||||
generateDto.GenCodes.Add(new GenCode(4, "IService.cs", fullPath2, tpl2.Render()));
|
||||
@ -179,7 +180,7 @@ namespace ZR.CodeGenerator
|
||||
tpl.Set("QueryCondition", replaceDto.QueryCondition);
|
||||
var result = tpl.Render();
|
||||
|
||||
var fullPath = Path.Combine(_option.ApiControllerNamespace, "Controllers", _option.SubNamespace, $"{replaceDto.ModelTypeName}Controller.cs");
|
||||
var fullPath = Path.Combine(generateDto.GenOptions.ApiControllerNamespace, "Controllers", generateDto.GenOptions.SubNamespace, $"{replaceDto.ModelTypeName}Controller.cs");
|
||||
generateDto.GenCodes.Add(new GenCode(5, "Controller.cs", fullPath, result));
|
||||
}
|
||||
|
||||
@ -406,11 +407,6 @@ namespace ZR.CodeGenerator
|
||||
return sTempDatatype;
|
||||
}
|
||||
|
||||
public static bool IsNumber(string tableDataType)
|
||||
{
|
||||
string[] arr = new string[] { "int", "long" };
|
||||
return arr.Any(f => f.Contains(GetCSharpDatatype(tableDataType)));
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 初始化信息
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user