优化代码生成Controller 查询条件拼接

This commit is contained in:
不做码农 2021-12-10 22:05:25 +08:00
parent 0f3424de55
commit 1fa9d2aad5
6 changed files with 56 additions and 43 deletions

View File

@ -51,7 +51,18 @@ namespace ${options.ApiControllerNamespace}.Controllers
var predicate = Expressionable.Create<${replaceDto.ModelTypeName}>(); var predicate = Expressionable.Create<${replaceDto.ModelTypeName}>();
//搜索条件查询语法参考Sqlsugar //搜索条件查询语法参考Sqlsugar
${QueryCondition} $foreach(column in genTable.Columns)
$if(column.IsQuery)
$if(column.CsharpType == "string")
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.${column.CsharpField}), ${codeTool.QueryExp(column.CsharpField, column.QueryType)};
$elseif(column.CsharpType == "DateTime")
predicate = predicate.AndIF(parm.Begin${column.CsharpField} != null, it => it.${column.CsharpField} >= parm.Begin${column.CsharpField});
predicate = predicate.AndIF(parm.End${column.CsharpField} != null, it => it.${column.CsharpField} <= parm.End${column.CsharpField});
$elseif(column.CsharpType == "int" || column.CsharpType == "long")
predicate = predicate.AndIF(parm.${column.CsharpField} != null, ${codeTool.QueryExp(column.CsharpField, column.QueryType)};
$end
$end
$end
$if(genTable.SortField != "" && genTable.SortField != null) $if(genTable.SortField != "" && genTable.SortField != null)
var response = _${replaceDto.ModelTypeName}Service.GetPages(predicate.ToExpression(), parm, x => x.${genTable.SortField}, "${genTable.SortType}"); var response = _${replaceDto.ModelTypeName}Service.GetPages(predicate.ToExpression(), parm, x => x.${genTable.SortField}, "${genTable.SortType}");
$else $else

View File

@ -14,7 +14,7 @@ $foreach(item in genTable.Columns)
$if((item.IsInsert || item.IsEdit || item.IsPk || item.IsIncrement)) $if((item.IsInsert || item.IsEdit || item.IsPk || item.IsIncrement))
public $item.CsharpType$item.RequiredStr $item.CsharpField { get; set; } public $item.CsharpType$item.RequiredStr $item.CsharpField { get; set; }
$end $end
${end} $end
} }
/// <summary> /// <summary>
@ -27,8 +27,8 @@ $if(item.IsQuery && item.htmlType == "datetime")
public DateTime? Begin$item.CsharpField { get; set; } public DateTime? Begin$item.CsharpField { get; set; }
public DateTime? End$item.CsharpField { get; set; } public DateTime? End$item.CsharpField { get; set; }
$elseif(item.IsQuery) $elseif(item.IsQuery)
public $item.CsharpType $item.CsharpField { get; set; } public $item.CsharpType$if(item.CsharpType != "string")?$end $item.CsharpField { get; set; }
$end
$end $end
${end}
} }
} }

View File

