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