代码生成器进一步优化,可以引入字段

This commit is contained in:
dftre 2025-02-22 17:17:29 +08:00
parent 7f89288b19
commit ff16be4064
11 changed files with 171 additions and 46 deletions

View File

@ -17,7 +17,7 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>17</java.version> <java.version>17</java.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version> <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
<spring-boot.version>3.4.2</spring-boot.version> <spring-boot.version>3.4.3</spring-boot.version>
<druid.version>1.2.24</druid.version> <druid.version>1.2.24</druid.version>
<jta.version>1.1</jta.version> <jta.version>1.1</jta.version>
<bitwalker.version>1.21</bitwalker.version> <bitwalker.version>1.21</bitwalker.version>

View File

@ -108,6 +108,7 @@ public class GenTable extends BaseEntity {
private String parentMenuName; private String parentMenuName;
/** 是否含有关联字段 */ /** 是否含有关联字段 */
@Deprecated
private String haveSubColumn; private String haveSubColumn;
public boolean isSub() { public boolean isSub() {

View File

@ -75,19 +75,24 @@ public class GenTableColumn extends BaseEntity {
private Integer sort; private Integer sort;
/** 关联表名称 */ /** 关联表名称 */
@Deprecated
private String subColumnTableName; private String subColumnTableName;
/** 关联字段名称 */ /** 关联字段名称 */
@Deprecated
private String subColumnFkName; private String subColumnFkName;
/** 映射字段名称 */ /** 映射字段名称 */
@Deprecated
private String subColumnName; private String subColumnName;
/** 映射字段Java字段名 */ /** 映射字段Java字段名 */
@Deprecated
private String subColumnJavaField; private String subColumnJavaField;
/** 映射字段Java类型 */ /** 映射字段Java类型 */
@Deprecated
private String subColumnJavaType; private String subColumnJavaType;
public boolean isPk() { public boolean isPk() {

View File

@ -1,7 +1,10 @@
package com.ruoyi.generator.domain.vo; package com.ruoyi.generator.domain.vo;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.generator.domain.GenJoinTable; import com.ruoyi.generator.domain.GenJoinTable;
@ -24,16 +27,83 @@ import lombok.Setter;
public class GenTableVo extends BaseEntity { public class GenTableVo extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 业务表 */
private GenTable table; private GenTable table;
/** 业务表的列 */
@Valid
private List<GenTableColumn> columns; private List<GenTableColumn> columns;
/** 关联信息 */
@Valid
private List<GenJoinTable> joinTablesMate; private List<GenJoinTable> joinTablesMate;
/** 参与关联的表 */
@Valid @Valid
private Collection<GenTable> joinTables; private Collection<GenTable> joinTables;
/** 参与关联的列 */
@Valid @Valid
private List<GenTableColumn> joinColumns; private List<GenTableColumn> joinColumns;
public List<GenTable> getAllGenTables() {
List<GenTable> allGenTables = new ArrayList<>();
allGenTables.add(table);
allGenTables.addAll(joinTables);
return allGenTables;
}
public List<GenTableColumn> getAllGenTableColumns() {
List<GenTableColumn> allGenTableColumns = new ArrayList<>();
if (columns != null) {
allGenTableColumns.addAll(columns);
}
if (joinColumns != null) {
allGenTableColumns.addAll(joinColumns);
}
return allGenTableColumns;
}
public Map<Long, String> getTableNameMap() {
Map<Long, String> tableMap = new HashMap<>();
if (table != null) {
tableMap.put(table.getTableId(), table.getTableName());
}
if (joinTables != null) {
for (GenTable genTable : joinTables) {
if (genTable != null) {
tableMap.put(genTable.getTableId(), genTable.getTableName());
}
}
}
return tableMap;
}
public Map<Long, String> getTableAliasMap() {
Map<Long, String> tableMap = new HashMap<>();
if (table != null) {
tableMap.put(table.getTableId(), table.getTableAlias());
}
if (joinTablesMate != null) {
for (GenJoinTable genTable : joinTablesMate) {
if (genTable != null) {
tableMap.put(genTable.getLeftTableId(), genTable.getLeftTableAlias());
tableMap.put(genTable.getRightTableId(), genTable.getRightTableAlias());
}
}
}
return tableMap;
}
public Map<Long, String> getColumnNameMap() {
Map<Long, String> columnMap = new HashMap<>();
List<GenTable> genTables = getAllGenTables();
for(GenTable genTable : genTables){
for(GenTableColumn genTableColumn : genTable.getColumns()){
columnMap.put(genTableColumn.getColumnId(), genTableColumn.getColumnName());
}
}
return columnMap;
}
} }

View File

@ -1,5 +1,6 @@
package com.ruoyi.generator.service; package com.ruoyi.generator.service;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -10,11 +11,13 @@ import org.springframework.stereotype.Service;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.generator.constant.GenConstants; import com.ruoyi.generator.constant.GenConstants;
import com.ruoyi.generator.domain.GenJoinTable; import com.ruoyi.generator.domain.GenJoinTable;
import com.ruoyi.generator.domain.GenTable; import com.ruoyi.generator.domain.GenTable;
import com.ruoyi.generator.domain.GenTableColumn;
import com.ruoyi.generator.domain.vo.GenTableVo; import com.ruoyi.generator.domain.vo.GenTableVo;
import com.ruoyi.generator.mapper.GenJoinTableMapper; import com.ruoyi.generator.mapper.GenJoinTableMapper;
import com.ruoyi.generator.mapper.GenTableMapper; import com.ruoyi.generator.mapper.GenTableMapper;
@ -77,10 +80,13 @@ public class GenJoinTableServiceImpl implements IGenJoinTableService {
GenTableVo genTableVo = new GenTableVo(); GenTableVo genTableVo = new GenTableVo();
genTableVo.setTable(table); genTableVo.setTable(table);
genTableVo.setColumns(table.getColumns()); genTableVo.setColumns(table.getColumns());
GenJoinTable genJoinTable = new GenJoinTable(); GenJoinTable genJoinTable = new GenJoinTable();
genJoinTable.setTableId(table.getTableId()); genJoinTable.setTableId(table.getTableId());
List<GenJoinTable> selectGenJoinTableList = this.selectGenJoinTableList(genJoinTable); List<GenJoinTable> selectGenJoinTableList = this.selectGenJoinTableList(genJoinTable);
genTableVo.setJoinTablesMate(selectGenJoinTableList); genTableVo.setJoinTablesMate(selectGenJoinTableList);
List<GenTableColumn> joinColumns = new ArrayList<GenTableColumn>();
Map<Long, GenTable> joinTableMap = new HashMap<Long, GenTable>(); Map<Long, GenTable> joinTableMap = new HashMap<Long, GenTable>();
joinTableMap.put(table.getTableId(), table); joinTableMap.put(table.getTableId(), table);
selectGenJoinTableList.forEach(i -> { selectGenJoinTableList.forEach(i -> {
@ -90,7 +96,17 @@ public class GenJoinTableServiceImpl implements IGenJoinTableService {
if (Objects.isNull(joinTableMap.get(i.getRightTableId()))) { if (Objects.isNull(joinTableMap.get(i.getRightTableId()))) {
joinTableMap.put(i.getRightTableId(), this.selectGenTableById(i.getRightTableId())); joinTableMap.put(i.getRightTableId(), this.selectGenTableById(i.getRightTableId()));
} }
GenTable newTable = joinTableMap.get(i.getNewTableId());
if(Objects.isNull(newTable)) throw new ServiceException("关联表不存在");
List<String> joinColumnNames = i.getJoinColumns();
if(Objects.isNull(joinColumnNames)) return;
newTable.getColumns().forEach(j -> {
if (joinColumnNames.contains(j.getColumnName())) {
joinColumns.add(j);
}
}); });
});
genTableVo.setJoinColumns(joinColumns);
genTableVo.setJoinTables(joinTableMap.values()); genTableVo.setJoinTables(joinTableMap.values());
return genTableVo; return genTableVo;
} }

View File

@ -64,6 +64,12 @@ public class VelocityUtils
velocityContext.put("permissionPrefix", getPermissionPrefix(moduleName, businessName)); velocityContext.put("permissionPrefix", getPermissionPrefix(moduleName, businessName));
velocityContext.put("columns", genTable.getColumns()); velocityContext.put("columns", genTable.getColumns());
velocityContext.put("table", genTable); velocityContext.put("table", genTable);
velocityContext.put("tableNameMap", genTableVo.getTableNameMap());
velocityContext.put("tableAliasMap", genTableVo.getTableAliasMap());
velocityContext.put("columnNameMap", genTableVo.getColumnNameMap());
velocityContext.put("allColumns", genTableVo.getAllGenTableColumns());
velocityContext.put("joinColunms", genTableVo.getJoinColumns());
velocityContext.put("joinTablesMate", genTableVo.getJoinTablesMate());
velocityContext.put("dicts", getDicts(genTable)); velocityContext.put("dicts", getDicts(genTable));
setMenuVelocityContext(velocityContext, genTable); setMenuVelocityContext(velocityContext, genTable);
if (GenConstants.TPL_TREE.equals(tplCategory)) if (GenConstants.TPL_TREE.equals(tplCategory))

View File

@ -29,7 +29,7 @@ public class ${ClassName} extends ${Entity}
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
#foreach ($column in $columns) #foreach ($column in $allColumns)
#if(!$table.isSuperColumn($column.javaField)) #if(!$table.isSuperColumn($column.javaField))
/** $column.columnComment */ /** $column.columnComment */
@ -69,7 +69,7 @@ public class ${ClassName} extends ${Entity}
private List<${subClassName}> ${subclassName}List; private List<${subClassName}> ${subclassName}List;
#end #end
#foreach ($column in $columns) #foreach ($column in $allColumns)
#if(!$table.isSuperColumn($column.javaField)) #if(!$table.isSuperColumn($column.javaField))
#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
#set($AttrName=$column.javaField) #set($AttrName=$column.javaField)
@ -121,7 +121,7 @@ public class ${ClassName} extends ${Entity}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
#foreach ($column in $columns) #foreach ($column in $allColumns)
#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
#set($AttrName=$column.javaField) #set($AttrName=$column.javaField)
#else #else

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
#foreach($column in $columns) #foreach($column in $allColumns)
#if($column.query) #if($column.query)
#set($dictType=$column.dictType) #set($dictType=$column.dictType)
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
@ -155,7 +155,7 @@
<el-table v-loading="loading" :data="${businessName}List" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="${businessName}List" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
#foreach($column in $columns) #foreach($column in $allColumns)
#set($javaField=$column.javaField) #set($javaField=$column.javaField)
#set($parentheseIndex=$column.columnComment.indexOf("")) #set($parentheseIndex=$column.columnComment.indexOf(""))
#if($parentheseIndex != -1) #if($parentheseIndex != -1)
@ -469,9 +469,9 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
#foreach ($column in $columns) #foreach ($column in $allColumns)
#if($column.query) #if($column.query)
$column.javaField: null#if($foreach.count != $columns.size()),#end $column.javaField: null#if($foreach.count != $allColumns.size()),#end
#end #end
#end #end
}, },
@ -502,13 +502,13 @@ export default {
/** 查询${functionName}列表 */ /** 查询${functionName}列表 */
getList() { getList() {
this.loading = true; this.loading = true;
#foreach ($column in $columns) #foreach ($column in $allColumns)
#if(($column.htmlType == "datetime" ||$column.htmlType == "date" || $column.htmlType == "time" ) && $column.queryType == "BETWEEN") #if(($column.htmlType == "datetime" ||$column.htmlType == "date" || $column.htmlType == "time" ) && $column.queryType == "BETWEEN")
this.queryParams.params = {}; this.queryParams.params = {};
#break #break
#end #end
#end #end
#foreach ($column in $columns) #foreach ($column in $allColumns)
#if(($column.htmlType == "datetime" || $column.htmlType == "date" || $column.htmlType == "time") && $column.queryType == "BETWEEN") #if(($column.htmlType == "datetime" || $column.htmlType == "date" || $column.htmlType == "time") && $column.queryType == "BETWEEN")
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
if (null != this.daterange${AttrName} && '' != this.daterange${AttrName}) { if (null != this.daterange${AttrName} && '' != this.daterange${AttrName}) {

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
#foreach($column in $columns) #foreach($column in $allColumns)
#if($column.query) #if($column.query)
#set($dictType=$column.dictType) #set($dictType=$column.dictType)
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
@ -110,7 +110,7 @@
<el-table v-loading="loading" :data="${businessName}List" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="${businessName}List" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
#foreach($column in $columns) #foreach($column in $allColumns)
#if($column.subColumnTableName && $table.haveSubColumn == '1') #if($column.subColumnTableName && $table.haveSubColumn == '1')
#set($javaField=$column.subColumnJavaField) #set($javaField=$column.subColumnJavaField)
#else #else
@ -395,7 +395,7 @@ const single = ref(true);
const multiple = ref(true); const multiple = ref(true);
const total = ref(0); const total = ref(0);
const title = ref(""); const title = ref("");
#foreach ($column in $columns) #foreach ($column in $allColumns)
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
const daterange${AttrName} = ref([]); const daterange${AttrName} = ref([]);
@ -407,9 +407,9 @@ const data = reactive({
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
#foreach ($column in $columns) #foreach ($column in $allColumns)
#if($column.query) #if($column.query)
$column.javaField: null#if($foreach.count != $columns.size()),#end $column.javaField: null#if($foreach.count != $allColumns.size()),#end
#end #end
#end #end
}, },
@ -435,13 +435,13 @@ const { queryParams, form, rules } = toRefs(data);
/** 查询${functionName}列表 */ /** 查询${functionName}列表 */
function getList() { function getList() {
loading.value = true; loading.value = true;
#foreach ($column in $columns) #foreach ($column in $allColumns)
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
queryParams.value.params = {}; queryParams.value.params = {};
#break #break
#end #end
#end #end
#foreach ($column in $columns) #foreach ($column in $allColumns)
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
if (null != daterange${AttrName} && '' != daterange${AttrName}) { if (null != daterange${AttrName} && '' != daterange${AttrName}) {
@ -488,7 +488,7 @@ function handleQuery() {
/** 重置按钮操作 */ /** 重置按钮操作 */
function resetQuery() { function resetQuery() {
#foreach ($column in $columns) #foreach ($column in $allColumns)
#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
daterange${AttrName}.value = []; daterange${AttrName}.value = [];

View File

@ -7,6 +7,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="${ClassName}" id="${ClassName}Result"> <resultMap type="${ClassName}" id="${ClassName}Result">
#foreach ($column in $columns) #foreach ($column in $columns)
<result property="${column.javaField}" column="${column.columnName}" /> <result property="${column.javaField}" column="${column.columnName}" />
#end
#if($joinColunms)
#foreach ($column in $joinColunms)
<result property="${column.javaField}" column="${column.columnName}" />
#end
#end #end
</resultMap> </resultMap>
#if($table.sub) #if($table.sub)
@ -23,15 +28,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#end #end
<sql id="select${ClassName}Vo"> <sql id="select${ClassName}Vo">
#if($table.haveSubColumn=="1") select
select#foreach($column in $columns) #if($column.subColumnTableName)${column.subColumnTableName}.${column.subColumnName},#end${businessName}.${column.columnName}#if($foreach.count != $columns.size()),#end#end from ${tableName} as ${businessName} #foreach ($column in $allColumns)
#foreach($column in $columns) $tableAliasMap[$column.tableId].$columnNameMap[$column.columnId]#if($foreach.hasNext),#end
#if($column.subColumnTableName)
left join ${column.subColumnTableName} on ${column.subColumnTableName}.${column.subColumnFkName}=${businessName}.${column.columnName}
#end #end
from $tableNameMap[$table.tableId] $tableAliasMap[$table.tableId]
#if($joinTablesMate)
#foreach($joinTable in $joinTablesMate)
${joinTable.joinType} join $tableNameMap[$joinTable.rightTableId] ${joinTable.rightTableAlias} on ${joinTable.rightTableAlias}.$columnNameMap[$joinTable.rightTableFk] = ${joinTable.leftTableAlias}.$columnNameMap[$joinTable.leftTableFk]
#end #end
#else
select#foreach($column in $columns) $column.columnName#if($foreach.count != $columns.size()),#end#end from ${tableName}
#end #end
</sql> </sql>
@ -40,33 +45,55 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where> <where>
#foreach($column in $columns) #foreach($column in $columns)
#set($queryType=$column.queryType) #set($queryType=$column.queryType)
#if($column.subColumnTableName)
#set($javaField=$column.subColumnJavaField)
#set($javaType=$column.subColumnJavaType)
#set($columnName=$column.subColumnName)
#else
#set($javaField=$column.javaField) #set($javaField=$column.javaField)
#set($javaType=$column.javaType) #set($javaType=$column.javaType)
#set($columnName=$column.columnName) #set($columnName=$columnNameMap[$column.columnId])
#end
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
#if($column.query) #if($column.query)
#if($column.queryType == "EQ") #if($column.queryType == "EQ")
<if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName = #{$javaField}</if> <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $tableAliasMap[$table.tableId].$columnName = #{$javaField}</if>
#elseif($queryType == "NE") #elseif($queryType == "NE")
<if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName != #{$javaField}</if> <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $tableAliasMap[$table.tableId].$columnName != #{$javaField}</if>
#elseif($queryType == "GT") #elseif($queryType == "GT")
<if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &gt; #{$javaField}</if> <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $tableAliasMap[$table.tableId].$columnName &gt; #{$javaField}</if>
#elseif($queryType == "GTE") #elseif($queryType == "GTE")
<if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &gt;= #{$javaField}</if> <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $tableAliasMap[$table.tableId].$columnName &gt;= #{$javaField}</if>
#elseif($queryType == "LT") #elseif($queryType == "LT")
<if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &lt; #{$javaField}</if> <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $tableAliasMap[$table.tableId].$columnName &lt; #{$javaField}</if>
#elseif($queryType == "LTE") #elseif($queryType == "LTE")
<if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &lt;= #{$javaField}</if> <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $tableAliasMap[$table.tableId].$columnName &lt;= #{$javaField}</if>
#elseif($queryType == "LIKE") #elseif($queryType == "LIKE")
<if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName like concat('%', #{$javaField}, '%')</if> <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $tableAliasMap[$table.tableId].$columnName like concat('%', #{$javaField}, '%')</if>
#elseif($queryType == "BETWEEN") #elseif($queryType == "BETWEEN")
<if test="params.begin$AttrName != null and params.begin$AttrName != '' and params.end$AttrName != null and params.end$AttrName != ''"> and $columnName between #{params.begin$AttrName} and #{params.end$AttrName}</if> <if test="params.begin$AttrName != null and params.begin$AttrName != '' and params.end$AttrName != null and params.end$AttrName != ''"> and $tableAliasMap[$table.tableId].$columnName between #{params.begin$AttrName} and #{params.end$AttrName}</if>
#end
#end
#end
#if($joinColunms)
#foreach($column in $joinColunms)
#set($queryType=$column.queryType)
#set($javaField=$column.javaField)
#set($javaType=$column.javaType)
#set($columnName=$columnNameMap[$column.columnId])
#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
#if($column.query)
#if($column.queryType == "EQ")
<if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $tableAliasMap[$column.tableId].$columnName = #{$javaField}</if>
#elseif($queryType == "NE")
<if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $tableAliasMap[$column.tableId].$columnName != #{$javaField}</if>
#elseif($queryType == "GT")
<if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $tableAliasMap[$column.tableId].$columnName &gt; #{$javaField}</if>
#elseif($queryType == "GTE")
<if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $tableAliasMap[$column.tableId].$columnName &gt;= #{$javaField}</if>
#elseif($queryType == "LT")
<if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $tableAliasMap[$column.tableId].$columnName &lt; #{$javaField}</if>
#elseif($queryType == "LTE")
<if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $tableAliasMap[$column.tableId].$columnName &lt;= #{$javaField}</if>
#elseif($queryType == "LIKE")
<if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $tableAliasMap[$column.tableId].$columnName like concat('%', #{$javaField}, '%')</if>
#elseif($queryType == "BETWEEN")
<if test="params.begin$AttrName != null and params.begin$AttrName != '' and params.end$AttrName != null and params.end$AttrName != ''"> and $tableAliasMap[$column.tableId].$columnName between #{params.begin$AttrName} and #{params.end$AttrName}</if>
#end
#end #end
#end #end
#end #end

View File

@ -78,7 +78,7 @@ CREATE TABLE `gen_join_table` (
`left_table_fk` varchar(200) NOT NULL COMMENT '主表别名', `left_table_fk` varchar(200) NOT NULL COMMENT '主表别名',
`right_table_fk` varchar(200) NOT NULL COMMENT '关联表别名', `right_table_fk` varchar(200) NOT NULL COMMENT '关联表别名',
`join_type` varchar(200) NOT NULL COMMENT '关联类型', `join_type` varchar(200) NOT NULL COMMENT '关联类型',
`join_columns` varchar(500) NOT NULL COMMENT '关联字段', `join_columns` varchar(500) DEFAULT '' COMMENT '关联字段',
`order_num` varchar(64) NOT NULL COMMENT '序号', `order_num` varchar(64) NOT NULL COMMENT '序号',
`new_table_id` bigint NOT NULL COMMENT '新表编号', `new_table_id` bigint NOT NULL COMMENT '新表编号',
PRIMARY KEY (`table_id`,`right_table_id`,`left_table_id`) PRIMARY KEY (`table_id`,`right_table_id`,`left_table_id`)