Pre Merge pull request !62 from Luozuanshi/master

pull/62/MERGE
Luozuanshi 4 years ago committed by Gitee
commit 17b6644553

@ -7,6 +7,7 @@ import java.io.StringWriter;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@ -286,7 +287,6 @@ public class GenTableServiceImpl implements IGenTableService
{
GenTable table = genTableMapper.selectGenTableByName(tableName);
List<GenTableColumn> tableColumns = table.getColumns();
List<String> tableColumnNames = tableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
List<GenTableColumn> dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName);
if (StringUtils.isEmpty(dbTableColumns))
@ -295,11 +295,20 @@ public class GenTableServiceImpl implements IGenTableService
}
List<String> dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
Map<String, GenTableColumn> tableColumnsMap = tableColumns.stream().collect(Collectors.toMap(GenTableColumn::getColumnName, GenTableColumn->GenTableColumn, (key1,key2)->key2));
dbTableColumns.forEach(column -> {
if (!tableColumnNames.contains(column.getColumnName()))
if (!equalColumInfo(tableColumnsMap,column))
{
GenUtils.initColumnField(column, table);
genTableColumnMapper.insertGenTableColumn(column);
GenTableColumn tableColumn = tableColumnsMap.get(column.getColumnName());
if (tableColumn!=null) {
column.setColumnId(tableColumn.getColumnId());
genTableColumnMapper.updateGenTableColumn(column);
}else {
genTableColumnMapper.insertGenTableColumn(column);
}
}
});
@ -308,6 +317,27 @@ public class GenTableServiceImpl implements IGenTableService
{
genTableColumnMapper.deleteGenTableColumns(delColumns);
}
}
/**
*
* @param tableColumnsMap
* @param column
* @return ture information_schema false information_schema
*/
private boolean equalColumInfo(Map<String, GenTableColumn> tableColumnsMap, GenTableColumn column) {
String columnName = column.getColumnName();
GenTableColumn tableColumns = tableColumnsMap.get(columnName);
if (tableColumns==null) {
return false;
}
return Objects.equals(column.getColumnName(), tableColumns.getColumnName()) &&
Objects.equals(column.getColumnComment(), tableColumns.getColumnComment()) &&
Objects.equals(column.getColumnType(), tableColumns.getColumnType()) &&
Objects.equals(column.getSort(), tableColumns.getSort()) &&
Objects.equals(column.getIsPk(), tableColumns.getIsPk()) &&
Objects.equals(column.getIsIncrement(), tableColumns.getIsIncrement());
}
/**

@ -92,19 +92,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateGenTableColumn" parameterType="GenTableColumn">
update gen_table_column
<set>
column_comment = #{columnComment},
java_type = #{javaType},
java_field = #{javaField},
is_insert = #{isInsert},
is_edit = #{isEdit},
is_list = #{isList},
is_query = #{isQuery},
is_required = #{isRequired},
query_type = #{queryType},
html_type = #{htmlType},
dict_type = #{dictType},
sort = #{sort},
update_by = #{updateBy},
<if test="columnComment != null and columnComment != ''">column_comment = #{columnComment},</if>
<if test="columnType != null and columnType != ''">column_type = #{columnType},</if>
<if test="javaType != null and javaType != ''">java_type = #{javaType},</if>
<if test="javaField != null and javaField != ''">java_field = #{javaField},</if>
<if test="isInsert != ''">is_insert = #{isInsert},</if>
<if test="isEdit != ''">is_edit = #{isEdit},</if>
<if test="isList != ''">is_list = #{isList},</if>
<if test="isQuery != ''">is_query = #{isQuery},</if>
<if test="isRequired != null and isRequired != ''"> is_required = #{isRequired},</if>
<if test="queryType != null and queryType != ''"> query_type = #{queryType},</if>
<if test="htmlType != null and htmlType != ''"> html_type = #{htmlType},</if>
<if test="dictType != null and dictType != ''"> dict_type = #{dictType},</if>
<if test="sort != null and sort != ''"> sort = #{sort},</if>
<if test="updateBy != null and updateBy != ''"> update_by = #{updateBy},</if>
update_time = sysdate()
</set>
where column_id = #{columnId}

Loading…
Cancel
Save