优化代码生成功能

This commit is contained in:
不做码农 2021-12-14 21:50:30 +08:00
parent bb2f64088d
commit 50c48077d7
6 changed files with 126 additions and 124 deletions

View File

@ -157,19 +157,7 @@ namespace ZR.Admin.WebApi.Controllers
var tabInfo = _CodeGeneraterService.GetTableInfo(dbName, tableName);
if (tabInfo != null)
{
GenTable genTable = new()
{
DbName = dbName,
BaseNameSpace = "ZR.",//导入默认命名空间前缀
ModuleName = "business",//导入默认模块名
ClassName = CodeGeneratorTool.GetClassName(tableName),
BusinessName = CodeGeneratorTool.GetBusinessName(tableName),
FunctionAuthor = ConfigUtils.Instance.GetConfig(GenConstants.Gen_author),
TableName = tableName,
TableComment = tabInfo?.Description,
FunctionName = tabInfo?.Description,
Create_by = userName,
};
GenTable genTable = CodeGeneratorTool.InitTable(dbName, userName, tableName, tabInfo?.Description);
genTable.TableId = GenTableService.ImportGenTable(genTable);
if (genTable.TableId > 0)
@ -256,7 +244,7 @@ namespace ZR.Admin.WebApi.Controllers
[HttpPost("genCode")]
[Log(Title = "代码生成", BusinessType = BusinessType.GENCODE)]
[ActionPermissionFilter(Permission = "tool:gen:code")]
public IActionResult Generate([FromBody] GenerateDto dto)
public IActionResult CodeGenerate([FromBody] GenerateDto dto)
{
if (dto.TableId <= 0)
{
@ -274,7 +262,6 @@ namespace ZR.Admin.WebApi.Controllers
//下载文件
FileHelper.ZipGenCode(dto);
//HttpContext.Response.Headers.Add("Content-disposition", $"attachment; filename={zipFileName}");
return SUCCESS(new { path = "/Generatecode/" + dto.ZipFileName, fileName = dto.ZipFileName });
}

View File

@ -101,14 +101,15 @@ $end
//从 Dto 映射到 实体
var model = parm.Adapt<${replaceDto.ModelTypeName}>().ToCreate(HttpContext);
return SUCCESS(_${replaceDto.ModelTypeName}Service.Insert(model, it => new
var response = _${replaceDto.ModelTypeName}Service.Insert(model, it => new
{
$foreach(item in genTable.Columns)
$if((item.IsInsert))
it.$item.CsharpField,
$end
${end}
}));
});
return ToResponse(response);
}
/// <summary>
@ -137,7 +138,7 @@ $end
${end}
});
return SUCCESS(response);
return ToResponse(response);
}
/// <summary>
@ -154,7 +155,7 @@ ${end}
var response = _${replaceDto.ModelTypeName}Service.Delete(idsArr);
return SUCCESS(response);
return ToResponse(response);
}
/// <summary>

View File

