AgileBoot-Back-End/sql/user_template.sql
2025-09-26 17:55:35 +08:00

126 lines
6.7 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ========================================
-- 用户自定义模板功能数据库脚本
-- 创建时间: 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';