126 lines
6.7 KiB
SQL
126 lines
6.7 KiB
SQL
-- ========================================
|
||
-- 用户自定义模板功能数据库脚本
|
||
-- 创建时间: 2025-09-26
|
||
-- 描述: 支持用户创建私有/公开模板,模板仓库管理功能
|
||
-- ========================================
|
||
|
||
-- 1. 用户模板表
|
||
DROP TABLE IF EXISTS `user_template`;
|
||
CREATE TABLE `user_template` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||
`template_name` varchar(100) NOT NULL COMMENT '模板名称',
|
||
`template_group` varchar(50) NOT NULL COMMENT '模板分组',
|
||
`template_content` longtext NOT NULL COMMENT '模板内容(FreeMarker模板)',
|
||
`description` varchar(500) DEFAULT NULL COMMENT '模板描述',
|
||
`is_public` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否公开(0-私有 1-公开)',
|
||
`version` varchar(20) NOT NULL DEFAULT '1.0.0' COMMENT '模板版本',
|
||
`use_count` int NOT NULL DEFAULT '0' COMMENT '使用次数统计',
|
||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态(0-草稿 1-发布 2-禁用)',
|
||
`create_by` bigint DEFAULT NULL COMMENT '创建人ID',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_by` bigint DEFAULT NULL COMMENT '更新人ID',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除(0-未删除 1-已删除)',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_user_template_name` (`user_id`, `template_name`),
|
||
KEY `idx_user_id` (`user_id`),
|
||
KEY `idx_template_group` (`template_group`),
|
||
KEY `idx_is_public` (`is_public`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_create_time` (`create_time`),
|
||
KEY `idx_deleted` (`deleted`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户自定义模板表';
|
||
|
||
-- 2. 用户模板仓库配置表
|
||
DROP TABLE IF EXISTS `user_template_repository`;
|
||
CREATE TABLE `user_template_repository` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||
`template_source` varchar(20) NOT NULL COMMENT '模板来源(system-系统模板 user-用户模板)',
|
||
`template_id` varchar(50) NOT NULL COMMENT '模板ID(系统模板用template.json中的id,用户模板用user_template.id)',
|
||
`template_name` varchar(100) NOT NULL COMMENT '模板名称(冗余字段便于查询)',
|
||
`template_group` varchar(50) NOT NULL COMMENT '模板分组(冗余字段便于查询)',
|
||
`is_enabled` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否启用显示(0-隐藏 1-显示)',
|
||
`sort_order` int NOT NULL DEFAULT '0' COMMENT '显示排序(数字越小越靠前)',
|
||
`create_by` bigint DEFAULT NULL COMMENT '创建人ID',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_by` bigint DEFAULT NULL COMMENT '更新人ID',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除(0-未删除 1-已删除)',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_user_template` (`user_id`, `template_source`, `template_id`),
|
||
KEY `idx_user_id` (`user_id`),
|
||
KEY `idx_template_source` (`template_source`),
|
||
KEY `idx_is_enabled` (`is_enabled`),
|
||
KEY `idx_sort_order` (`sort_order`),
|
||
KEY `idx_deleted` (`deleted`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户模板仓库配置表';
|
||
|
||
-- 3. 模板使用日志表
|
||
DROP TABLE IF EXISTS `template_usage_log`;
|
||
CREATE TABLE `template_usage_log` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`user_id` bigint NOT NULL COMMENT '使用者ID',
|
||
`template_source` varchar(20) NOT NULL COMMENT '模板来源(system-系统模板 user-用户模板)',
|
||
`template_id` varchar(50) NOT NULL COMMENT '模板ID',
|
||
`template_name` varchar(100) NOT NULL COMMENT '模板名称',
|
||
`template_group` varchar(50) NOT NULL COMMENT '模板分组',
|
||
`ip_address` varchar(50) DEFAULT NULL COMMENT 'IP地址',
|
||
`create_by` bigint DEFAULT NULL COMMENT '创建人ID',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(使用时间)',
|
||
`update_by` bigint DEFAULT NULL COMMENT '更新人ID',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除(0-未删除 1-已删除)',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_user_id` (`user_id`),
|
||
KEY `idx_template_source` (`template_source`),
|
||
KEY `idx_template_id` (`template_id`),
|
||
KEY `idx_create_time` (`create_time`),
|
||
KEY `idx_deleted` (`deleted`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='模板使用日志表';
|
||
|
||
-- ========================================
|
||
-- 初始化数据
|
||
-- ========================================
|
||
|
||
-- 为管理员用户(假设user_id=1)初始化系统默认模板到仓库
|
||
-- 这些数据对应template.json中的模板配置
|
||
INSERT INTO `user_template_repository` (`user_id`, `template_source`, `template_id`, `template_name`, `template_group`, `is_enabled`, `sort_order`) VALUES
|
||
(1, 'system', '10', 'swagger-ui', 'ui', 1, 10),
|
||
(1, 'system', '20', 'controller', 'mybatis', 1, 20),
|
||
(1, 'system', '21', 'service', 'mybatis', 1, 21),
|
||
(1, 'system', '22', 'service_impl', 'mybatis', 1, 22),
|
||
(1, 'system', '23', 'mapper', 'mybatis', 1, 23),
|
||
(1, 'system', '24', 'mybatis', 'mybatis', 1, 24),
|
||
(1, 'system', '25', 'model', 'mybatis', 1, 25),
|
||
(1, 'system', '26', 'mapper2', 'mybatis', 1, 26),
|
||
(1, 'system', '60', 'pluscontroller', 'mybatis-plus', 1, 60),
|
||
(1, 'system', '61', 'plusservice', 'mybatis-plus', 1, 61),
|
||
(1, 'system', '62', 'plusmapper', 'mybatis-plus', 1, 62),
|
||
(1, 'system', '63', 'plusentity', 'mybatis-plus', 1, 63);
|
||
|
||
-- ========================================
|
||
-- 示例数据(可选)
|
||
-- ========================================
|
||
|
||
-- 创建一个示例用户模板
|
||
INSERT INTO `user_template` (
|
||
`user_id`, `template_name`, `template_group`, `template_content`, `description`,
|
||
`is_public`, `version`, `status`, `create_by`
|
||
) VALUES (
|
||
1,
|
||
'custom-controller',
|
||
'custom',
|
||
'/**\n * ${classInfo.classComment}\n * \n * @author ${classInfo.author}\n * @date ${classInfo.createDate}\n */\n@RestController\n@RequestMapping("/${classInfo.classNameLower}")\npublic class ${classInfo.className}Controller {\n // 自定义控制器模板\n}',
|
||
'自定义控制器模板示例',
|
||
1,
|
||
'1.0.0',
|
||
1,
|
||
1
|
||
);
|
||
|
||
-- 将示例模板添加到仓库
|
||
INSERT INTO `user_template_repository` (`user_id`, `template_source`, `template_id`, `template_name`, `template_group`, `is_enabled`, `sort_order`)
|
||
SELECT 1, 'user', id, template_name, template_group, 1, 100 FROM `user_template` WHERE `template_name` = 'custom-controller';
|