优化代码生成

This commit is contained in:
izory 2021-09-18 18:13:28 +08:00
parent 8c8c205393
commit 7a8000c729
7 changed files with 64 additions and 39 deletions

View File

@ -93,17 +93,17 @@ namespace ZR.Admin.WebApi.Controllers
[ActionPermissionFilter(Permission = "tool:gen:code")] [ActionPermissionFilter(Permission = "tool:gen:code")]
public IActionResult Generate([FromBody] GenerateDto dto) public IActionResult Generate([FromBody] GenerateDto dto)
{ {
if (string.IsNullOrEmpty(dto.tableName) || dto.TableId <= 0) if (dto.TableId <= 0)
{ {
throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空"); throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空");
} }
var genTableInfo = GenTableService.GetGenTableInfo(dto.TableId); var genTableInfo = GenTableService.GetGenTableInfo(dto.TableId);
var getTableColumn = GenTableColumnService.GenTableColumns(dto.TableId); var getTableColumn = GenTableColumnService.GenTableColumns(dto.TableId);
genTableInfo.Columns = getTableColumn; genTableInfo.Columns = getTableColumn;
DbTableInfo dbTableInfo = new() { Name = dto.tableName }; //DbTableInfo dbTableInfo = new() { Name = dto.tableName };
CodeGeneratorTool.Generate(genTableInfo, dto); CodeGeneratorTool.Generate(genTableInfo, dto);
return SUCCESS(dbTableInfo); return SUCCESS(genTableInfo);
} }
/// <summary> /// <summary>

View File

@ -81,7 +81,6 @@ namespace {ApiControllerNamespace}.Controllers
} }
//从 Dto 映射到 实体 //从 Dto 映射到 实体
var addModel = parm.Adapt<{ModelName}>().ToCreate(); var addModel = parm.Adapt<{ModelName}>().ToCreate();
//addModel.CreateID = User.Identity.Name;
return SUCCESS(_{ModelName}Service.Add(addModel)); return SUCCESS(_{ModelName}Service.Add(addModel));
} }
@ -100,12 +99,11 @@ namespace {ApiControllerNamespace}.Controllers
throw new CustomException("请求实体不能为空"); throw new CustomException("请求实体不能为空");
} }
//从 Dto 映射到 实体 //从 Dto 映射到 实体
var updateModel = parm.Adapt<{ModelName}>().ToCreate(); var updateModel = parm.Adapt<{ModelName}>().ToUpdate();
//updateModel.CreateID = User.Identity.Name;
var response = _{ModelName}Service.Update(w => w.{PrimaryKey} == updateModel.{PrimaryKey}, it => new {ModelName}() var response = _{ModelName}Service.Update(w => w.{PrimaryKey} == updateModel.{PrimaryKey}, it => new {ModelName}()
{ {
//TODO 字段映射 //Update 字段映射
{UpdateColumn} {UpdateColumn}
}); });

View File

