|
|
|
@ -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());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|