RuoYi
2020-09-18 2404866396fb79b7518a4be618ab068450345fca
代码生成支持同步数据库
已修改6个文件
73 ■■■■■ 文件已修改
src/main/java/com/ruoyi/project/tool/gen/controller/GenController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/tool/gen/mapper/GenTableColumnMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/tool/gen/service/GenTableServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/tool/gen/service/IGenTableService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mybatis/tool/GenTableColumnMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mybatis/tool/GenTableMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/tool/gen/controller/GenController.java
@@ -165,13 +165,25 @@
    @PreAuthorize("@ss.hasPermi('tool:gen:code')")
    @Log(title = "代码生成", businessType = BusinessType.GENCODE)
    @GetMapping("/genCode/{tableName}")
    public AjaxResult genCode(HttpServletResponse response, @PathVariable("tableName") String tableName)
    public AjaxResult genCode(@PathVariable("tableName") String tableName)
    {
        genTableService.generatorCode(tableName);
        return AjaxResult.success();
    }
    /**
     * 同步数据库
     */
    @PreAuthorize("@ss.hasPermi('tool:gen:edit')")
    @Log(title = "代码生成", businessType = BusinessType.UPDATE)
    @GetMapping("/synchDb/{tableName}")
    public AjaxResult synchDb(@PathVariable("tableName") String tableName)
    {
        genTableService.synchDb(tableName);
        return AjaxResult.success();
    }
    /**
     * 批量生成代码
     */
    @PreAuthorize("@ss.hasPermi('tool:gen:code')")
src/main/java/com/ruoyi/project/tool/gen/mapper/GenTableColumnMapper.java
@@ -17,7 +17,7 @@
     * @return 列信息
     */
    public List<GenTableColumn> selectDbTableColumnsByName(String tableName);
    /**
     * 查询业务字段列表
     * 
@@ -43,6 +43,14 @@
    public int updateGenTableColumn(GenTableColumn genTableColumn);
    /**
     * 删除业务字段
     *
     * @param genTableColumns 列数据
     * @return 结果
     */
    public int deleteGenTableColumns(List<GenTableColumn> genTableColumns);
    /**
     * 批量删除业务字段
     * 
     * @param ids 需要删除的数据ID
src/main/java/com/ruoyi/project/tool/gen/service/GenTableServiceImpl.java
@@ -7,6 +7,7 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import org.apache.commons.io.IOUtils;
@@ -224,7 +225,6 @@
     * 生成代码(自定义路径)
     * 
     * @param tableName 表名称
     * @return 数据
     */
    @Override
    public void generatorCode(String tableName)
@@ -263,6 +263,37 @@
    }
    /**
     * 同步数据库
     *
     * @param tableName 表名称
     */
    @Override
    @Transactional
    public void synchDb(String tableName)
    {
        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);
        List<String> dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList());
        dbTableColumns.forEach(column -> {
            if (!tableColumnNames.contains(column.getColumnName()))
            {
                GenUtils.initColumnField(column, table);
                genTableColumnMapper.insertGenTableColumn(column);
            }
        });
        List<GenTableColumn> delColumns = tableColumns.stream().filter(column -> !dbTableColumnNames.contains(column.getColumnName())).collect(Collectors.toList());
        if (StringUtils.isNotEmpty(delColumns))
        {
            genTableColumnMapper.deleteGenTableColumns(delColumns);
        }
    }
    /**
     * 批量生成代码(下载方式)
     * 
     * @param tableNames 表数组
src/main/java/com/ruoyi/project/tool/gen/service/IGenTableService.java
@@ -91,6 +91,13 @@
    public void generatorCode(String tableName);
    /**
     * 同步数据库
     *
     * @param tableName 表名称
     */
    public void synchDb(String tableName);
    /**
     * 批量生成代码(下载方式)
     * 
     * @param tableNames 表数组
src/main/resources/mybatis/tool/GenTableColumnMapper.xml
@@ -117,4 +117,11 @@
        </foreach>
    </delete>
    
    <delete id="deleteGenTableColumns">
        delete from gen_table_column where column_id in
        <foreach collection="list" item="item" open="(" separator="," close=")">
            #{item.columnId}
        </foreach>
    </delete>
</mapper>
src/main/resources/mybatis/tool/GenTableMapper.xml
@@ -186,4 +186,4 @@
        </foreach>
    </delete>
</mapper>
</mapper>