@ -91,7 +91,10 @@ namespace ZR.CodeGenerator
string vueViewFromContent = ""; string vueViewFromContent = "";
string labelDisabled = dbFieldInfo.IsPk ? ":disabled=\"true\"" : ""; string labelDisabled = dbFieldInfo.IsPk ? ":disabled=\"true\"" : "";
string placeHolder = dbFieldInfo.IsIncrement ? "" : $"请输入{labelName}"; string placeHolder = dbFieldInfo.IsIncrement ? "" : $"请输入{labelName}";
if (!dbFieldInfo.IsInsert || !dbFieldInfo.IsEdit)
{
return vueViewFromContent;
}
if (dbFieldInfo.HtmlType == GenConstants.HTML_DATETIME) if (dbFieldInfo.HtmlType == GenConstants.HTML_DATETIME)
{ {
//时间 //时间
@ -143,12 +146,11 @@ namespace ZR.CodeGenerator
string label = CodeGeneratorTool.GetLabelName(dbFieldInfo.ColumnComment, columnName); string label = CodeGeneratorTool.GetLabelName(dbFieldInfo.ColumnComment, columnName);
string vueViewListContent = ""; string vueViewListContent = "";
string showToolTip = dbFieldInfo.ColumnType.Contains("varchar") ? ":show-overflow-tooltip=\"true\"" : ""; string showToolTip = dbFieldInfo.ColumnType.Contains("varchar") ? ":show-overflow-tooltip=\"true\"" : "";
if (!dbFieldInfo.IsQuery) if (!dbFieldInfo.IsList)
{ {
return vueViewListContent;
}
if (dbFieldInfo.HtmlType.Equals(GenConstants.HTML_IMAGE_UPLOAD)) }
else if (dbFieldInfo.HtmlType.Equals(GenConstants.HTML_IMAGE_UPLOAD))
{ {
vueViewListContent += $" <el-table-column prop=\"{ columnName}\" label=\"图片\">\n"; vueViewListContent += $" <el-table-column prop=\"{ columnName}\" label=\"图片\">\n";
vueViewListContent += " <template slot-scope=\"scope\">\n"; vueViewListContent += " <template slot-scope=\"scope\">\n";
@ -167,8 +169,7 @@ namespace ZR.CodeGenerator
//} //}
else else
{ {
//table-column vueViewListContent += $" <el-table-column prop=\"{columnName}\" label=\"{label}\" align=\"center\" width=\"100\" {showToolTip} />\n";
vueViewListContent += $" <el-table-column prop=\"{CodeGeneratorTool.FirstLowerCase(columnName)}\" label=\"{label}\" align=\"center\" width=\"100\" {showToolTip} />\n";
} }
return vueViewListContent; return vueViewListContent;
} }

View File

@ -91,17 +91,17 @@ namespace ZR.CodeGenerator
{ {
vueViewEditFromContent += $" {columnName}: undefined,\n"; vueViewEditFromContent += $" {columnName}: undefined,\n";
} }
//vueViewSaveBindContent += string.Format(" '{0}':this.editFrom.{0},\n", columnName);
//主键 //主键
if (dbFieldInfo.IsPk || dbFieldInfo.IsIncrement) if (dbFieldInfo.IsPk || dbFieldInfo.IsIncrement)
{ {
primaryKey = columnName.Substring(0, 1).ToUpper() + columnName[1..]; primaryKey = columnName.Substring(0, 1).ToUpper() + columnName[1..];
keyTypeName = dbFieldInfo.CsharpType; keyTypeName = dbFieldInfo.CsharpType;
} }
else //编辑字段
if (dbFieldInfo.IsEdit && (!dbFieldInfo.IsPk || !dbFieldInfo.IsIncrement))
{ {
var tempColumnName = columnName.Substring(0, 1).ToUpper() + columnName[1..]; updateColumn += $" {dbFieldInfo.CsharpField} = parm.{dbFieldInfo.CsharpField},\n";
updateColumn += $" {tempColumnName} = parm.{tempColumnName},\n";
} }
modelContent += CodeGenerateTemplate.GetModelTemplate(dbFieldInfo); modelContent += CodeGenerateTemplate.GetModelTemplate(dbFieldInfo);

View File

@ -37,22 +37,7 @@ namespace ZR.Model.System.Dto
public string CsharpType { get; set; } public string CsharpType { get; set; }
public string CsharpField { get; set; } public string CsharpField { get; set; }
public bool IsPk { get; set; } public bool IsPk { get; set; }
///// <summary>
///// 是否必填1是
///// </summary>
//public bool IsRequired { get; set; }
//public bool IsIncrement { get; set; }
///// <summary>
///// 是否插入
///// </summary>
public bool IsInsert { get; set; } public bool IsInsert { get; set; }
///// <summary>
///// 是否需要编辑
///// </summary>
public bool IsEdit { get; set; }
///// <summary>
///// isList
///// </summary>
public bool IsList { get; set; } public bool IsList { get; set; }
//public bool IsQuery { get; set; } //public bool IsQuery { get; set; }
///// <summary> ///// <summary>

View File

@ -42,12 +42,12 @@
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span> <span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="tableName" label="表名" sortable="custom" width="380" /> <el-table-column prop="tableName" label="表名" sortable="custom" width="180" />
<el-table-column prop="tableComment" label="表描述" /> <el-table-column prop="tableComment" label="表描述" />
<el-table-column prop="className" label="实体" /> <el-table-column prop="className" label="实体" />
<el-table-column prop="createTime" label="创建时间" /> <el-table-column prop="createTime" label="创建时间" />
<el-table-column prop="updateTime" label="更新时间" /> <el-table-column prop="updateTime" label="更新时间" />
<el-table-column label="操作" align="center" width="240"> <el-table-column label="操作" align="center" width="340">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" icon="el-icon-view" @click="handlePreview()">预览</el-button> <el-button type="text" icon="el-icon-view" @click="handlePreview()">预览</el-button>
<el-button type="text" icon="el-icon-edit" @click="handleEditTable(scope.row)">编辑</el-button> <el-button type="text" icon="el-icon-edit" @click="handleEditTable(scope.row)">编辑</el-button>
@ -192,8 +192,8 @@ export default {
// dbName: this.codeform.dbName, // dbName: this.codeform.dbName,
tableId: this.currentSelected.tableId, tableId: this.currentSelected.tableId,
tableName: this.currentSelected.name, tableName: this.currentSelected.name,
baseSpace: this.codeform.baseSpace, // baseSpace: this.codeform.baseSpace,
replaceTableNameStr: this.codeform.replaceTableNameStr, // replaceTableNameStr: this.codeform.replaceTableNameStr,
genFiles: this.checkedCodeGenerateForm, genFiles: this.checkedCodeGenerateForm,
coverd: this.coverd, coverd: this.coverd,
queryColumn: this.checkedQueryColumn, queryColumn: this.checkedQueryColumn,

View File

@ -27,6 +27,47 @@
<param name="data"></param> <param name="data"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="T:ZR.Admin.WebApi.Controllers.UserInfoController">
<summary>
代码自动生成
</summary>
</member>
<member name="F:ZR.Admin.WebApi.Controllers.UserInfoController._UserInfoService">
<summary>
用户信息接口
</summary>
</member>
<member name="M:ZR.Admin.WebApi.Controllers.UserInfoController.QueryUserInfo(ZR.Model.Dto.UserInfoQueryDto)">
<summary>
查询用户信息列表
</summary>
<returns></returns>
</member>
<member name="M:ZR.Admin.WebApi.Controllers.UserInfoController.GetUserInfo(System.Int32)">
<summary>
查询用户信息详情
</summary>
<param name="Luid"></param>
<returns></returns>
</member>
<member name="M:ZR.Admin.WebApi.Controllers.UserInfoController.AddUserInfo(ZR.Model.Dto.UserInfoDto)">
<summary>
添加用户信息
</summary>
<returns></returns>
</member>
<member name="M:ZR.Admin.WebApi.Controllers.UserInfoController.UpdateUserInfo(ZR.Model.Dto.UserInfoDto)">
<summary>
更新用户信息
</summary>
<returns></returns>
</member>
<member name="M:ZR.Admin.WebApi.Controllers.UserInfoController.DeleteUserInfo(System.Int32)">
<summary>
删除用户信息
</summary>
<returns></returns>
</member>
<member name="T:ZR.Admin.WebApi.Controllers.CodeGeneratorController"> <member name="T:ZR.Admin.WebApi.Controllers.CodeGeneratorController">
<summary> <summary>
代码生成 代码生成