feat: AI改写功能集成角色数据 + UI优化

- 新增story_characters表和seed_characters.sql种子数据(27个角色)
- AI改写/续写功能注入角色信息(性别/年龄/外貌/性格)
- 首页UI下移避让微信退出按钮
- 个人中心页面布局重构
This commit is contained in:
2026-03-11 18:41:56 +08:00
parent 2470cea7e4
commit 4ac47c8474
8 changed files with 478 additions and 47 deletions

View File

@@ -176,3 +176,41 @@ CREATE TABLE IF NOT EXISTS `play_records` (
CONSTRAINT `play_records_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
CONSTRAINT `play_records_ibfk_2` FOREIGN KEY (`story_id`) REFERENCES `stories` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='游玩记录表';
-- ============================================
-- 9. 故事角色表
-- ============================================
CREATE TABLE IF NOT EXISTS `story_characters` (
`id` INT NOT NULL AUTO_INCREMENT,
`story_id` INT NOT NULL COMMENT '所属故事ID',
`name` VARCHAR(50) NOT NULL COMMENT '角色名称',
`role_type` VARCHAR(20) DEFAULT 'supporting' COMMENT '角色类型: protagonist/antagonist/supporting',
`gender` VARCHAR(10) DEFAULT '' COMMENT '性别: male/female/unknown',
`age_range` VARCHAR(20) DEFAULT '' COMMENT '年龄段: child/teen/young/middle/old',
`appearance` TEXT COMMENT '外貌描述(用于生成图片)',
`personality` TEXT COMMENT '性格描述',
`background` TEXT COMMENT '背景故事',
`avatar_prompt` TEXT COMMENT 'AI绘图提示词',
`avatar_url` VARCHAR(500) DEFAULT '' COMMENT '角色头像URL',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_story_id` (`story_id`),
CONSTRAINT `story_characters_ibfk_1` FOREIGN KEY (`story_id`) REFERENCES `stories` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='故事角色表';
-- ============================================
-- 10. 节点角色关联表
-- ============================================
CREATE TABLE IF NOT EXISTS `node_characters` (
`id` INT NOT NULL AUTO_INCREMENT,
`story_id` INT NOT NULL COMMENT '故事ID',
`node_key` VARCHAR(50) NOT NULL COMMENT '节点key',
`character_id` INT NOT NULL COMMENT '角色ID',
`is_speaker` TINYINT(1) DEFAULT 0 COMMENT '是否为该节点说话者',
`emotion` VARCHAR(30) DEFAULT 'neutral' COMMENT '该节点情绪: happy/sad/angry/neutral等',
PRIMARY KEY (`id`),
KEY `idx_story_node` (`story_id`, `node_key`),
KEY `idx_character` (`character_id`),
CONSTRAINT `node_characters_ibfk_1` FOREIGN KEY (`character_id`) REFERENCES `story_characters` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='节点角色关联表';