@ -307,25 +307,25 @@ $end
$end
console.log(JSON.stringify(this.form));
if (this.form.${replaceDto.FistLowerPk} != undefined || this.title === "修改数据") {
update${genTable.BusinessName}(this.form).then((res) => {
if (!res.data) {
this.msgError("修改失败");
return;
}
if (this.form.${replaceDto.FistLowerPk} != undefined && this.title === "修改数据") {
update${genTable.BusinessName}(this.form)
.then((res) => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.catch((err) => {
//TODO 错误逻辑
});
} else {
add${genTable.BusinessName}(this.form).then((res) => {
if (!res.data) {
this.msgError("新增失败");
return;
}
add${genTable.BusinessName}(this.form)
.then((res) => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.catch((err) => {
//TODO 错误逻辑
});
}
}

View File

@ -37,15 +37,7 @@ namespace ZR.CodeGenerator
_option.ApiControllerNamespace = _option.BaseNamespace + "Admin.WebApi";
dto.GenOptions = _option;
GenerateSingle(dto);
}
/// <summary>
/// 单表生成代码
/// </summary>
/// <param name="dto"></param>
public static void GenerateSingle(GenerateDto dto)
{
string PKName = "Id";
string PKType = "int";
ReplaceDto replaceDto = new();
@ -98,7 +90,7 @@ namespace ZR.CodeGenerator
}
}
#region Model
#region
/// <summary>
/// 生成实体类Model
@ -128,9 +120,6 @@ namespace ZR.CodeGenerator
var result = tpl.Render();
generateDto.GenCodes.Add(new GenCode(2, "Dto.cs", fullPath, result));
}
#endregion
#region Repository
/// <summary>
/// 生成Repository层代码文件
@ -146,10 +135,6 @@ namespace ZR.CodeGenerator
generateDto.GenCodes.Add(new GenCode(3, "Repository.cs", fullPath, result));
}
#endregion
#region Service
/// <summary>
/// 生成Service文件
/// </summary>
@ -166,9 +151,6 @@ namespace ZR.CodeGenerator
generateDto.GenCodes.Add(new GenCode(4, "IService.cs", fullPath2, result2));
}
#endregion
#region Controller
/// <summary>
/// 生成控制器ApiControllers文件
/// </summary>
@ -181,11 +163,9 @@ namespace ZR.CodeGenerator
var result = tpl.Render();
generateDto.GenCodes.Add(new GenCode(5, "Controller.cs", fullPath, result));
}
#endregion
#region Vue页面 & api
/// <summary>
/// 6、生成Vue页面
/// 生成Vue页面
private static void GenerateVueViews(ReplaceDto replaceDto, GenerateDto generateDto)
{
var fullPath = Path.Combine(generateDto.GenCodePath, "ZR.Vue", "src", "views", generateDto.GenTable.ModuleName, $"{generateDto.GenTable.BusinessName}.vue");
@ -200,8 +180,9 @@ namespace ZR.CodeGenerator
var result = tpl.Render();
generateDto.GenCodes.Add(new GenCode(6, "index.vue", fullPath, result));
}
/// <summary>
/// 7、生成vue页面api
/// 生成vue页面api
/// </summary>
/// <param name="replaceDto"></param>
/// <param name="generateDto"></param>
@ -215,10 +196,11 @@ namespace ZR.CodeGenerator
generateDto.GenCodes.Add(new GenCode(7, "api.js", fullPath, result));
}
#endregion
#region SQL
/// <summary>
/// 生成SQL
/// </summary>
/// <param name="replaceDto"></param>
/// <param name="generateDto"></param>
public static void GenerateSql(ReplaceDto replaceDto, GenerateDto generateDto)
{
string fullPath = Path.Combine(generateDto.GenCodePath, generateDto.GenTable.BusinessName + ".sql");
@ -277,10 +259,6 @@ namespace ZR.CodeGenerator
/// <returns>业务名</returns>
public static string GetBusinessName(string tableName)
{
//int firstIndex = tableName.IndexOf("_");//_前缀长度
//int nameLength = tableName.Length;
//int subLength = (nameLength - lastIndex) - 1;
//string businessName = tableName[(lastIndex + 1)..];
return tableName.Substring(0, 1).ToUpper() + tableName[1..].Replace("_", "");
}
@ -334,6 +312,34 @@ namespace ZR.CodeGenerator
}
#endregion
#region
/// <summary>
/// 初始化表信息
/// </summary>
/// <param name="dbName"></param>
/// <param name="userName"></param>
/// <param name="tableName"></param>
/// <param name="desc"></param>
/// <returns></returns>
public static GenTable InitTable(string dbName, string userName, string tableName, string desc)
{
GenTable genTable = new()
{
DbName = dbName,
BaseNameSpace = "ZR.",//导入默认命名空间前缀
ModuleName = "business",//导入默认模块名
ClassName = GetClassName(tableName),
BusinessName = GetBusinessName(tableName),
FunctionAuthor = ConfigUtils.Instance.GetConfig(GenConstants.Gen_author),
TableName = tableName,
TableComment = desc,
FunctionName = desc,
Create_by = userName,
};
return genTable;
}
/// <summary>
/// 初始化列属性字段数据
/// </summary>
@ -343,6 +349,13 @@ namespace ZR.CodeGenerator
{
List<GenTableColumn> genTableColumns = new();
foreach (var column in dbColumnInfos)
{
genTableColumns.Add(InitColumnField(genTable, column));
}
return genTableColumns;
}
private static GenTableColumn InitColumnField(GenTable genTable, DbColumnInfo column)
{
GenTableColumn genTableColumn = new()
{
@ -401,11 +414,12 @@ namespace ZR.CodeGenerator
{
genTableColumn.QueryType = "BETWEEN";
}
genTableColumns.Add(genTableColumn);
}
return genTableColumns;
return genTableColumn;
}
#endregion
/// <summary>
/// 初始化Jnt模板
/// </summary>

View File

@ -49,7 +49,7 @@ namespace ZR.CodeGenerator.Service
var tableList = GetSugarDbContext(dbName).DbMaintenance.GetTableInfoList(true);
if (!string.IsNullOrEmpty(tableName))
{
return tableList.Where(f => f.Name.ToLower() == (tableName.ToLower())).FirstOrDefault();
return tableList.Where(f => f.Name.Equals(tableName, System.StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
}
return null;

View File

@ -57,7 +57,7 @@ service.interceptors.response.use(res => {
})
return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
} else if (code == 0 || code == 110 || code == 101 || code == 403 || code == 500) {
} else if (code == 0 || code == 1 || code == 110 || code == 101 || code == 403 || code == 500) {
Message({
message: msg,
type: 'error'