新增人生轨迹模块代码

This commit is contained in:
2025-12-21 17:44:59 +08:00
parent f3c06ce6af
commit cfd12f01db
14 changed files with 1156 additions and 72 deletions
+77 -60
View File
@@ -37,50 +37,10 @@ USE emotion_museum;
-- 4. 索引优化: 为查询频繁的字段创建合适的索引
-- 5. 字符集: 统一使用utf8mb4支持emoji和特殊字符
-- ============================================================================
-- 删除现有表(开发阶段确保表结构最新)
-- 警告: 这会删除所有数据!
-- ============================================================================
DROP TABLE IF EXISTS t_user_stats;
DROP TABLE IF EXISTS t_guest_user;
DROP TABLE IF EXISTS t_reward;
DROP TABLE IF EXISTS t_achievement;
DROP TABLE IF EXISTS t_comment;
DROP TABLE IF EXISTS t_community_post;
DROP TABLE IF EXISTS t_location_pin;
DROP TABLE IF EXISTS t_topic_interaction;
DROP TABLE IF EXISTS t_growth_topic;
DROP TABLE IF EXISTS t_emotion_record;
DROP TABLE IF EXISTS t_emotion_analysis;
DROP TABLE IF EXISTS t_coze_api_call;
DROP TABLE IF EXISTS t_message;
DROP TABLE IF EXISTS t_conversation;
DROP TABLE IF EXISTS t_diary_post;
DROP TABLE IF EXISTS t_diary_comment;
DROP TABLE IF EXISTS t_user;
DROP TABLE IF EXISTS t_admin;
DROP TABLE IF EXISTS t_ai_config;
-- ============================================================================
-- 1. 用户表 (user)
-- ============================================================================
DROP TABLE IF EXISTS t_user;
CREATE TABLE t_user (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
account VARCHAR(50) UNIQUE COMMENT '账号', -- 账号
@@ -121,6 +81,7 @@ CREATE TABLE t_user (
-- 2. 对话表 (t_conversation)
-- 关联说明: user_id 关联 t_user.id,通过代码逻辑维护关联关系
-- ============================================================================
DROP TABLE IF EXISTS t_conversation;
CREATE TABLE t_conversation (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
user_id VARCHAR(64) COMMENT '用户ID (关联t_user.id)', -- 用户ID (关联t_user.id)
@@ -163,6 +124,7 @@ CREATE TABLE t_conversation (
-- 3. 消息表 (t_message)
-- 关联说明: conversation_id 关联 t_conversation.id,通过代码逻辑维护关联关系
-- ============================================================================
DROP TABLE IF EXISTS t_message;
CREATE TABLE t_message (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
conversation_id VARCHAR(64) COMMENT '对话ID (关联t_conversation.id)', -- 对话ID (关联t_conversation.id)
@@ -202,6 +164,7 @@ CREATE TABLE t_message (
-- ============================================================================
-- 4. Coze API调用记录表 (coze_api_call) - 优化版本
-- ============================================================================
DROP TABLE IF EXISTS t_coze_api_call;
CREATE TABLE t_coze_api_call (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
conversation_id VARCHAR(64) COMMENT '对话ID', -- 对话ID
@@ -266,6 +229,7 @@ CREATE TABLE t_coze_api_call (
-- ============================================================================
-- 5. 情绪分析表 (emotion_analysis)
-- ============================================================================
DROP TABLE IF EXISTS t_emotion_analysis;
CREATE TABLE t_emotion_analysis (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
user_id VARCHAR(64) COMMENT '用户ID', -- 用户ID
@@ -292,6 +256,7 @@ CREATE TABLE t_emotion_analysis (
-- ============================================================================
-- 6. 情绪记录表 (emotion_record)
-- ============================================================================
DROP TABLE IF EXISTS t_emotion_record;
CREATE TABLE t_emotion_record (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
user_id VARCHAR(64) COMMENT '用户ID', -- 用户ID
@@ -318,6 +283,7 @@ CREATE TABLE t_emotion_record (
-- ============================================================================
-- 7. 成长课题表 (growth_topic)
-- ============================================================================
DROP TABLE IF EXISTS t_growth_topic;
CREATE TABLE t_growth_topic (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
title VARCHAR(100) COMMENT '课题标题', -- 课题标题
@@ -343,6 +309,7 @@ CREATE TABLE t_growth_topic (
-- ============================================================================
-- 8. 课题互动表 (topic_interaction)
-- ============================================================================
DROP TABLE IF EXISTS t_topic_interaction;
CREATE TABLE t_topic_interaction (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
topic_id VARCHAR(64) COMMENT '课题ID', -- 课题ID
@@ -365,6 +332,7 @@ CREATE TABLE t_topic_interaction (
-- ============================================================================
-- 9. 地点标记表 (location_pin)
-- ============================================================================
DROP TABLE IF EXISTS t_location_pin;
CREATE TABLE t_location_pin (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
name VARCHAR(100) COMMENT '地点名称', -- 地点名称
@@ -390,6 +358,7 @@ CREATE TABLE t_location_pin (
-- ============================================================================
-- 10. 社区帖子表 (community_post)
-- ============================================================================
DROP TABLE IF EXISTS t_community_post;
CREATE TABLE t_community_post (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
user_id VARCHAR(64) COMMENT '用户ID', -- 用户ID
@@ -415,6 +384,7 @@ CREATE TABLE t_community_post (
-- ============================================================================
-- 11. 评论表 (comment)
-- ============================================================================
DROP TABLE IF EXISTS t_comment;
CREATE TABLE t_comment (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
post_id VARCHAR(64) COMMENT '帖子ID', -- 帖子ID
@@ -434,6 +404,7 @@ CREATE TABLE t_comment (
-- ============================================================================
-- 12. 成就表 (achievement)
-- ============================================================================
DROP TABLE IF EXISTS t_achievement;
CREATE TABLE t_achievement (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
title VARCHAR(100) COMMENT '成就标题', -- 成就标题
@@ -459,6 +430,7 @@ CREATE TABLE t_achievement (
-- ============================================================================
-- 13. 奖励表 (reward)
-- ============================================================================
DROP TABLE IF EXISTS t_reward;
CREATE TABLE t_reward (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
topic_id VARCHAR(64) COMMENT '课题ID', -- 课题ID
@@ -483,6 +455,7 @@ CREATE TABLE t_reward (
-- ============================================================================
-- 14. 用户统计表 (user_stats)
-- ============================================================================
DROP TABLE IF EXISTS t_user_stats;
CREATE TABLE t_user_stats (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
user_id VARCHAR(64) UNIQUE COMMENT '用户ID', -- 用户ID
@@ -522,6 +495,7 @@ CREATE TABLE t_user_stats (
-- 16. 用户日记表 (t_diary_post) - 类似朋友圈功能
-- 关联说明: user_id 关联 t_user.id,通过代码逻辑维护关联关系
-- ============================================================================
DROP TABLE IF EXISTS t_diary_post;
CREATE TABLE t_diary_post (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
user_id VARCHAR(64) COMMENT '用户ID (关联t_user.id)', -- 用户ID (关联t_user.id)
@@ -567,6 +541,7 @@ CREATE TABLE t_diary_post (
-- 17. 日记评论表 (t_diary_comment)
-- 关联说明: diary_id 关联 t_diary_post.iduser_id 关联 t_user.id,通过代码逻辑维护关联关系
-- ============================================================================
DROP TABLE IF EXISTS t_diary_comment;
CREATE TABLE t_diary_comment (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
diary_id VARCHAR(64) COMMENT '日记ID (关联t_diary_post.id)', -- 日记ID (关联t_diary_post.id)
@@ -598,6 +573,7 @@ CREATE TABLE t_diary_comment (
-- ============================================================================
-- 18. 访客用户表 (guest_user)
-- ============================================================================
DROP TABLE IF EXISTS t_guest_user;
CREATE TABLE t_guest_user (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
guest_user_id VARCHAR(50) UNIQUE COMMENT '访客用户ID (格式: guest_xxx)', -- 访客用户ID (格式: guest_xxx)
@@ -858,6 +834,7 @@ CREATE INDEX idx_guest_user_is_deleted ON t_guest_user (is_deleted);
-- ============================================================================
-- 18. 管理员用户表 (admin)
-- ============================================================================
DROP TABLE IF EXISTS t_admin;
CREATE TABLE t_admin (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键', -- UUID主键
account VARCHAR(50) NOT NULL UNIQUE COMMENT '管理员账号', -- 管理员账号
@@ -943,23 +920,24 @@ ORDER BY
-- 19. AI接口配置表 (t_ai_config)
-- 用于存储各种AI接口的调用配置,支持从配置文件迁移到数据库管理
-- ============================================================================
DROP TABLE IF EXISTS t_ai_config;
CREATE TABLE t_ai_config (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键',
config_name VARCHAR(100) NOT NULL COMMENT '配置名称',
config_key VARCHAR(100) NOT NULL UNIQUE COMMENT '配置键值 (唯一标识)',
config_type VARCHAR(50) NOT NULL DEFAULT 'coze' COMMENT '配置类型: coze-扣子, openai-OpenAI, claude-Claude, gemini-Gemini等',
provider VARCHAR(50) NOT NULL COMMENT '服务提供商: coze, openai, anthropic, google等',
-- API基础配置
api_base_url VARCHAR(500) NOT NULL COMMENT 'API基础URL',
api_token VARCHAR(1000) NOT NULL COMMENT 'API访问令牌 (加密存储)',
api_version VARCHAR(20) COMMENT 'API版本',
-- 模型配置
model_name VARCHAR(100) COMMENT '模型名称',
bot_id VARCHAR(100) COMMENT 'Bot ID (Coze专用)',
workflow_id VARCHAR(100) COMMENT 'Workflow ID (Coze专用)',
-- 请求配置
timeout_ms INT DEFAULT 30000 COMMENT '超时时间(毫秒)',
retry_count INT DEFAULT 3 COMMENT '重试次数',
@@ -967,52 +945,52 @@ CREATE TABLE t_ai_config (
max_tokens INT DEFAULT 4000 COMMENT '最大Token数',
temperature DECIMAL(3,2) DEFAULT 0.7 COMMENT '温度参数 (0.0-2.0)',
top_p DECIMAL(3,2) DEFAULT 1.0 COMMENT 'Top-p参数 (0.0-1.0)',
-- 功能配置
support_stream TINYINT DEFAULT 1 COMMENT '是否支持流式输出: 0-不支持, 1-支持',
support_function_call TINYINT DEFAULT 0 COMMENT '是否支持函数调用: 0-不支持, 1-支持',
support_vision TINYINT DEFAULT 0 COMMENT '是否支持视觉理解: 0-不支持, 1-支持',
support_file_upload TINYINT DEFAULT 0 COMMENT '是否支持文件上传: 0-不支持, 1-支持',
-- 使用场景配置
usage_scenario VARCHAR(100) NOT NULL COMMENT '使用场景: chat-聊天, summary-总结, emotion_analysis-情绪分析, content_generation-内容生成等',
priority INT DEFAULT 0 COMMENT '优先级 (数值越大优先级越高)',
-- 费用配置
input_price_per_1k DECIMAL(10,6) DEFAULT 0.000000 COMMENT '输入Token价格(每1K)',
output_price_per_1k DECIMAL(10,6) DEFAULT 0.000000 COMMENT '输出Token价格(每1K)',
currency VARCHAR(10) DEFAULT 'USD' COMMENT '货币单位',
-- 限制配置
rate_limit_per_minute INT DEFAULT 60 COMMENT '每分钟请求限制',
rate_limit_per_hour INT DEFAULT 3600 COMMENT '每小时请求限制',
rate_limit_per_day INT DEFAULT 86400 COMMENT '每日请求限制',
-- 状态配置
is_enabled TINYINT DEFAULT 1 COMMENT '是否启用: 0-禁用, 1-启用',
is_default TINYINT DEFAULT 0 COMMENT '是否为默认配置: 0-否, 1-是',
environment VARCHAR(20) DEFAULT 'production' COMMENT '环境: development-开发, testing-测试, production-生产',
-- 扩展配置
custom_headers JSON COMMENT '自定义请求头',
custom_params JSON COMMENT '自定义参数',
webhook_url VARCHAR(500) COMMENT 'Webhook回调地址',
-- 监控配置
health_check_url VARCHAR(500) COMMENT '健康检查URL',
health_check_interval_minutes INT DEFAULT 5 COMMENT '健康检查间隔(分钟)',
-- 描述信息
description TEXT COMMENT '配置描述',
usage_notes TEXT COMMENT '使用说明',
-- 公共字段
create_by VARCHAR(64) COMMENT '创建人ID',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_by VARCHAR(64) COMMENT '更新人ID',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
is_deleted TINYINT DEFAULT 0 COMMENT '是否删除: 0-未删除, 1-已删除',
remarks VARCHAR(500) COMMENT '备注'
create_by VARCHAR(64) COMMENT '创建人ID', -- 创建人ID
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', -- 创建时间
update_by VARCHAR(64) COMMENT '更新人ID', -- 更新人ID
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', -- 更新时间
is_deleted TINYINT DEFAULT 0 COMMENT '是否删除: 0-未删除, 1-已删除', -- 是否删除: 0-未删除, 1-已删除
remarks VARCHAR(500) COMMENT '备注' -- 备注
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'AI接口配置表 (t_ai_config)';
-- AI配置表索引
@@ -1199,5 +1177,44 @@ INSERT INTO t_ai_config (
NOW(), NOW(), 0
);
-- ============================================================================
-- 19. 用户档案表 (t_user_profile)
-- ============================================================================
DROP TABLE IF EXISTS t_user_profile;
CREATE TABLE t_user_profile (
id VARCHAR(64) PRIMARY KEY COMMENT 'UUID主键',
user_id VARCHAR(64) COMMENT '用户ID (关联t_user.id)',
nickname VARCHAR(50) NOT NULL COMMENT '昵称 (必填)',
gender VARCHAR(20) DEFAULT 'secret' COMMENT '性别',
zodiac VARCHAR(20) COMMENT '星座',
mbti VARCHAR(20) NOT NULL COMMENT 'MBTI人格类型 (必填)',
hobbies JSON COMMENT '兴趣爱好列表',
childhood_date DATE COMMENT '童年记忆日期',
childhood_content TEXT COMMENT '童年记忆内容',
peak_date DATE COMMENT '高光时刻日期',
peak_content TEXT COMMENT '高光时刻内容',
valley_date DATE COMMENT '低谷时刻日期',
valley_content TEXT COMMENT '低谷时刻内容',
future_vision TEXT COMMENT '未来愿景',
scripts JSON COMMENT '生成的剧本列表 (JSON)',
paths JSON COMMENT '选择的路径列表 (JSON)',
status TINYINT DEFAULT 1 COMMENT '状态: 0-禁用, 1-正常',
-- 公共字段
create_by VARCHAR(64) COMMENT '创建人ID', -- 创建人ID
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', -- 创建时间
update_by VARCHAR(64) COMMENT '更新人ID', -- 更新人ID
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', -- 更新时间
is_deleted TINYINT DEFAULT 0 COMMENT '是否删除: 0-未删除, 1-已删除', -- 是否删除: 0-未删除, 1-已删除
remarks VARCHAR(500) COMMENT '备注' -- 备注
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT '用户个人信息表 (t_user_profile)';
-- t_user_profile表索引
CREATE INDEX idx_user_profile_user_id ON t_user_profile (user_id);
CREATE INDEX idx_user_profile_create_time ON t_user_profile (create_time);
-- 提交事务
COMMIT;
COMMIT;