Files
akmon/doc_zhipao/mock_sport_realuser_complete.sql
2026-01-20 08:04:15 +08:00

182 lines
16 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.
-- 智跑平台真实用户ID测试数据补充最终完整修正版本
-- 生成日期: 2025-06-17
-- 用途: 为指定的真实用户ID创建完整的测试数据修复所有外键约束问题
-- 学生用户ID: 7bf7378e-a027-473e-97ac-3460ed3f170a
-- 教师用户ID: eed3824b-bba1-4309-8048-19d17367c084
-- ===============================
-- 针对真实学生用户的专门测试数据
-- ===============================
-- 0. 先创建设备记录(避免外键约束错误)
INSERT INTO ak_devices (id, user_id, device_type, device_name, device_mac, bind_time, status, extra) VALUES
('12345678-1234-5678-9abc-123456789012', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'smartwatch', '华为手表GT3', 'AA:BB:CC:DD:EE:FF', now(), 'active', '{"brand": "华为", "model": "GT3", "firmware": "1.2.3"}');
-- 1. 创建训练计划(避免外键约束错误)
INSERT INTO ak_training_plans (id, user_id, plan_name, description, start_date, end_date, status, created_at) VALUES
('11111111-3333-1111-1111-111111111111', '7bf7378e-a027-473e-97ac-3460ed3f170a', '期中体能训练计划', '为期中体能测试准备的综合训练计划,包含跳绳、俯卧撑、跑步等多项训练内容', '2025-06-11', '2025-06-25', 'active', now());
-- 2. 创建训练计划项目
INSERT INTO ak_training_plan_items (id, plan_id, item_date, activity_type, target_value, unit, description, created_at) VALUES
('47e3bc40-a5d2-4c8e-b9f7-82a1b3c4d5e6', '11111111-3333-1111-1111-111111111111', '2025-06-11', '跳绳', 500, '', '跳绳训练分5组完成每组100次组间休息30秒', now()),
('47e3bc40-a5d2-4c8e-b9f7-82a1b3c4d5e7', '11111111-3333-1111-1111-111111111111', '2025-06-12', '俯卧撑', 30, '', '俯卧撑训练分3组完成每组10次组间休息60秒', now()),
('47e3bc40-a5d2-4c8e-b9f7-82a1b3c4d5e8', '11111111-3333-1111-1111-111111111111', '2025-06-13', '跑步', 3.5, '公里', '跑步训练3.5公里配速控制在8:30/km左右', now());
-- 3. 学生用户的训练记录
INSERT INTO ak_training_records (id, user_id, plan_item_id, device_id, activity_type, start_time, end_time, duration_sec, distance_km, calories, steps, avg_heart_rate, max_heart_rate, data, created_at) VALUES
('550e8400-e29b-41d4-a716-446655440001', '7bf7378e-a027-473e-97ac-3460ed3f170a', '47e3bc40-a5d2-4c8e-b9f7-82a1b3c4d5e6', '12345678-1234-5678-9abc-123456789012', '跳绳', '2025-06-11 07:00:00+08', '2025-06-11 07:15:00+08', 900, 0, 150, 0, 130, 160, '{"total_jumps": 500, "sets": 5, "rest_between_sets": "30sec"}', now()),
('550e8400-e29b-41d4-a716-446655440002', '7bf7378e-a027-473e-97ac-3460ed3f170a', '47e3bc40-a5d2-4c8e-b9f7-82a1b3c4d5e7', '12345678-1234-5678-9abc-123456789012', '俯卧撑', '2025-06-12 18:00:00+08', '2025-06-12 18:10:00+08', 600, 0, 80, 0, 110, 140, '{"total_pushups": 30, "sets": 3, "reps_per_set": 10}', now()),
('550e8400-e29b-41d4-a716-446655440003', '7bf7378e-a027-473e-97ac-3460ed3f170a', '47e3bc40-a5d2-4c8e-b9f7-82a1b3c4d5e8', '12345678-1234-5678-9abc-123456789012', '跑步', '2025-06-13 06:30:00+08', '2025-06-13 07:00:00+08', 1800, 3.5, 240, 4500, 125, 155, '{"pace": "8:30/km", "route": "公园环路", "weather": "多云"}', now()),
('550e8400-e29b-41d4-a716-446655440004', '7bf7378e-a027-473e-97ac-3460ed3f170a', NULL, '12345678-1234-5678-9abc-123456789012', '自由训练', '2025-06-14 07:00:00+08', '2025-06-14 07:45:00+08', 2700, 4.2, 300, 5200, 135, 165, '{"activity": "晨跑+拉伸", "note": "感觉状态很好"}', now());
-- 4. 学生用户的体征数据
INSERT INTO ak_biometric_data (id, user_id, device_id, data_type, value, unit, measured_at, extra) VALUES
('550e8400-e29b-41d4-a716-446655440011', '7bf7378e-a027-473e-97ac-3460ed3f170a', '12345678-1234-5678-9abc-123456789012', 'heart_rate', 125, 'bpm', '2025-06-11 07:08:00+08', '{"context": "跳绳运动中"}'),
('550e8400-e29b-41d4-a716-446655440012', '7bf7378e-a027-473e-97ac-3460ed3f170a', '12345678-1234-5678-9abc-123456789012', 'heart_rate', 68, 'bpm', '2025-06-11 22:00:00+08', '{"context": "睡前静息"}'),
('550e8400-e29b-41d4-a716-446655440013', '7bf7378e-a027-473e-97ac-3460ed3f170a', '12345678-1234-5678-9abc-123456789012', 'sleep', 8.2, 'hours', '2025-06-12 07:00:00+08', '{"deep_sleep": 3.1, "light_sleep": 4.8, "rem_sleep": 0.3}'),
('550e8400-e29b-41d4-a716-446655440014', '7bf7378e-a027-473e-97ac-3460ed3f170a', '12345678-1234-5678-9abc-123456789012', 'steps', 9200, 'count', '2025-06-12 23:59:00+08', '{"daily_goal": 10000, "goal_completion": "92%"}'),
('550e8400-e29b-41d4-a716-446655440015', '7bf7378e-a027-473e-97ac-3460ed3f170a', '12345678-1234-5678-9abc-123456789012', 'weight', 65.2, 'kg', '2025-06-13 07:00:00+08', '{"bmi": 21.3, "body_fat": "12%"}');
-- 5. 学生用户的AI分析报告
INSERT INTO ak_ai_reports (id, user_id, report_type, period_start, period_end, analysis_data, created_at) VALUES
('550e8400-e29b-41d4-a716-446655440021', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'weekly_summary', '2025-06-10', '2025-06-16', '{"total_activities": 6, "total_distance": 13.7, "total_calories": 980, "avg_heart_rate": 127, "fitness_score": 82, "improvement_areas": ["力量训练", "柔韧性"], "achievements": ["完成本周所有训练目标", "跑步配速稳步提升"], "recommendations": ["建议增加力量训练频次每周至少2次", "加入瑜伽或拉伸训练提高柔韧性", "保持当前的跑步训练强度"]}', now()),
('550e8400-e29b-41d4-a716-446655440022', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'technique_analysis', '2025-06-10', '2025-06-10', '{"activity_type": "跑步", "technique_score": 87, "strengths": ["步频稳定", "呼吸节奏好", "姿态端正"], "weaknesses": ["步幅可以更大", "摆臂需要更有力"], "detailed_analysis": {"posture": {"score": 85, "comment": "整体姿态良好,头部保持稳定"}, "breathing": {"score": 90, "comment": "呼吸与步频配合很好"}, "stride": {"score": 82, "comment": "步幅适中,建议可以适当增大"}, "arm_swing": {"score": 78, "comment": "摆臂动作需要更有力度"}}, "training_suggestions": ["练习高抬腿增强步幅", "加强核心力量训练", "注意手臂摆动的力度和节奏"]}', now());
-- 6. 学生用户的通知记录
INSERT INTO ak_notifications (id, user_id, type, title, content, data, is_read, created_at) VALUES
('c3e8f2a0-9b4c-4d6e-8f7a-1b2c3d4e5f61', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'training_reminder', '今日训练提醒', '今天的俯卧撑训练还没完成,加油!', '{"plan_item_id": "47e3bc40-a5d2-4c8e-b9f7-82a1b3c4d5e7", "target": "30次"}', false, now()),
('c3e8f2a0-9b4c-4d6e-8f7a-1b2c3d4e5f62', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'achievement', '新成就解锁!', '连续完成训练计划4天获得"训练达人"称号', '{"achievement_id": "training_master_4days", "points_earned": 80}', false, now()),
('c3e8f2a0-9b4c-4d6e-8f7a-1b2c3d4e5f63', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'report_ready', 'AI分析报告更新', '您的跑步技术分析报告已更新,快来查看详细建议吧!', '{"report_id": "550e8400-e29b-41d4-a716-446655440022"}', true, now()),
('c3e8f2a0-9b4c-4d6e-8f7a-1b2c3d4e5f60', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'social_interaction', '好友互动', '您的好友李小红为您的训练记录点了赞', '{"from_user": "李小红", "action": "like", "target": "训练记录"}', false, now());
-- 7. 学生用户的积分记录
INSERT INTO ak_user_points (id, user_id, total_points, available_points, created_at, updated_at) VALUES
('a7b8c9d0-e1f2-4a3b-9c8d-7e6f5a4b3c21', '7bf7378e-a027-473e-97ac-3460ed3f170a', 1580, 1200, now(), now());
INSERT INTO ak_point_transactions (id, user_id, transaction_type, points, description, reference_id, created_at) VALUES
('b8c9d0e1-f2a3-4b5c-9d8e-7f6a5b4c3d21', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'earn', 50, '完成跑步训练', '550e8400-e29b-41d4-a716-446655440003', now()),
('b8c9d0e1-f2a3-4b5c-9d8e-7f6a5b4c3d22', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'earn', 30, '完成跳绳训练', '550e8400-e29b-41d4-a716-446655440001', now()),
('b8c9d0e1-f2a3-4b5c-9d8e-7f6a5b4c3d23', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'earn', 25, '完成俯卧撑训练', '550e8400-e29b-41d4-a716-446655440002', now()),
('b8c9d0e1-f2a3-4b5c-9d8e-7f6a5b4c3d24', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'earn', 80, '获得训练达人成就', 'training_master_4days', now()),
('b8c9d0e1-f2a3-4b5c-9d8e-7f6a5b4c3d25', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'earn', 100, '完成周训练目标', 'weekly_goal_completed', now()),
('b8c9d0e1-f2a3-4b5c-9d8e-7f6a5b4c3d26', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'spend', -180, '兑换运动T恤', 'reward_tshirt_001', now());
-- ===============================
-- 针对真实教师用户的专门测试数据
-- ===============================
-- 8. 教师用户的教学资源
INSERT INTO ak_teaching_resources (id, teacher_id, title, description, content_type, content_url, tags, visibility, created_at) VALUES
('c9d0e1f2-a3b4-4c5d-9e8f-7a6b5c4d3e21', 'eed3824b-bba1-4309-8048-19d17367c084', '跑步技术教学视频', '专业的跑步姿势和呼吸技巧讲解,适合初学者和进阶学员', 'video', '/resources/videos/running_technique_basics.mp4', '["跑步", "技术", "姿势", "呼吸"]', 'public', now()),
('c9d0e1f2-a3b4-4c5d-9e8f-7a6b5c4d3e22', 'eed3824b-bba1-4309-8048-19d17367c084', '体能训练计划模板', '针对不同体能水平学生的训练计划模板,包含详细的训练内容和进度安排', 'document', '/resources/docs/fitness_plan_template.pdf', '["体能", "训练计划", "模板"]', 'public', now()),
('c9d0e1f2-a3b4-4c5d-9e8f-7a6b5c4d3e23', 'eed3824b-bba1-4309-8048-19d17367c084', '运动伤害预防指南', '常见运动伤害的预防方法和处理建议,帮助学生安全运动', 'document', '/resources/docs/injury_prevention_guide.pdf', '["安全", "伤害预防", "运动医学"]', 'public', now()),
('c9d0e1f2-a3b4-4c5d-9e8f-7a6b5c4d3e24', 'eed3824b-bba1-4309-8048-19d17367c084', '力量训练示范', '各种力量训练动作的标准示范,包含俯卧撑、仰卧起坐等基础动作', 'video', '/resources/videos/strength_training_demo.mp4', '["力量训练", "示范", "基础动作"]', 'public', now());
-- 9. 教师布置的作业
INSERT INTO ak_assignments (id, teacher_id, title, description, assignment_type, due_date, max_score, requirements, created_at) VALUES
('d0e1f2a3-b4c5-4d6e-9f8a-7b6c5d4e3f21', 'eed3824b-bba1-4309-8048-19d17367c084', '期中体能测试准备', '为期中体能测试做准备,完成指定的训练项目', 'fitness_test', '2025-06-20', 100, '{"type": "50米冲刺", "target": "每日3次", "standard": "男生<8秒女生<9秒"}', now()),
('d0e1f2a3-b4c5-4d6e-9f8a-7b6c5d4e3f22', 'eed3824b-bba1-4309-8048-19d17367c084', '本周跑步训练记录', '记录本周的跑步训练情况,包括距离、时间、心率等数据', 'training_log', '2025-06-18', 50, '{"min_distance": 3, "min_frequency": 3, "required_data": ["distance", "time", "heart_rate"]}', now());
-- 10. 学生作业提交记录
INSERT INTO ak_assignment_submissions (id, assignment_id, student_id, submission_data, score, feedback, status, submitted_at) VALUES
('e1f2a3b4-c5d6-4e7f-9a8b-7c6d5e4f3a21', 'd0e1f2a3-b4c5-4d6e-9f8a-7b6c5d4e3f21', '7bf7378e-a027-473e-97ac-3460ed3f170a', '{"date": "2025-06-17", "50m_sprint": ["7.7s", "7.5s", "7.8s"], "pushups": 35, "situps": 45, "heart_rate_avg": 128}', 85, '50米成绩有明显改善继续保持力量训练表现优秀。', 'graded', now()),
('e1f2a3b4-c5d6-4e7f-9a8b-7c6d5e4f3a22', 'd0e1f2a3-b4c5-4d6e-9f8a-7b6c5d4e3f22', '7bf7378e-a027-473e-97ac-3460ed3f170a', '{"week_summary": {"total_runs": 4, "total_distance": 14.2, "avg_pace": "8:15/km", "avg_heart_rate": 132}, "daily_records": [{"date": "2025-06-11", "distance": 3.5, "time": 1800, "heart_rate": 125}, {"date": "2025-06-13", "distance": 4.2, "time": 2100, "heart_rate": 135}]}', 48, '训练记录详细完整,跑步频次和距离都达到要求,继续保持!', 'graded', now());
-- 11. 教师的课程安排
INSERT INTO ak_class_schedules (id, teacher_id, class_name, subject, start_time, end_time, location, description, created_at) VALUES
('f2a3b4c5-d6e7-4f8a-9b8c-7d6e5f4a3b21', 'eed3824b-bba1-4309-8048-19d17367c084', '高一(1)班', '体育课', '2025-06-17 08:00:00+08', '2025-06-17 08:45:00+08', '操场', '50米短跑训练与测试', now()),
('f2a3b4c5-d6e7-4f8a-9b8c-7d6e5f4a3b22', 'eed3824b-bba1-4309-8048-19d17367c084', '高一(2)班', '体育课', '2025-06-17 09:00:00+08', '2025-06-17 09:45:00+08', '体育馆', '力量训练基础动作教学', now()),
('f2a3b4c5-d6e7-4f8a-9b8c-7d6e5f4a3b23', 'eed3824b-bba1-4309-8048-19d17367c084', '高一(1)班', '体育课', '2025-06-19 08:00:00+08', '2025-06-19 08:45:00+08', '操场', '长跑耐力训练', now());
-- 12. 师生互动记录
INSERT INTO ak_user_interactions (id, user_id, target_id, interaction_type, content, created_at) VALUES
('a3b4c5d6-e7f8-4a9b-8c7d-6e5f4a3b2c21', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'eed3824b-bba1-4309-8048-19d17367c084', 'question', '老师,我在跑步时总是很快就气喘吁吁,有什么改善的方法吗?', now()),
('a3b4c5d6-e7f8-4a9b-8c7d-6e5f4a3b2c22', 'eed3824b-bba1-4309-8048-19d17367c084', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'answer', '这说明你的心肺耐力还需要加强。建议你先降低跑步配速,采用慢跑的方式逐步提高,同时注意呼吸节奏。', now()),
('a3b4c5d6-e7f8-4a9b-8c7d-6e5f4a3b2c23', 'eed3824b-bba1-4309-8048-19d17367c084', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'praise', '你这周的训练表现很棒50米成绩有明显提升继续保持这个训练强度。', now()),
('a3b4c5d6-e7f8-4a9b-8c7d-6e5f4a3b2c24', '7bf7378e-a027-473e-97ac-3460ed3f170a', 'c9d0e1f2-a3b4-4c5d-9e8f-7a6b5c4d3e24', 'comment', '老师的跑步技术示范视频很有帮助,我按照要求练习后确实有改善!', now());
-- ===============================
-- 数据验证查询
-- ===============================
-- 查询学生用户的训练记录
SELECT
tr.activity_type,
tr.duration_sec,
tr.distance_km,
tr.calories,
tr.created_at
FROM ak_training_records tr
WHERE tr.user_id = '7bf7378e-a027-473e-97ac-3460ed3f170a'
ORDER BY tr.created_at DESC;
-- 查询学生用户的体征数据
SELECT
bd.data_type,
bd.value,
bd.unit,
bd.measured_at
FROM ak_biometric_data bd
WHERE bd.user_id = '7bf7378e-a027-473e-97ac-3460ed3f170a'
ORDER BY bd.measured_at DESC;
-- 查询学生用户的AI报告
SELECT
ar.report_type,
ar.period_start,
ar.period_end,
ar.created_at
FROM ak_ai_reports ar
WHERE ar.user_id = '7bf7378e-a027-473e-97ac-3460ed3f170a'
ORDER BY ar.created_at DESC;
-- 查询学生用户的通知
SELECT
n.type,
n.title,
n.content,
n.is_read,
n.created_at
FROM ak_notifications n
WHERE n.user_id = '7bf7378e-a027-473e-97ac-3460ed3f170a'
ORDER BY n.created_at DESC;
-- 查询学生用户的积分情况
SELECT
SUM(CASE WHEN pt.transaction_type = 'earn' THEN pt.points ELSE -pt.points END) as total_points
FROM ak_point_transactions pt
WHERE pt.user_id = '7bf7378e-a027-473e-97ac-3460ed3f170a';
-- 查询教师用户的教学资源
SELECT
tr.title,
tr.description,
tr.content_type,
tr.created_at
FROM ak_teaching_resources tr
WHERE tr.teacher_id = 'eed3824b-bba1-4309-8048-19d17367c084'
ORDER BY tr.created_at DESC;
-- 查询教师用户布置的作业
SELECT
a.title,
a.description,
a.assignment_type,
a.due_date,
a.created_at
FROM ak_assignments a
WHERE a.teacher_id = 'eed3824b-bba1-4309-8048-19d17367c084'
ORDER BY a.created_at DESC;
-- 查询教师用户的课程安排
SELECT
cs.class_name,
cs.subject,
cs.start_time,
cs.end_time,
cs.location,
cs.description
FROM ak_class_schedules cs
WHERE cs.teacher_id = 'eed3824b-bba1-4309-8048-19d17367c084'
ORDER BY cs.start_time DESC;