代码生成支持同步数据库
This commit is contained in:
		| @@ -165,12 +165,24 @@ public class GenController extends BaseController | ||||
|     @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(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 批量生成代码 | ||||
|      */ | ||||
|   | ||||
| @@ -17,7 +17,7 @@ public interface GenTableColumnMapper | ||||
|      * @return 列信息 | ||||
|      */ | ||||
|     public List<GenTableColumn> selectDbTableColumnsByName(String tableName); | ||||
|      | ||||
|  | ||||
|     /** | ||||
|      * 查询业务字段列表 | ||||
|      *  | ||||
| @@ -42,6 +42,14 @@ public interface GenTableColumnMapper | ||||
|      */ | ||||
|     public int updateGenTableColumn(GenTableColumn genTableColumn); | ||||
|  | ||||
|     /** | ||||
|      * 删除业务字段 | ||||
|      *  | ||||
|      * @param genTableColumns 列数据 | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int deleteGenTableColumns(List<GenTableColumn> genTableColumns); | ||||
|  | ||||
|     /** | ||||
|      * 批量删除业务字段 | ||||
|      *  | ||||
|   | ||||
| @@ -7,6 +7,7 @@ import java.io.StringWriter; | ||||
| 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 @@ public class GenTableServiceImpl implements IGenTableService | ||||
|      * 生成代码(自定义路径) | ||||
|      *  | ||||
|      * @param tableName 表名称 | ||||
|      * @return 数据 | ||||
|      */ | ||||
|     @Override | ||||
|     public void generatorCode(String tableName) | ||||
| @@ -262,6 +262,37 @@ public class GenTableServiceImpl implements IGenTableService | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 同步数据库 | ||||
|      *  | ||||
|      * @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); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 批量生成代码(下载方式) | ||||
|      *  | ||||
|   | ||||
| @@ -90,6 +90,13 @@ public interface IGenTableService | ||||
|      */ | ||||
|     public void generatorCode(String tableName); | ||||
|  | ||||
|     /** | ||||
|      * 同步数据库 | ||||
|      *  | ||||
|      * @param tableName 表名称 | ||||
|      */ | ||||
|     public void synchDb(String tableName); | ||||
|  | ||||
|     /** | ||||
|      * 批量生成代码(下载方式) | ||||
|      *  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user