From b65641220e71b4c14c60a3ba9b67db1244e6be9f Mon Sep 17 00:00:00 2001 From: ray <1490493387@qq.com> Date: Sun, 14 Jul 2024 23:33:11 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BB=A3=E7=A0=81=E7=94=9F?= =?UTF-8?q?=E6=88=90=E4=B8=B4=E6=97=B6=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/property/GeneratorProperties.java | 17 ++ .../system/controller/DatabaseController.java | 57 ++++++ .../system/controller/SysUserController.java | 11 +- .../system/converter/DeptConverter.java | 4 +- .../system/converter/DictConverter.java | 4 +- .../system/converter/DictItemConverter.java | 6 +- .../system/converter/MenuConverter.java | 4 +- .../system/converter/RoleConverter.java | 4 +- .../system/converter/UserConverter.java | 8 +- .../youlai/system/mapper/DatabaseMapper.java | 23 +++ .../system/model/form/GeneratorConfig.java | 29 +++ .../system/model/query/TablePageQuery.java | 22 +++ .../youlai/system/model/vo/TableColumnVO.java | 34 ++++ .../model/vo/TableGeneratePreviewVO.java | 19 ++ .../youlai/system/model/vo/TablePageVO.java | 29 +++ .../plugin/easyexcel/UserImportListener.java | 2 +- .../system/service/DatabaseService.java | 43 +++++ .../service/impl/DatabaseServiceImpl.java | 96 ++++++++++ .../service/impl/SysDeptServiceImpl.java | 6 +- .../service/impl/SysDictServiceImpl.java | 11 +- .../service/impl/SysMenuServiceImpl.java | 4 +- .../service/impl/SysRoleServiceImpl.java | 4 +- .../service/impl/SysUserServiceImpl.java | 4 +- src/main/resources/application-generator.yml | 175 ++++++++++++++++++ src/main/resources/application.yml | 4 +- src/main/resources/mapper/DatabaseMapper.xml | 43 +++++ .../excel}/用户导入模板.xlsx | Bin .../templates/generator/controller.java.vm | 72 +++++++ .../templates/generator/converter.java.vm | 20 ++ .../templates/generator/entity.java.vm | 35 ++++ .../templates/generator/form.java.vm | 37 ++++ .../templates/generator/mapper.java.vm | 27 +++ .../templates/generator/mapper.xml.vm | 29 +++ .../templates/generator/query.java.vm | 34 ++++ .../templates/generator/service.java.vm | 61 ++++++ .../templates/generator/serviceImpl.java.vm | 103 +++++++++++ .../resources/templates/generator/vo.java.vm | 37 ++++ .../generator/FastAutoGeneratorTest.java | 14 +- src/test/resources/templates/bo.java.vm | 141 -------------- .../resources/templates/controller.java.vm | 81 -------- .../resources/templates/converter.java.vm | 30 --- src/test/resources/templates/dto.java.vm | 112 ----------- src/test/resources/templates/entity.java.vm | 143 -------------- src/test/resources/templates/form.java.vm | 113 ----------- src/test/resources/templates/mapper.java.vm | 35 ---- src/test/resources/templates/mapper.xml.vm | 63 ------- .../resources/templates/pageQuery.java.vm | 20 -- src/test/resources/templates/pageVo.java.vm | 113 ----------- src/test/resources/templates/service.java.vm | 61 ------ .../resources/templates/serviceImpl.java.vm | 117 ------------ src/test/resources/templates/vo.java.vm | 112 ----------- 51 files changed, 1088 insertions(+), 1185 deletions(-) create mode 100644 src/main/java/com/youlai/system/config/property/GeneratorProperties.java create mode 100644 src/main/java/com/youlai/system/controller/DatabaseController.java create mode 100644 src/main/java/com/youlai/system/mapper/DatabaseMapper.java create mode 100644 src/main/java/com/youlai/system/model/form/GeneratorConfig.java create mode 100644 src/main/java/com/youlai/system/model/query/TablePageQuery.java create mode 100644 src/main/java/com/youlai/system/model/vo/TableColumnVO.java create mode 100644 src/main/java/com/youlai/system/model/vo/TableGeneratePreviewVO.java create mode 100644 src/main/java/com/youlai/system/model/vo/TablePageVO.java create mode 100644 src/main/java/com/youlai/system/service/DatabaseService.java create mode 100644 src/main/java/com/youlai/system/service/impl/DatabaseServiceImpl.java create mode 100644 src/main/resources/application-generator.yml create mode 100644 src/main/resources/mapper/DatabaseMapper.xml rename src/main/resources/{excel-templates => templates/excel}/用户导入模板.xlsx (100%) create mode 100644 src/main/resources/templates/generator/controller.java.vm create mode 100644 src/main/resources/templates/generator/converter.java.vm create mode 100644 src/main/resources/templates/generator/entity.java.vm create mode 100644 src/main/resources/templates/generator/form.java.vm create mode 100644 src/main/resources/templates/generator/mapper.java.vm create mode 100644 src/main/resources/templates/generator/mapper.xml.vm create mode 100644 src/main/resources/templates/generator/query.java.vm create mode 100644 src/main/resources/templates/generator/service.java.vm create mode 100644 src/main/resources/templates/generator/serviceImpl.java.vm create mode 100644 src/main/resources/templates/generator/vo.java.vm delete mode 100644 src/test/resources/templates/bo.java.vm delete mode 100644 src/test/resources/templates/controller.java.vm delete mode 100644 src/test/resources/templates/converter.java.vm delete mode 100644 src/test/resources/templates/dto.java.vm delete mode 100644 src/test/resources/templates/entity.java.vm delete mode 100644 src/test/resources/templates/form.java.vm delete mode 100644 src/test/resources/templates/mapper.java.vm delete mode 100644 src/test/resources/templates/mapper.xml.vm delete mode 100644 src/test/resources/templates/pageQuery.java.vm delete mode 100644 src/test/resources/templates/pageVo.java.vm delete mode 100644 src/test/resources/templates/service.java.vm delete mode 100644 src/test/resources/templates/serviceImpl.java.vm delete mode 100644 src/test/resources/templates/vo.java.vm diff --git a/src/main/java/com/youlai/system/config/property/GeneratorProperties.java b/src/main/java/com/youlai/system/config/property/GeneratorProperties.java new file mode 100644 index 00000000..cbefe17c --- /dev/null +++ b/src/main/java/com/youlai/system/config/property/GeneratorProperties.java @@ -0,0 +1,17 @@ +package com.youlai.system.config.property; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +/** + * 代码生成配置属性 + * + * @author Ray + * @since 2.11.0 + */ +@Component +@ConfigurationProperties(prefix = "generator") +@Data +public class GeneratorProperties { +} diff --git a/src/main/java/com/youlai/system/controller/DatabaseController.java b/src/main/java/com/youlai/system/controller/DatabaseController.java new file mode 100644 index 00000000..101f7297 --- /dev/null +++ b/src/main/java/com/youlai/system/controller/DatabaseController.java @@ -0,0 +1,57 @@ +package com.youlai.system.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.youlai.system.common.result.PageResult; +import com.youlai.system.common.result.Result; +import com.youlai.system.model.query.TablePageQuery; +import com.youlai.system.model.vo.TableColumnVO; +import com.youlai.system.model.vo.TableGeneratePreviewVO; +import com.youlai.system.model.vo.TablePageVO; +import com.youlai.system.service.DatabaseService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@Tag(name = "09.代码生成") +@RestController +@RequestMapping("/api/v1/databases") +@RequiredArgsConstructor +public class DatabaseController { + + private final DatabaseService databaseService; + + @Operation(summary = "获取数据表分页列表") + @GetMapping("/table/page") + public PageResult getTablePage( + TablePageQuery queryParams + ) { + Page result = databaseService.getTablePage(queryParams); + return PageResult.success(result); + } + + @Operation(summary = "获取数据表字段列表") + @GetMapping("/table/{tableName}/columns") + public Result> getTableColumns( + @Parameter(description = "表名", example = "sys_user") @PathVariable String tableName + ) { + List list = databaseService.getTableColumns(tableName); + return Result.success(list); + } + + + @Operation(summary = "获取预览生成代码") + @GetMapping("/table/{tableName}/generate-preview") + public Result> getTablePreviewData(@PathVariable String tableName) { + List list = databaseService.getTablePreviewData(tableName); + return Result.success(list); + } + +} diff --git a/src/main/java/com/youlai/system/controller/SysUserController.java b/src/main/java/com/youlai/system/controller/SysUserController.java index f4461ac2..9fe8faa5 100644 --- a/src/main/java/com/youlai/system/controller/SysUserController.java +++ b/src/main/java/com/youlai/system/controller/SysUserController.java @@ -36,6 +36,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.List; /** @@ -54,9 +55,9 @@ public class SysUserController { @Operation(summary = "用户分页列表") @GetMapping("/page") - @LogAnnotation( value = "用户分页列表",module = LogModuleEnum.USER) + @LogAnnotation(value = "用户分页列表", module = LogModuleEnum.USER) public PageResult listPagedUsers( - UserPageQuery queryParams + UserPageQuery queryParams ) { IPage result = userService.listPagedUsers(queryParams); return PageResult.success(result); @@ -138,9 +139,9 @@ public class SysUserController { public void downloadTemplate(HttpServletResponse response) throws IOException { String fileName = "用户导入模板.xlsx"; response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); - response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8")); + response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, StandardCharsets.UTF_8)); - String fileClassPath = "excel-templates" + File.separator + fileName; + String fileClassPath = "templates" + File.separator + "excel" + File.separator + fileName; InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(fileClassPath); ServletOutputStream outputStream = response.getOutputStream(); @@ -151,7 +152,7 @@ public class SysUserController { @Operation(summary = "导入用户") @PostMapping("/import") - public Result importUsers( MultipartFile file) throws IOException { + public Result importUsers(MultipartFile file) throws IOException { UserImportListener listener = new UserImportListener(); String msg = ExcelUtils.importExcel(file.getInputStream(), UserImportDTO.class, listener); return Result.success(msg); diff --git a/src/main/java/com/youlai/system/converter/DeptConverter.java b/src/main/java/com/youlai/system/converter/DeptConverter.java index fea130e1..bf165616 100644 --- a/src/main/java/com/youlai/system/converter/DeptConverter.java +++ b/src/main/java/com/youlai/system/converter/DeptConverter.java @@ -14,10 +14,10 @@ import org.mapstruct.Mapper; @Mapper(componentModel = "spring") public interface DeptConverter { - DeptForm convertToForm(SysDept entity); + DeptForm toForm(SysDept entity); DeptVO convertToVo(SysDept entity); - SysDept convertToEntity(DeptForm deptForm); + SysDept toEntity(DeptForm deptForm); } \ No newline at end of file diff --git a/src/main/java/com/youlai/system/converter/DictConverter.java b/src/main/java/com/youlai/system/converter/DictConverter.java index cb28b4fd..94bbc246 100644 --- a/src/main/java/com/youlai/system/converter/DictConverter.java +++ b/src/main/java/com/youlai/system/converter/DictConverter.java @@ -17,7 +17,7 @@ public interface DictConverter { Page convertToPageVo(Page page); - DictForm convertToForm(SysDict entity); + DictForm toForm(SysDict entity); - SysDict convertToEntity(DictForm entity); + SysDict toEntity(DictForm entity); } diff --git a/src/main/java/com/youlai/system/converter/DictItemConverter.java b/src/main/java/com/youlai/system/converter/DictItemConverter.java index d8a3ed38..caeb0c05 100644 --- a/src/main/java/com/youlai/system/converter/DictItemConverter.java +++ b/src/main/java/com/youlai/system/converter/DictItemConverter.java @@ -23,10 +23,10 @@ public interface DictItemConverter { Page convertToPageVo(Page page); - DictForm convertToForm(SysDictItem entity); + DictForm toForm(SysDictItem entity); - SysDictItem convertToEntity(DictForm.DictItem dictFormDictItems); - List convertToEntity(List dictFormDictItems); + SysDictItem toEntity(DictForm.DictItem dictFormDictItems); + List toEntity(List dictFormDictItems); DictForm.DictItem convertToDictFormDictItem(SysDictItem entity); List convertToDictFormDictItem(List entities); diff --git a/src/main/java/com/youlai/system/converter/MenuConverter.java b/src/main/java/com/youlai/system/converter/MenuConverter.java index 4b9e22f0..1a775579 100644 --- a/src/main/java/com/youlai/system/converter/MenuConverter.java +++ b/src/main/java/com/youlai/system/converter/MenuConverter.java @@ -18,9 +18,9 @@ public interface MenuConverter { MenuVO convertToVo(SysMenu entity); @Mapping(target = "params", ignore = true) - MenuForm convertToForm(SysMenu entity); + MenuForm toForm(SysMenu entity); @Mapping(target = "params", ignore = true) - SysMenu convertToEntity(MenuForm menuForm); + SysMenu toEntity(MenuForm menuForm); } \ No newline at end of file diff --git a/src/main/java/com/youlai/system/converter/RoleConverter.java b/src/main/java/com/youlai/system/converter/RoleConverter.java index 98409262..2ddd071f 100644 --- a/src/main/java/com/youlai/system/converter/RoleConverter.java +++ b/src/main/java/com/youlai/system/converter/RoleConverter.java @@ -31,7 +31,7 @@ public interface RoleConverter { List