|
|
@@ -7537,5 +7537,62 @@ private void runMigration100() {
|
|
|
} catch (Exception e) {
|
|
|
log.warn("插入PREMIUM等级种子数据失败: {}", e.getMessage());
|
|
|
}
|
|
|
+
|
|
|
+ // 迁移155: 创建 interaction_logs 表(关系互动记录)
|
|
|
+ try {
|
|
|
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS interaction_logs (" +
|
|
|
+ "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
|
|
|
+ "family_id BIGINT NOT NULL COMMENT '所属家庭ID', " +
|
|
|
+ "from_member_id BIGINT NOT NULL COMMENT '互动发起方成员ID', " +
|
|
|
+ "to_member_id BIGINT NOT NULL COMMENT '互动接收方成员ID', " +
|
|
|
+ "interaction_type VARCHAR(20) NOT NULL COMMENT '互动类型: dining/outgoing/call/video/chat/play/gift', " +
|
|
|
+ "description VARCHAR(500) COMMENT '互动描述', " +
|
|
|
+ "happened_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '互动发生时间', " +
|
|
|
+ "created_at DATETIME DEFAULT CURRENT_TIMESTAMP, " +
|
|
|
+ "INDEX idx_ilog_family (family_id), " +
|
|
|
+ "INDEX idx_ilog_to_member (to_member_id) " +
|
|
|
+ ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='家庭成员互动记录'");
|
|
|
+ log.info("已创建interaction_logs表");
|
|
|
+ } catch (Exception e) {
|
|
|
+ // 表已存在,忽略
|
|
|
+ }
|
|
|
+
|
|
|
+ // 迁移156: 创建 relationship_questionnaire_snapshots 表(关系问卷快照)
|
|
|
+ try {
|
|
|
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS relationship_questionnaire_snapshots (" +
|
|
|
+ "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
|
|
|
+ "family_member_id BIGINT NOT NULL COMMENT '家庭成员ID', " +
|
|
|
+ "respondent_id BIGINT NOT NULL COMMENT '答卷人用户ID', " +
|
|
|
+ "member_name VARCHAR(50) COMMENT '成员名称', " +
|
|
|
+ "relationship_type VARCHAR(20) COMMENT '关系类型: parent/child', " +
|
|
|
+ "ai_generated_json TEXT COMMENT 'AI生成的题目JSON', " +
|
|
|
+ "version VARCHAR(20) COMMENT '版本号', " +
|
|
|
+ "created_at DATETIME DEFAULT CURRENT_TIMESTAMP, " +
|
|
|
+ "INDEX idx_q_snap_member (family_member_id) " +
|
|
|
+ ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='关系问卷快照'");
|
|
|
+ log.info("已创建relationship_questionnaire_snapshots表");
|
|
|
+ } catch (Exception e) {
|
|
|
+ // 表已存在,忽略
|
|
|
+ }
|
|
|
+
|
|
|
+ // 迁移157: 创建 relationship_questionnaire_responses 表(关系问卷回答)
|
|
|
+ try {
|
|
|
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS relationship_questionnaire_responses (" +
|
|
|
+ "id BIGINT AUTO_INCREMENT PRIMARY KEY, " +
|
|
|
+ "snapshot_id BIGINT NOT NULL COMMENT '问卷快照ID', " +
|
|
|
+ "respondent_id BIGINT NOT NULL COMMENT '答卷人用户ID', " +
|
|
|
+ "answers_json TEXT COMMENT '用户回答JSON', " +
|
|
|
+ "trust_score DECIMAL(5,2) DEFAULT 0 COMMENT '信任度得分', " +
|
|
|
+ "intimacy_score DECIMAL(5,2) DEFAULT 0 COMMENT '亲密度得分', " +
|
|
|
+ "communication_score DECIMAL(5,2) DEFAULT 0 COMMENT '沟通质量得分', " +
|
|
|
+ "interaction_bonus DECIMAL(5,2) DEFAULT 0 COMMENT '互动记录加分', " +
|
|
|
+ "total_score DECIMAL(5,2) DEFAULT 0 COMMENT '综合得分', " +
|
|
|
+ "calculated_at DATETIME DEFAULT CURRENT_TIMESTAMP, " +
|
|
|
+ "INDEX idx_q_resp_snap (snapshot_id) " +
|
|
|
+ ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='关系问卷回答记录'");
|
|
|
+ log.info("已创建relationship_questionnaire_responses表");
|
|
|
+ } catch (Exception e) {
|
|
|
+ // 表已存在,忽略
|
|
|
+ }
|
|
|
}
|
|
|
}
|