@ -8,7 +8,6 @@ ${vueQueryFormHtml}
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-row> </el-row>
</el-form> </el-form>
<!-- 工具区域 --> <!-- 工具区域 -->
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
@ -93,7 +92,12 @@ export default {
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20,
$foreach(item in genTable.Columns)
$if(item.IsQuery == true)
${item.columnName}: undefined,
$end
$end
}, },
// 弹出层标题 // 弹出层标题
title: "", title: "",
@ -101,8 +105,6 @@ export default {
open: false, open: false,
// 表单参数 // 表单参数
form: {}, form: {},
// 时间范围数组
timeRange: [],
columns: [ columns: [
$set(index = 0) $set(index = 0)
$foreach(column in genTable.Columns) $foreach(column in genTable.Columns)

View File

@ -11,34 +11,34 @@ namespace ZR.CodeGenerator
/// </summary> /// </summary>
public class CodeGenerateTemplate public class CodeGenerateTemplate
{ {
/// <summary> ///// <summary>
/// 查询Dto属性 ///// 查询Dto属性
/// </summary> ///// </summary>
/// <param name="tbColumn"></param> ///// <param name="tbColumn"></param>
/// <param name="replaceDto">替换字符对象</param> ///// <param name="replaceDto">替换字符对象</param>
/// <returns></returns> ///// <returns></returns>
public static void GetQueryDtoProperty(GenTableColumn tbColumn, ReplaceDto replaceDto) //public static void GetQueryDtoProperty(GenTableColumn tbColumn, ReplaceDto replaceDto)
{ //{
if (tbColumn.IsQuery) // if (tbColumn.IsQuery)
{ // {
//字符串类型表达式 // //字符串类型表达式
if (tbColumn.CsharpType == GenConstants.TYPE_STRING) // if (tbColumn.CsharpType == GenConstants.TYPE_STRING)
{ // {
replaceDto.QueryCondition += $" predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.{tbColumn.CsharpField}), {QueryExp(tbColumn.CsharpField, tbColumn.QueryType)};\n"; // replaceDto.QueryCondition += $" predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.{tbColumn.CsharpField}), {QueryExp(tbColumn.CsharpField, tbColumn.QueryType)};\n";
} // }
//int类型表达式 // //int类型表达式
if (CodeGeneratorTool.IsNumber(tbColumn.CsharpType)) // if (CodeGeneratorTool.IsNumber(tbColumn.CsharpType))
{ // {
replaceDto.QueryCondition += $" predicate = predicate.AndIF(parm.{tbColumn.CsharpField} > 0, {QueryExp(tbColumn.CsharpField, tbColumn.QueryType)};\n"; // replaceDto.QueryCondition += $" predicate = predicate.AndIF(parm.{tbColumn.CsharpField} > 0, {QueryExp(tbColumn.CsharpField, tbColumn.QueryType)};\n";
} // }
//时间类型 // //时间类型
if (tbColumn.CsharpType == GenConstants.TYPE_DATE) // if (tbColumn.CsharpType == GenConstants.TYPE_DATE)
{ // {
replaceDto.QueryCondition += $" predicate = predicate.AndIF(parm.Begin{tbColumn.CsharpField} != null, it => it.{tbColumn.CsharpField} >= parm.Begin{tbColumn.CsharpField});\n"; // replaceDto.QueryCondition += $" predicate = predicate.AndIF(parm.Begin{tbColumn.CsharpField} != null, it => it.{tbColumn.CsharpField} >= parm.Begin{tbColumn.CsharpField});\n";
replaceDto.QueryCondition += $" predicate = predicate.AndIF(parm.End{tbColumn.CsharpField} != null, it => it.{tbColumn.CsharpField} <= parm.End{tbColumn.CsharpField});\n"; // replaceDto.QueryCondition += $" predicate = predicate.AndIF(parm.End{tbColumn.CsharpField} != null, it => it.{tbColumn.CsharpField} <= parm.End{tbColumn.CsharpField});\n";
} // }
} // }
} //}
#region vue #region vue
@ -187,7 +187,7 @@ namespace ZR.CodeGenerator
else if ((dbFieldInfo.HtmlType == GenConstants.HTML_SELECT || dbFieldInfo.HtmlType == GenConstants.HTML_RADIO) && !string.IsNullOrEmpty(dbFieldInfo.DictType)) else if ((dbFieldInfo.HtmlType == GenConstants.HTML_SELECT || dbFieldInfo.HtmlType == GenConstants.HTML_RADIO) && !string.IsNullOrEmpty(dbFieldInfo.DictType))
{ {
//string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue"; //string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue";
sb.AppendLine($" <el-form-item label=\"{ labelName}\" :label-width=\"labelWidth\" prop=\"{dbFieldInfo.ColumnName}\">"); sb.AppendLine($" <el-form-item label=\"{ labelName}\" prop=\"{dbFieldInfo.ColumnName}\">");
sb.AppendLine($" <el-select v-model=\"queryParams.{dbFieldInfo.ColumnName}\" placeholder=\"请选择{dbFieldInfo.ColumnComment}\" size=\"small\" >"); sb.AppendLine($" <el-select v-model=\"queryParams.{dbFieldInfo.ColumnName}\" placeholder=\"请选择{dbFieldInfo.ColumnComment}\" size=\"small\" >");
sb.AppendLine($" <el-option v-for=\"item in {dbFieldInfo.ColumnName}Options\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"item.dictValue\"></el-option>"); sb.AppendLine($" <el-option v-for=\"item in {dbFieldInfo.ColumnName}Options\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"item.dictValue\"></el-option>");
sb.AppendLine(" </el-select>"); sb.AppendLine(" </el-select>");
@ -196,7 +196,7 @@ namespace ZR.CodeGenerator
else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT) else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT)
{ {
//string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue"; //string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue";
sb.AppendLine($" <el-form-item label=\"{ labelName}\" :label-width=\"labelWidth\" prop=\"{dbFieldInfo.ColumnName}\">"); sb.AppendLine($" <el-form-item label=\"{ labelName}\" prop=\"{dbFieldInfo.ColumnName}\">");
sb.AppendLine($" <el-select v-model=\"queryParams.{dbFieldInfo.ColumnName}\" placeholder=\"请选择{dbFieldInfo.ColumnComment}\" size=\"small\">"); sb.AppendLine($" <el-select v-model=\"queryParams.{dbFieldInfo.ColumnName}\" placeholder=\"请选择{dbFieldInfo.ColumnComment}\" size=\"small\">");
sb.AppendLine($" <el-option v-for=\"item in {dbFieldInfo.ColumnName}Options\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"item.dictValue\"></el-option>"); sb.AppendLine($" <el-option v-for=\"item in {dbFieldInfo.ColumnName}Options\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"item.dictValue\"></el-option>");
sb.AppendLine(" </el-select>"); sb.AppendLine(" </el-select>");
@ -205,7 +205,7 @@ namespace ZR.CodeGenerator
else else
{ {
string inputNumTxt = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? ".number" : ""; string inputNumTxt = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? ".number" : "";
sb.AppendLine($" <el-form-item label=\"{ labelName}\" :label-width=\"labelWidth\">"); sb.AppendLine($" <el-form-item label=\"{ labelName}\" prop=\"{dbFieldInfo.ColumnName}\">");
sb.AppendLine($" <el-input v-model{inputNumTxt}=\"queryParams.{dbFieldInfo.ColumnName}\" placeholder=\"请输入{dbFieldInfo.ColumnComment}\" size=\"small\"/>"); sb.AppendLine($" <el-input v-model{inputNumTxt}=\"queryParams.{dbFieldInfo.ColumnName}\" placeholder=\"请输入{dbFieldInfo.ColumnComment}\" size=\"small\"/>");
sb.AppendLine(" </el-form-item>"); sb.AppendLine(" </el-form-item>");
} }

View File

@ -69,7 +69,7 @@ namespace ZR.CodeGenerator
{ {
replaceDto.UploadFile = 1; replaceDto.UploadFile = 1;
} }
CodeGenerateTemplate.GetQueryDtoProperty(dbFieldInfo, replaceDto); //CodeGenerateTemplate.GetQueryDtoProperty(dbFieldInfo, replaceDto);
replaceDto.VueViewFormHtml += CodeGenerateTemplate.TplVueFormContent(dbFieldInfo); replaceDto.VueViewFormHtml += CodeGenerateTemplate.TplVueFormContent(dbFieldInfo);
replaceDto.VueViewListHtml += CodeGenerateTemplate.TplTableColumn(dbFieldInfo, dto.GenTable); replaceDto.VueViewListHtml += CodeGenerateTemplate.TplTableColumn(dbFieldInfo, dto.GenTable);
@ -432,7 +432,8 @@ namespace ZR.CodeGenerator
options.Data.Set("options", dto.GenOptions); options.Data.Set("options", dto.GenOptions);
options.Data.Set("genTable", dto.GenTable); options.Data.Set("genTable", dto.GenTable);
options.Data.Set("btns", dto.CheckedBtn); options.Data.Set("btns", dto.CheckedBtn);
//options.Data.Set("codeTool", new CodeGeneratorTool()); options.Data.Set("tool", new CodeGeneratorTool());
options.Data.Set("codeTool", new CodeGenerateTemplate());
options.EnableCache = true; options.EnableCache = true;
//...其它数据 //...其它数据
}); });

View File

@ -66,8 +66,7 @@ export function addDateRange(params, dateRange) {
} }
export function addDateRange2(dateRange, index) { export function addDateRange2(dateRange, index) {
console.log(dateRange); var time = undefined;
var time = "";
if (null != dateRange && '' != dateRange) { if (null != dateRange && '' != dateRange) {
if (dateRange.length <= 2) { if (dateRange.length <= 2) {
time = dateRange[index]; time = dateRange[index];