Files
YuShiSheJiShi/init_data.sql
032c43525a feat(ai): 支持双模型多视角AI设计生图与后台管理系统
- 实现AI多视角设计图生成功能,支持6个可选设计参数配置
- 集成SiliconFlow FLUX.1与火山引擎Seedream 4.5双模型切换
- 构建专业中文转英文prompt系统,提升AI生成质量
- 前端设计预览支持多视角切换与视角指示器展示
- 增加多视角设计图片DesignImage模型关联及存储
- 后端设计服务异步调用AI接口,失败时降级生成mock图
- 新增管理员后台管理路由及完整的权限校验机制
- 实现后台模块:仪表盘、系统配置、用户/品类/设计管理
- 配置数据库系统配置表,支持动态AI配置及热更新
- 增加用户管理员标识字段,管理后台登录鉴权支持
- 更新API接口支持多视角设计参数及后台管理接口
- 优化设计删除逻辑,删除多视角相关图片文件
- 前端新增管理后台页面与路由,布局样式独立分离
- 更新环境变量增加AI模型相关Key与参数配置说明
- 引入httpx异步HTTP客户端用于AI接口调用及图片下载
- README文档完善AI多视角生图与后台管理详细功能与流程说明
2026-03-27 15:29:50 +08:00

357 lines
14 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.
-- 玉宗 - 珠宝设计大师 数据库初始化脚本
-- 使用前请先创建数据库: CREATE DATABASE yuzong CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 导入命令: mysql --default-character-set=utf8mb4 -u root -p yuzong < init_data.sql
-- 注意: designs 表包含 6 个可选设计参数字段:
-- carving_technique(雕刻工艺), design_style(设计风格), motif(题材纹样),
-- size_spec(尺寸规格), surface_finish(表面处理), usage_scene(用途场景)
SET NAMES utf8mb4;
-- ========================================
-- 品类数据 (12个品类)
-- ========================================
INSERT INTO categories (id, name, icon, sort_order, flow_type) VALUES
(1, '牌子', NULL, 1, 'full'),
(2, '珠子', NULL, 2, 'size_color'),
(3, '手把件', NULL, 3, 'full'),
(4, '雕刻件', NULL, 4, 'full'),
(5, '摆件', NULL, 5, 'full'),
(6, '手镯', NULL, 6, 'full'),
(7, '耳钉', NULL, 7, 'full'),
(8, '耳饰', NULL, 8, 'full'),
(9, '手链', NULL, 9, 'size_color'),
(10, '项链', NULL, 10, 'full'),
(11, '戒指', NULL, 11, 'full'),
(12, '表带', NULL, 12, 'size_color');
-- ========================================
-- 牌子的子类型 (category_id=1) - 牌型
-- ========================================
INSERT INTO sub_types (category_id, name, description, preview_image, sort_order) VALUES
(1, '二五牌', NULL, NULL, 1),
(1, '三角牌', NULL, NULL, 2),
(1, '三五牌', NULL, NULL, 3),
(1, '四六牌', NULL, NULL, 4),
(1, '正方形', NULL, NULL, 5),
(1, '椭圆形', NULL, NULL, 6);
-- ========================================
-- 珠子的子类型 (category_id=2) - 尺寸
-- ========================================
INSERT INTO sub_types (category_id, name, description, preview_image, sort_order) VALUES
(2, '4mm', NULL, NULL, 1),
(2, '6mm', NULL, NULL, 2),
(2, '8mm', NULL, NULL, 3),
(2, '10mm', NULL, NULL, 4),
(2, '12mm', NULL, NULL, 5),
(2, '14mm', NULL, NULL, 6),
(2, '16mm', NULL, NULL, 7),
(2, '18mm', NULL, NULL, 8),
(2, '20mm', NULL, NULL, 9);
-- ========================================
-- 手把件的子类型 (category_id=3) - 题材
-- ========================================
INSERT INTO sub_types (category_id, name, description, preview_image, sort_order) VALUES
(3, '山水手把件', '山水意境题材', NULL, 1),
(3, '动物手把件', '动物造型题材', NULL, 2),
(3, '瑞兽手把件', '貔貅、麒麟等瑞兽', NULL, 3),
(3, '人物手把件', '人物造型题材', NULL, 4),
(3, '花鸟手把件', '花鸟自然题材', NULL, 5),
(3, '佛像手把件', '佛教题材', NULL, 6);
-- ========================================
-- 雕刻件的子类型 (category_id=4) - 题材
-- ========================================
INSERT INTO sub_types (category_id, name, description, preview_image, sort_order) VALUES
(4, '山水雕刻', '山水意境雕刻', NULL, 1),
(4, '花鸟雕刻', '花鸟自然雕刻', NULL, 2),
(4, '人物雕刻', '人物造型雕刻', NULL, 3),
(4, '佛像雕刻', '佛教题材雕刻', NULL, 4),
(4, '瑞兽雕刻', '瑞兽神兽雕刻', NULL, 5),
(4, '仿古雕刻', '仿古纹饰雕刻', NULL, 6);
-- ========================================
-- 摆件的子类型 (category_id=5) - 题材
-- ========================================
INSERT INTO sub_types (category_id, name, description, preview_image, sort_order) VALUES
(5, '山水摆件', '山水意境摆件', NULL, 1),
(5, '人物摆件', '人物造型摆件', NULL, 2),
(5, '动物摆件', '动物造型摆件', NULL, 3),
(5, '佛像摆件', '佛教题材摆件', NULL, 4),
(5, '花鸟摆件', '花鸟自然摆件', NULL, 5),
(5, '器皿摆件', '香炉、花瓶等器皿', NULL, 6);
-- ========================================
-- 手镯的子类型 (category_id=6) - 镯型
-- ========================================
INSERT INTO sub_types (category_id, name, description, preview_image, sort_order) VALUES
(6, '平安镯', '内平外圆,最经典的镯型', NULL, 1),
(6, '福镯', '内圆外圆,圆条造型', NULL, 2),
(6, '贵妃镯', '椭圆形,贴合手腕', NULL, 3),
(6, '美人镯', '条杆纤细,秀气典雅', NULL, 4),
(6, '方镯', '方形截面,棱角分明', NULL, 5),
(6, '雕花镯', '表面雕刻纹饰', NULL, 6);
-- ========================================
-- 耳钉的子类型 (category_id=7) - 形状
-- ========================================
INSERT INTO sub_types (category_id, name, description, preview_image, sort_order) VALUES
(7, '圆形耳钉', '经典圆形造型', NULL, 1),
(7, '水滴形耳钉', '水滴形优雅造型', NULL, 2),
(7, '方形耳钉', '方形简约造型', NULL, 3),
(7, '花朵形耳钉', '花朵造型', NULL, 4),
(7, '心形耳钉', '心形浪漫造型', NULL, 5),
(7, '几何形耳钉', '几何抽象造型', NULL, 6);
-- ========================================
-- 耳饰的子类型 (category_id=8) - 款式
-- ========================================
INSERT INTO sub_types (category_id, name, description, preview_image, sort_order) VALUES
(8, '耳环', '圆环形耳饰', NULL, 1),
(8, '耳坠', '垂坠型耳饰', NULL, 2),
(8, '耳夹', '无需耳洞的耳饰', NULL, 3),
(8, '流苏耳饰', '长款流苏造型', NULL, 4);
-- ========================================
-- 手链的子类型 (category_id=9) - 珠径
-- ========================================
INSERT INTO sub_types (category_id, name, description, preview_image, sort_order) VALUES
(9, '6mm', NULL, NULL, 1),
(9, '8mm', NULL, NULL, 2),
(9, '10mm', NULL, NULL, 3),
(9, '12mm', NULL, NULL, 4),
(9, '14mm', NULL, NULL, 5);
-- ========================================
-- 项链的子类型 (category_id=10) - 款式
-- ========================================
INSERT INTO sub_types (category_id, name, description, preview_image, sort_order) VALUES
(10, '锁骨链', '短款锁骨链', NULL, 1),
(10, '吊坠项链', '搭配玉石吊坠', NULL, 2),
(10, '串珠项链', '玉珠串联而成', NULL, 3),
(10, '编绳项链', '编织绳搭配玉石', NULL, 4),
(10, '毛衣链', '长款毛衣链', NULL, 5);
-- ========================================
-- 戒指的子类型 (category_id=11) - 款式
-- ========================================
INSERT INTO sub_types (category_id, name, description, preview_image, sort_order) VALUES
(11, '素面戒指', '光面简约戒指', NULL, 1),
(11, '镶嵌戒指', '金属镶嵌玉石', NULL, 2),
(11, '雕花戒指', '表面雕刻纹饰', NULL, 3),
(11, '扳指', '传统扳指造型', NULL, 4),
(11, '指环', '环形简约指环', NULL, 5);
-- ========================================
-- 表带的子类型 (category_id=12) - 宽度
-- ========================================
INSERT INTO sub_types (category_id, name, description, preview_image, sort_order) VALUES
(12, '18mm', NULL, NULL, 1),
(12, '20mm', NULL, NULL, 2),
(12, '22mm', NULL, NULL, 3),
(12, '24mm', NULL, NULL, 4);
-- ========================================
-- 颜色数据
-- 基于和田玉国标颜色分类及市场主流色种
-- ========================================
-- 牌子颜色 (category_id=1) - 全部10种
INSERT INTO colors (category_id, name, hex_code, sort_order) VALUES
(1, '白玉', '#FEFEF2', 1),
(1, '青白玉', '#E8EDE4', 2),
(1, '青玉', '#7A8B6E', 3),
(1, '碧玉', '#2D5F2D', 4),
(1, '翠青', '#6BAF8D', 5),
(1, '黄玉', '#D4A843', 6),
(1, '糖玉', '#C4856C', 7),
(1, '墨玉', '#2C2C2C', 8),
(1, '藕粉', '#E8B4B8', 9),
(1, '烟紫', '#8B7D9B', 10);
-- 珠子颜色 (category_id=2) - 11种(含糖白)
INSERT INTO colors (category_id, name, hex_code, sort_order) VALUES
(2, '糖白', '#F5F0E8', 1),
(2, '白玉', '#FEFEF2', 2),
(2, '碧玉', '#2D5F2D', 3),
(2, '青白玉', '#E8EDE4', 4),
(2, '青玉', '#7A8B6E', 5),
(2, '翠青', '#6BAF8D', 6),
(2, '黄玉', '#D4A843', 7),
(2, '糖玉', '#C4856C', 8),
(2, '墨玉', '#2C2C2C', 9),
(2, '藕粉', '#E8B4B8', 10),
(2, '烟紫', '#8B7D9B', 11);
-- 手把件颜色 (category_id=3) - 全部10种
INSERT INTO colors (category_id, name, hex_code, sort_order) VALUES
(3, '白玉', '#FEFEF2', 1),
(3, '青白玉', '#E8EDE4', 2),
(3, '青玉', '#7A8B6E', 3),
(3, '碧玉', '#2D5F2D', 4),
(3, '翠青', '#6BAF8D', 5),
(3, '黄玉', '#D4A843', 6),
(3, '糖玉', '#C4856C', 7),
(3, '墨玉', '#2C2C2C', 8),
(3, '藕粉', '#E8B4B8', 9),
(3, '烟紫', '#8B7D9B', 10);
-- 雕刻件颜色 (category_id=4) - 全部10种
INSERT INTO colors (category_id, name, hex_code, sort_order) VALUES
(4, '白玉', '#FEFEF2', 1),
(4, '青白玉', '#E8EDE4', 2),
(4, '青玉', '#7A8B6E', 3),
(4, '碧玉', '#2D5F2D', 4),
(4, '翠青', '#6BAF8D', 5),
(4, '黄玉', '#D4A843', 6),
(4, '糖玉', '#C4856C', 7),
(4, '墨玉', '#2C2C2C', 8),
(4, '藕粉', '#E8B4B8', 9),
(4, '烟紫', '#8B7D9B', 10);
-- 摆件颜色 (category_id=5) - 全部10种
INSERT INTO colors (category_id, name, hex_code, sort_order) VALUES
(5, '白玉', '#FEFEF2', 1),
(5, '青白玉', '#E8EDE4', 2),
(5, '青玉', '#7A8B6E', 3),
(5, '碧玉', '#2D5F2D', 4),
(5, '翠青', '#6BAF8D', 5),
(5, '黄玉', '#D4A843', 6),
(5, '糖玉', '#C4856C', 7),
(5, '墨玉', '#2C2C2C', 8),
(5, '藕粉', '#E8B4B8', 9),
(5, '烟紫', '#8B7D9B', 10);
-- 手镯颜色 (category_id=6) - 全部10种
INSERT INTO colors (category_id, name, hex_code, sort_order) VALUES
(6, '白玉', '#FEFEF2', 1),
(6, '青白玉', '#E8EDE4', 2),
(6, '青玉', '#7A8B6E', 3),
(6, '碧玉', '#2D5F2D', 4),
(6, '翠青', '#6BAF8D', 5),
(6, '黄玉', '#D4A843', 6),
(6, '糖玉', '#C4856C', 7),
(6, '墨玉', '#2C2C2C', 8),
(6, '藕粉', '#E8B4B8', 9),
(6, '烟紫', '#8B7D9B', 10);
-- 耳钉颜色 (category_id=7) - 全部10种
INSERT INTO colors (category_id, name, hex_code, sort_order) VALUES
(7, '白玉', '#FEFEF2', 1),
(7, '青白玉', '#E8EDE4', 2),
(7, '青玉', '#7A8B6E', 3),
(7, '碧玉', '#2D5F2D', 4),
(7, '翠青', '#6BAF8D', 5),
(7, '黄玉', '#D4A843', 6),
(7, '糖玉', '#C4856C', 7),
(7, '墨玉', '#2C2C2C', 8),
(7, '藕粉', '#E8B4B8', 9),
(7, '烟紫', '#8B7D9B', 10);
-- 耳饰颜色 (category_id=8) - 全部10种
INSERT INTO colors (category_id, name, hex_code, sort_order) VALUES
(8, '白玉', '#FEFEF2', 1),
(8, '青白玉', '#E8EDE4', 2),
(8, '青玉', '#7A8B6E', 3),
(8, '碧玉', '#2D5F2D', 4),
(8, '翠青', '#6BAF8D', 5),
(8, '黄玉', '#D4A843', 6),
(8, '糖玉', '#C4856C', 7),
(8, '墨玉', '#2C2C2C', 8),
(8, '藕粉', '#E8B4B8', 9),
(8, '烟紫', '#8B7D9B', 10);
-- 手链颜色 (category_id=9) - 全部10种
INSERT INTO colors (category_id, name, hex_code, sort_order) VALUES
(9, '白玉', '#FEFEF2', 1),
(9, '青白玉', '#E8EDE4', 2),
(9, '青玉', '#7A8B6E', 3),
(9, '碧玉', '#2D5F2D', 4),
(9, '翠青', '#6BAF8D', 5),
(9, '黄玉', '#D4A843', 6),
(9, '糖玉', '#C4856C', 7),
(9, '墨玉', '#2C2C2C', 8),
(9, '藕粉', '#E8B4B8', 9),
(9, '烟紫', '#8B7D9B', 10);
-- 项链颜色 (category_id=10) - 全部10种
INSERT INTO colors (category_id, name, hex_code, sort_order) VALUES
(10, '白玉', '#FEFEF2', 1),
(10, '青白玉', '#E8EDE4', 2),
(10, '青玉', '#7A8B6E', 3),
(10, '碧玉', '#2D5F2D', 4),
(10, '翠青', '#6BAF8D', 5),
(10, '黄玉', '#D4A843', 6),
(10, '糖玉', '#C4856C', 7),
(10, '墨玉', '#2C2C2C', 8),
(10, '藕粉', '#E8B4B8', 9),
(10, '烟紫', '#8B7D9B', 10);
-- 戒指颜色 (category_id=11) - 全部10种
INSERT INTO colors (category_id, name, hex_code, sort_order) VALUES
(11, '白玉', '#FEFEF2', 1),
(11, '青白玉', '#E8EDE4', 2),
(11, '青玉', '#7A8B6E', 3),
(11, '碧玉', '#2D5F2D', 4),
(11, '翠青', '#6BAF8D', 5),
(11, '黄玉', '#D4A843', 6),
(11, '糖玉', '#C4856C', 7),
(11, '墨玉', '#2C2C2C', 8),
(11, '藕粉', '#E8B4B8', 9),
(11, '烟紫', '#8B7D9B', 10);
-- 表带颜色 (category_id=12) - 全部10种
INSERT INTO colors (category_id, name, hex_code, sort_order) VALUES
(12, '白玉', '#FEFEF2', 1),
(12, '青白玉', '#E8EDE4', 2),
(12, '青玉', '#7A8B6E', 3),
(12, '碧玉', '#2D5F2D', 4),
(12, '翠青', '#6BAF8D', 5),
(12, '黄玉', '#D4A843', 6),
(12, '糖玉', '#C4856C', 7),
(12, '墨玉', '#2C2C2C', 8),
(12, '藕粉', '#E8B4B8', 9),
(12, '烟紫', '#8B7D9B', 10);
-- ========================================
-- design_images 表AI 多视角设计图)
-- ========================================
CREATE TABLE IF NOT EXISTS design_images (
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '图片ID',
design_id BIGINT NOT NULL COMMENT '关联设计ID',
view_name VARCHAR(20) NOT NULL COMMENT '视角名称: 效果图/正面图/侧面图/背面图',
image_url VARCHAR(255) DEFAULT NULL COMMENT '图片URL路径',
model_used VARCHAR(50) DEFAULT NULL COMMENT '使用的AI模型: flux-dev/seedream-4.5',
prompt_used TEXT DEFAULT NULL COMMENT '实际使用的英文prompt',
sort_order INT DEFAULT 0 COMMENT '排序',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
CONSTRAINT fk_design_images_design FOREIGN KEY (design_id) REFERENCES designs(id) ON DELETE CASCADE,
INDEX idx_design_images_design_id (design_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI多视角设计图';
-- ========================================
-- system_configs 表(系统配置)
-- ========================================
CREATE TABLE IF NOT EXISTS system_configs (
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '配置ID',
config_key VARCHAR(100) NOT NULL UNIQUE COMMENT '配置键',
config_value TEXT COMMENT '配置值',
description VARCHAR(255) COMMENT '配置说明',
config_group VARCHAR(50) NOT NULL DEFAULT 'general' COMMENT '配置分组: ai/general',
is_secret CHAR(1) NOT NULL DEFAULT 'N' COMMENT '是否敏感信息(Y/N)',
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统配置表';
-- 插入默认 AI 配置项
INSERT IGNORE INTO system_configs (config_key, config_value, description, config_group, is_secret) VALUES
('SILICONFLOW_API_KEY', '', 'SiliconFlow API Key', 'ai', 'Y'),
('SILICONFLOW_BASE_URL', 'https://api.siliconflow.cn/v1', 'SiliconFlow 接口地址', 'ai', 'N'),
('VOLCENGINE_API_KEY', '', '火山引擎 API Key', 'ai', 'Y'),
('VOLCENGINE_BASE_URL', 'https://ark.cn-beijing.volces.com/api/v3', '火山引擎接口地址', 'ai', 'N'),
('AI_IMAGE_MODEL', 'flux-dev', '默认AI生图模型 (flux-dev / seedream-4.5)', 'ai', 'N'),
('AI_IMAGE_SIZE', '1024', 'AI生图默认尺寸', 'ai', 'N');
-- users 表添加 is_admin 字段(如果不存在)
-- ALTER TABLE users ADD COLUMN is_admin TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否管理员' AFTER avatar;