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"