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;
@ -38,7 +39,7 @@ import com.ruoyi.gen.util.VelocityUtils;
/**
*
*
*
* @author ruoyi
*/
@Service
@ -54,7 +55,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param id ID
* @return
*/
@ -68,7 +69,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param genTable
* @return
*/
@ -80,7 +81,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param genTable
* @return
*/
@ -92,7 +93,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param tableNames
* @return
*/
@ -104,7 +105,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @return
*/
@Override
@ -115,7 +116,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param genTable
* @return
*/
@ -137,7 +138,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param tableIds ID
* @return
*/
@ -151,7 +152,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param tableList
*/
@Override
@ -186,7 +187,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param tableId
* @return
*/
@ -219,7 +220,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param tableName
* @return
*/
@ -235,7 +236,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param tableName
*/
@Override
@ -277,7 +278,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param tableName
*/
@Override
@ -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,11 +317,32 @@ 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());
}
/**
*
*
*
* @param tableNames
* @return
*/
@ -371,7 +401,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param genTable
*/
@Override
@ -409,7 +439,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param table
*/
public void setPkColumn(GenTable table)
@ -444,7 +474,7 @@ public class GenTableServiceImpl implements IGenTableService
}
/**
*
*
*
* @param table
*/
public void setSubTable(GenTable table)
@ -458,7 +488,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param genTable
*/
public void setTableFromOptions(GenTable genTable)
@ -471,7 +501,7 @@ public class GenTableServiceImpl implements IGenTableService
String treeName = paramsObj.getString(GenConstants.TREE_NAME);
String parentMenuId = paramsObj.getString(GenConstants.PARENT_MENU_ID);
String parentMenuName = paramsObj.getString(GenConstants.PARENT_MENU_NAME);
genTable.setTreeCode(treeCode);
genTable.setTreeParentCode(treeParentCode);
genTable.setTreeName(treeName);
@ -482,7 +512,7 @@ public class GenTableServiceImpl implements IGenTableService
/**
*
*
*
* @param table
* @param template
* @return

@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.gen.mapper.GenTableColumnMapper">
<resultMap type="GenTableColumn" id="GenTableColumnResult">
<id property="columnId" column="column_id" />
<result property="tableId" column="table_id" />
@ -28,23 +28,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectGenTableColumnVo">
select column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time from gen_table_column
</sql>
<select id="selectGenTableColumnListByTableId" parameterType="GenTableColumn" resultMap="GenTableColumnResult">
<include refid="selectGenTableColumnVo"/>
where table_id = #{tableId}
order by sort
</select>
<select id="selectDbTableColumnsByName" parameterType="String" resultMap="GenTableColumnResult">
select column_name, (case when (is_nullable = 'no' <![CDATA[ && ]]> column_key != 'PRI') then '1' else null end) as is_required, (case when column_key = 'PRI' then '1' else '0' end) as is_pk, ordinal_position as sort, column_comment, (case when extra = 'auto_increment' then '1' else '0' end) as is_increment, column_type
from information_schema.columns where table_schema = (select database()) and table_name = (#{tableName})
order by ordinal_position
</select>
<insert id="insertGenTableColumn" parameterType="GenTableColumn" useGeneratedKeys="true" keyProperty="columnId">
insert into gen_table_column (
<if test="tableId != null and tableId != ''">table_id,</if>
@ -88,40 +88,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sysdate()
)
</insert>
<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}
</update>
<delete id="deleteGenTableColumnByIds" parameterType="Long">
delete from gen_table_column where table_id in
delete from gen_table_column where table_id in
<foreach collection="array" item="tableId" open="(" separator="," close=")">
#{tableId}
</foreach>
</delete>
<delete id="deleteGenTableColumns">
delete from gen_table_column where column_id in
delete from gen_table_column where column_id in
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.columnId}
</foreach>
</delete>
</mapper>
</mapper>

Loading…
Cancel
Save