From 5d15c8976de468ffec6bd9d74031d906d94f3120 Mon Sep 17 00:00:00 2001 From: ray <1490493387@qq.com> Date: Wed, 31 Jul 2024 21:35:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=A3=E7=A0=81=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=87=8D=E7=BD=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/mysql5/youlai_boot.sql | 5 +-- sql/mysql8/youlai_boot.sql | 5 +-- .../controller/GeneratorController.java | 12 ++++++- .../system/model/entity/GenFieldConfig.java | 4 ++- .../system/service/GeneratorService.java | 8 ++++- .../service/impl/GeneratorServiceImpl.java | 32 ++++++++++++++++--- 6 files changed, 54 insertions(+), 12 deletions(-) diff --git a/sql/mysql5/youlai_boot.sql b/sql/mysql5/youlai_boot.sql index 35351802..a65a6769 100644 --- a/sql/mysql5/youlai_boot.sql +++ b/sql/mysql5/youlai_boot.sql @@ -444,7 +444,7 @@ CREATE TABLE `gen_config` ( `parent_menu_id` bigint DEFAULT NULL COMMENT '上级菜单ID,对应sys_menu的id ', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `is_deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_tablename` (`table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='代码生成基础配置表'; @@ -458,7 +458,7 @@ CREATE TABLE `gen_field_config` ( `config_id` bigint NOT NULL COMMENT '关联的配置ID', `column_name` varchar(100) CHARACTER SET utf8 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, `column_type` varchar(50) CHARACTER SET utf8 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `column_length` int DEFAULT NULL, + `max_length` int DEFAULT NULL COMMENT '最大长度', `field_name` varchar(100) CHARACTER SET utf8 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '字段名称', `field_type` varchar(100) CHARACTER SET utf8 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '字段类型', `field_sort` int DEFAULT NULL COMMENT '字段排序', @@ -471,6 +471,7 @@ CREATE TABLE `gen_field_config` ( `form_type` tinyint DEFAULT NULL COMMENT '表单类型', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `config_id` (`config_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='代码生成字段配置表'; diff --git a/sql/mysql8/youlai_boot.sql b/sql/mysql8/youlai_boot.sql index 8f011701..00d24777 100644 --- a/sql/mysql8/youlai_boot.sql +++ b/sql/mysql8/youlai_boot.sql @@ -445,7 +445,7 @@ CREATE TABLE `gen_config` ( `parent_menu_id` bigint DEFAULT NULL COMMENT '上级菜单ID,对应sys_menu的id ', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `is_deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', + `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_tablename` (`table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='代码生成基础配置表'; @@ -459,7 +459,7 @@ CREATE TABLE `gen_field_config` ( `config_id` bigint NOT NULL COMMENT '关联的配置ID', `column_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, `column_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `column_length` int DEFAULT NULL, + `max_length` int DEFAULT NULL COMMENT '最大长度', `field_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '字段名称', `field_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '字段类型', `field_sort` int DEFAULT NULL COMMENT '字段排序', @@ -472,6 +472,7 @@ CREATE TABLE `gen_field_config` ( `form_type` tinyint DEFAULT NULL COMMENT '表单类型', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除', PRIMARY KEY (`id`), KEY `config_id` (`config_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='代码生成字段配置表'; diff --git a/src/main/java/com/youlai/system/controller/GeneratorController.java b/src/main/java/com/youlai/system/controller/GeneratorController.java index 82754898..f73525c8 100644 --- a/src/main/java/com/youlai/system/controller/GeneratorController.java +++ b/src/main/java/com/youlai/system/controller/GeneratorController.java @@ -42,7 +42,8 @@ public class GeneratorController { @Operation(summary = "获取代码生成配置") @GetMapping("/{tableName}/config") public Result getGenConfigFormData( - @Parameter(description = "表名", example = "sys_user") @PathVariable String tableName) { + @Parameter(description = "表名", example = "sys_user") @PathVariable String tableName + ) { GenConfigForm formData = generatorService.getGenConfigFormData(tableName); return Result.success(formData); } @@ -54,6 +55,15 @@ public class GeneratorController { return Result.success(); } + @Operation(summary = "删除代码生成配置") + @DeleteMapping("/{tableName}/config") + public Result deleteGenConfig( + @Parameter(description = "表名", example = "sys_user") @PathVariable String tableName + ) { + boolean result = generatorService.deleteGenConfig(tableName); + return Result.judge(result); + } + @Operation(summary = "获取预览生成代码") @GetMapping("/{tableName}/preview") public Result> getTablePreviewData(@PathVariable String tableName) { diff --git a/src/main/java/com/youlai/system/model/entity/GenFieldConfig.java b/src/main/java/com/youlai/system/model/entity/GenFieldConfig.java index 75a3d542..4af313f7 100644 --- a/src/main/java/com/youlai/system/model/entity/GenFieldConfig.java +++ b/src/main/java/com/youlai/system/model/entity/GenFieldConfig.java @@ -1,6 +1,7 @@ package com.youlai.system.model.entity; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -101,5 +102,6 @@ public class GenFieldConfig extends BaseEntity { */ private String dictType; - + @TableLogic + private Integer isDeleted; } \ No newline at end of file diff --git a/src/main/java/com/youlai/system/service/GeneratorService.java b/src/main/java/com/youlai/system/service/GeneratorService.java index 0aae0491..f32e0c78 100644 --- a/src/main/java/com/youlai/system/service/GeneratorService.java +++ b/src/main/java/com/youlai/system/service/GeneratorService.java @@ -48,5 +48,11 @@ public interface GeneratorService { */ void saveGenConfig(GenConfigForm formData); - + /** + * 删除代码生成配置 + * + * @param tableName 表名 + * @return + */ + boolean deleteGenConfig(String tableName); } diff --git a/src/main/java/com/youlai/system/service/impl/GeneratorServiceImpl.java b/src/main/java/com/youlai/system/service/impl/GeneratorServiceImpl.java index 66d26dff..45355206 100644 --- a/src/main/java/com/youlai/system/service/impl/GeneratorServiceImpl.java +++ b/src/main/java/com/youlai/system/service/impl/GeneratorServiceImpl.java @@ -177,6 +177,28 @@ public class GeneratorServiceImpl implements GeneratorService { genFieldConfigService.saveOrUpdateBatch(genFieldConfigs); } + /** + * 删除代码生成配置 + * + * @param tableName 表名 + * @return + */ + @Override + public boolean deleteGenConfig(String tableName) { + GenConfig genConfig = genConfigService.getOne(new LambdaQueryWrapper() + .eq(GenConfig::getTableName, tableName)); + + boolean result = genConfigService.remove(new LambdaQueryWrapper() + .eq(GenConfig::getTableName, tableName) + ); + if (result) { + genFieldConfigService.remove(new LambdaQueryWrapper() + .eq(GenFieldConfig::getConfigId, genConfig.getId()) + ); + } + return result; + } + /** * 获取预览生成代码 @@ -225,7 +247,7 @@ public class GeneratorServiceImpl implements GeneratorService { // controller String subPackageName = templateConfig.getPackageName(); // 文件路径 com.youlai.system.controller - String filePath = getFilePath(templateName, packageName, subPackageName,entityName); + String filePath = getFilePath(templateName, packageName, subPackageName, entityName); previewVO.setPath(filePath); /* 3. 生成文件内容 */ @@ -259,7 +281,7 @@ public class GeneratorServiceImpl implements GeneratorService { return entityName + templateName + extension; } - private String getFilePath(String templateName, String packageName, String subPackageName,String entityName) { + private String getFilePath(String templateName, String packageName, String subPackageName, String entityName) { String path; if ("MapperXml".equals(templateName)) { path = (generatorProperties.getBackendAppName() @@ -267,19 +289,19 @@ public class GeneratorServiceImpl implements GeneratorService { + "src" + File.separator + "main" + File.separator + "resources" + File.separator + subPackageName ); - } else if ("API".equals(templateName) ) { + } else if ("API".equals(templateName)) { path = (generatorProperties.getFrontendAppName() + File.separator + "src" + File.separator + subPackageName ); - } else if("VIEW".equals(templateName)){ + } else if ("VIEW".equals(templateName)) { path = (generatorProperties.getFrontendAppName() + File.separator + "src" + File.separator + subPackageName + File.separator + StrUtil.toSymbolCase(entityName, '-') ); - }else { + } else { path = (generatorProperties.getBackendAppName() + File.separator + "src" + File.separator + "main" + File.separator + "java"