Files
012-kaopeilian/backend/scripts/add_exam_and_mistakes_demo_data.sql
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
2026-01-24 19:33:28 +08:00

291 lines
15 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.
-- 模拟数据脚本:考试成绩和错题记录
-- 创建时间2025-10-12
-- 说明:为成绩报告和错题本页面添加演示数据
-- 场景:轻医美连锁品牌员工培训考试
USE kaopeilian;
-- ========================================
-- 一、插入考试记录(包含三轮得分)
-- ========================================
-- 用户5consultant_001的考试记录
-- 考试1皮肤生理学基础完成三轮
INSERT INTO exams (
user_id, course_id, exam_name, question_count, total_score, pass_score,
start_time, end_time, duration_minutes,
round1_score, round2_score, round3_score, score, is_passed, status
) VALUES (
5, 1, '皮肤生理学基础 - 动态考试', 10, 100.0, 60.0,
'2025-10-05 09:00:00', '2025-10-05 10:30:00', 60,
70, 85, 100, 100, TRUE, 'submitted'
);
-- 考试2医美产品知识与应用完成三轮
INSERT INTO exams (
user_id, course_id, exam_name, question_count, total_score, pass_score,
start_time, end_time, duration_minutes,
round1_score, round2_score, round3_score, score, is_passed, status
) VALUES (
5, 2, '医美产品知识与应用 - 动态考试', 10, 100.0, 60.0,
'2025-10-06 14:00:00', '2025-10-06 15:20:00', 60,
65, 80, 90, 90, TRUE, 'submitted'
);
-- 考试3美容仪器操作与维护完成两轮
INSERT INTO exams (
user_id, course_id, exam_name, question_count, total_score, pass_score,
start_time, end_time, duration_minutes,
round1_score, round2_score, round3_score, score, is_passed, status
) VALUES (
5, 3, '美容仪器操作与维护 - 动态考试', 10, 100.0, 60.0,
'2025-10-07 10:00:00', '2025-10-07 11:15:00', 60,
80, 95, NULL, 95, TRUE, 'submitted'
);
-- 考试4医美项目介绍与咨询完成一轮
INSERT INTO exams (
user_id, course_id, exam_name, question_count, total_score, pass_score,
start_time, end_time, duration_minutes,
round1_score, round2_score, round3_score, score, is_passed, status
) VALUES (
5, 4, '医美项目介绍与咨询 - 动态考试', 10, 100.0, 60.0,
'2025-10-08 15:00:00', '2025-10-08 15:45:00', 60,
55, NULL, NULL, 55, FALSE, 'submitted'
);
-- 考试5轻医美销售技巧完成三轮
INSERT INTO exams (
user_id, course_id, exam_name, question_count, total_score, pass_score,
start_time, end_time, duration_minutes,
round1_score, round2_score, round3_score, score, is_passed, status
) VALUES (
5, 5, '轻医美销售技巧 - 动态考试', 10, 100.0, 60.0,
'2025-10-09 09:30:00', '2025-10-09 11:00:00', 60,
75, 90, 100, 100, TRUE, 'submitted'
);
-- 考试6客户服务与投诉处理完成三轮
INSERT INTO exams (
user_id, course_id, exam_name, question_count, total_score, pass_score,
start_time, end_time, duration_minutes,
round1_score, round2_score, round3_score, score, is_passed, status
) VALUES (
5, 6, '客户服务与投诉处理 - 动态考试', 10, 100.0, 60.0,
'2025-10-10 14:00:00', '2025-10-10 15:30:00', 60,
85, 95, 100, 100, TRUE, 'submitted'
);
-- 考试7社媒营销与私域运营完成两轮
INSERT INTO exams (
user_id, course_id, exam_name, question_count, total_score, pass_score,
start_time, end_time, duration_minutes,
round1_score, round2_score, round3_score, score, is_passed, status
) VALUES (
5, 7, '社媒营销与私域运营 - 动态考试', 10, 100.0, 60.0,
'2025-10-11 10:00:00', '2025-10-11 11:10:00', 60,
60, 75, NULL, 75, TRUE, 'submitted'
);
-- 考试8卫生消毒与感染控制完成三轮最近的考试
INSERT INTO exams (
user_id, course_id, exam_name, question_count, total_score, pass_score,
start_time, end_time, duration_minutes,
round1_score, round2_score, round3_score, score, is_passed, status
) VALUES (
5, 9, '卫生消毒与感染控制 - 动态考试', 10, 100.0, 60.0,
'2025-10-12 09:00:00', '2025-10-12 10:20:00', 60,
90, 100, 100, 100, TRUE, 'submitted'
);
-- ========================================
-- 二、插入错题记录
-- ========================================
-- 获取刚插入的考试ID使用最后8条记录
SET @exam1_id = (SELECT id FROM exams WHERE user_id=5 AND course_id=1 ORDER BY id DESC LIMIT 1);
SET @exam2_id = (SELECT id FROM exams WHERE user_id=5 AND course_id=2 ORDER BY id DESC LIMIT 1);
SET @exam4_id = (SELECT id FROM exams WHERE user_id=5 AND course_id=4 ORDER BY id DESC LIMIT 1);
SET @exam5_id = (SELECT id FROM exams WHERE user_id=5 AND course_id=5 ORDER BY id DESC LIMIT 1);
SET @exam7_id = (SELECT id FROM exams WHERE user_id=5 AND course_id=7 ORDER BY id DESC LIMIT 1);
-- 考试1的错题皮肤生理学基础 - 第一轮3道错题
INSERT INTO exam_mistakes (
user_id, exam_id, question_content, correct_answer, user_answer, question_type, created_at
) VALUES
(5, @exam1_id, '人体皮肤分为哪几层?', '表皮层、真皮层、皮下组织三层', '表皮和真皮两层', 'essay', '2025-10-05 09:15:00'),
(5, @exam1_id, '关于玻尿酸的作用,以下哪项描述是正确的?\nA. 只能用于填充\nB. 具有保湿和填充双重作用\nC. 不能用于面部\nD. 只适合年轻人使用', 'B', 'A', 'single', '2025-10-05 09:25:00'),
(5, @exam1_id, '敏感肌肤的客户可以使用含酒精的护肤品', '错误', '正确', 'judge', '2025-10-05 09:35:00');
-- 考试2的错题医美产品知识与应用 - 第一轮4道错题
INSERT INTO exam_mistakes (
user_id, exam_id, question_content, correct_answer, user_answer, question_type, created_at
) VALUES
(5, @exam2_id, '光子嫩肤的主要功效包括哪些?(多选)\nA. 美白淡斑\nB. 收缩毛孔\nC. 去除皱纹\nD. 改善红血丝', 'A,B,D', 'A,B,C', 'multiple', '2025-10-06 14:10:00'),
(5, @exam2_id, '水光针的主要成分是___', '透明质酸(玻尿酸)', '胶原蛋白', 'blank', '2025-10-06 14:20:00'),
(5, @exam2_id, '热玛吉适用于所有肤质', '正确', '错误', 'judge', '2025-10-06 14:30:00'),
(5, @exam2_id, '超声刀的作用原理是什么?', '通过高强度聚焦超声波能量作用于筋膜层,促进胶原蛋白再生,达到紧致提拉效果', '利用超声波震动按摩皮肤', 'essay', '2025-10-06 14:40:00');
-- 考试4的错题医美项目介绍与咨询 - 第一轮5道错题未通过
INSERT INTO exam_mistakes (
user_id, exam_id, question_content, correct_answer, user_answer, question_type, created_at
) VALUES
(5, @exam4_id, '面部提升项目适合的年龄段是?\nA. 25岁以下\nB. 25-35岁\nC. 35岁以上\nD. 所有年龄段', 'C', 'B', 'single', '2025-10-08 15:10:00'),
(5, @exam4_id, '皮秒激光可以治疗哪些皮肤问题?(多选)\nA. 色斑\nB. 痘印\nC. 毛孔粗大\nD. 皮肤松弛', 'A,B,C', 'A,B', 'multiple', '2025-10-08 15:15:00'),
(5, @exam4_id, '果酸焕肤后需要严格防晒', '正确', '错误', 'judge', '2025-10-08 15:20:00'),
(5, @exam4_id, '光子嫩肤一个疗程通常需要___次治疗间隔___周', '3-5次3-4周', '5-8次2周', 'blank', '2025-10-08 15:25:00'),
(5, @exam4_id, '请简述如何向客户介绍肉毒素除皱项目的优势和注意事项', '优势:快速见效、微创无痕、可逆性强、针对性强。注意事项:需选择正规品牌、术后避免按摩、孕妇和哺乳期禁用、过敏体质需提前告知', '肉毒素可以除皱,效果很好,没有副作用', 'essay', '2025-10-08 15:30:00');
-- 考试5的错题轻医美销售技巧 - 第一轮3道错题
INSERT INTO exam_mistakes (
user_id, exam_id, question_content, correct_answer, user_answer, question_type, created_at
) VALUES
(5, @exam5_id, '在销售咨询中FABE销售法则中的F代表\nA. Features特征\nB. Functions功能\nC. Facts事实\nD. Feelings感受', 'A', 'C', 'single', '2025-10-09 09:45:00'),
(5, @exam5_id, '有效的销售话术应该具备哪些特点?(多选)\nA. 专业准确\nB. 简单易懂\nC. 夸大效果\nD. 针对性强', 'A,B,D', 'A,B', 'multiple', '2025-10-09 09:55:00'),
(5, @exam5_id, '客户提出价格异议时第一步应该是___客户的关注点', '倾听和理解', '立即降价', 'blank', '2025-10-09 10:05:00');
-- 考试7的错题社媒营销与私域运营 - 第一轮4道错题
INSERT INTO exam_mistakes (
user_id, exam_id, question_content, correct_answer, user_answer, question_type, created_at
) VALUES
(5, @exam7_id, '私域流量运营的核心是?\nA. 大量加粉\nB. 建立信任关系\nC. 频繁推销\nD. 打折促销', 'B', 'A', 'single', '2025-10-11 10:15:00'),
(5, @exam7_id, '短视频内容策划应遵循哪些原则?(多选)\nA. 垂直专业\nB. 持续更新\nC. 互动性强\nD. 纯广告推广', 'A,B,C', 'A,B', 'multiple', '2025-10-11 10:25:00'),
(5, @exam7_id, '企业微信的客户标签管理可以提升运营效率', '正确', '错误', 'judge', '2025-10-11 10:35:00'),
(5, @exam7_id, '请简述如何设计一个有效的会员转化路径', '步骤1.引流获客(短视频/直播2.建立信任专业内容分享3.激活需求(案例展示/体验活动4.促成转化(限时优惠/专属福利5.持续运营(定期回访/会员权益)', '做活动、发优惠券', 'essay', '2025-10-11 10:45:00');
-- ========================================
-- 三、插入更多用户的考试数据(丰富数据)
-- ========================================
-- 用户6其他美容顾问的考试记录
INSERT INTO exams (
user_id, course_id, exam_name, question_count, total_score, pass_score,
start_time, end_time, duration_minutes,
round1_score, round2_score, round3_score, score, is_passed, status
) VALUES
(6, 1, '皮肤生理学基础 - 动态考试', 10, 100.0, 60.0,
'2025-10-03 10:00:00', '2025-10-03 11:20:00', 60,
88, 95, 100, 100, TRUE, 'submitted'),
(6, 2, '医美产品知识与应用 - 动态考试', 10, 100.0, 60.0,
'2025-10-04 14:30:00', '2025-10-04 15:40:00', 60,
92, 100, NULL, 100, TRUE, 'submitted'),
(6, 6, '客户服务与投诉处理 - 动态考试', 10, 100.0, 60.0,
'2025-10-07 09:00:00', '2025-10-07 10:15:00', 60,
78, 90, 95, 95, TRUE, 'submitted');
-- 用户7的考试记录
INSERT INTO exams (
user_id, course_id, exam_name, question_count, total_score, pass_score,
start_time, end_time, duration_minutes,
round1_score, round2_score, round3_score, score, is_passed, status
) VALUES
(7, 3, '美容仪器操作与维护 - 动态考试', 10, 100.0, 60.0,
'2025-10-05 11:00:00', '2025-10-05 12:10:00', 60,
82, 90, 100, 100, TRUE, 'submitted'),
(7, 5, '轻医美销售技巧 - 动态考试', 10, 100.0, 60.0,
'2025-10-09 15:00:00', '2025-10-09 16:15:00', 60,
70, 85, 90, 90, TRUE, 'submitted');
-- ========================================
-- 四、为新增考试添加对应的错题记录
-- ========================================
-- 用户6的错题皮肤生理学基础 - 第一轮1道错题
SET @exam6_1 = (SELECT id FROM exams WHERE user_id=6 AND course_id=1 ORDER BY id DESC LIMIT 1);
INSERT INTO exam_mistakes (
user_id, exam_id, question_content, correct_answer, user_answer, question_type, created_at
) VALUES
(6, @exam6_1, '皮肤的PH值正常范围是\nA. 3.5-4.5\nB. 4.5-6.5\nC. 6.5-7.5\nD. 7.5-8.5', 'B', 'C', 'single', '2025-10-03 10:20:00');
-- 用户6的错题医美产品知识与应用 - 第一轮1道错题
SET @exam6_2 = (SELECT id FROM exams WHERE user_id=6 AND course_id=2 ORDER BY id DESC LIMIT 1);
INSERT INTO exam_mistakes (
user_id, exam_id, question_content, correct_answer, user_answer, question_type, created_at
) VALUES
(6, @exam6_2, '玻尿酸注射后___小时内不能沾水', '24', '12', 'blank', '2025-10-04 14:50:00');
-- 用户6的错题客户服务与投诉处理 - 第一轮2道错题
SET @exam6_3 = (SELECT id FROM exams WHERE user_id=6 AND course_id=6 ORDER BY id DESC LIMIT 1);
INSERT INTO exam_mistakes (
user_id, exam_id, question_content, correct_answer, user_answer, question_type, created_at
) VALUES
(6, @exam6_3, '处理客户投诉的黄金原则是?(多选)\nA. 及时回应\nB. 真诚道歉\nC. 快速解决\nD. 推卸责任', 'A,B,C', 'A,B', 'multiple', '2025-10-07 09:20:00'),
(6, @exam6_3, '客户投诉时应该先___再___', '倾听,解决', '解释,辩解', 'blank', '2025-10-07 09:30:00');
-- 用户7的错题美容仪器操作与维护 - 第一轮2道错题
SET @exam7_1 = (SELECT id FROM exams WHERE user_id=7 AND course_id=3 ORDER BY id DESC LIMIT 1);
INSERT INTO exam_mistakes (
user_id, exam_id, question_content, correct_answer, user_answer, question_type, created_at
) VALUES
(7, @exam7_1, '射频仪器的工作原理是?\nA. 激光热效应\nB. 电磁波热效应\nC. 超声波振动\nD. 机械摩擦', 'B', 'A', 'single', '2025-10-05 11:20:00'),
(7, @exam7_1, '仪器消毒应该在每次使用___进行', '前后', '', 'blank', '2025-10-05 11:35:00');
-- 用户7的错题轻医美销售技巧 - 第一轮3道错题
SET @exam7_2 = (SELECT id FROM exams WHERE user_id=7 AND course_id=5 ORDER BY id DESC LIMIT 1);
INSERT INTO exam_mistakes (
user_id, exam_id, question_content, correct_answer, user_answer, question_type, created_at
) VALUES
(7, @exam7_2, '成交话术中,假设成交法的核心是?\nA. 直接要求客户付款\nB. 假设客户已经同意购买\nC. 给客户压力\nD. 降价促销', 'B', 'A', 'single', '2025-10-09 15:25:00'),
(7, @exam7_2, '顾客异议处理时应避免的做法包括?(多选)\nA. 打断顾客说话\nB. 否认顾客观点\nC. 耐心倾听\nD. 与顾客争辩', 'A,B,D', 'A,B', 'multiple', '2025-10-09 15:35:00'),
(7, @exam7_2, '请列举3种常用的促成交易的方法', '1.假设成交法 2.二选一法 3.优惠刺激法 4.紧迫感营造法任选3种', '降价、送礼品', 'essay', '2025-10-09 15:45:00');
-- ========================================
-- 五、验证插入结果
-- ========================================
-- 统计考试记录
SELECT
'考试记录统计' as category,
COUNT(*) as total,
COUNT(round1_score) as has_round1,
COUNT(round2_score) as has_round2,
COUNT(round3_score) as has_round3,
AVG(round1_score) as avg_round1_score
FROM exams
WHERE user_id IN (5, 6, 7);
-- 统计错题记录
SELECT
'错题记录统计' as category,
COUNT(*) as total,
COUNT(DISTINCT exam_id) as distinct_exams,
COUNT(DISTINCT question_type) as distinct_types
FROM exam_mistakes
WHERE user_id IN (5, 6, 7);
-- 按课程统计错题
SELECT
c.name as course_name,
COUNT(em.id) as mistake_count
FROM exam_mistakes em
JOIN exams e ON em.exam_id = e.id
JOIN courses c ON e.course_id = c.id
WHERE em.user_id IN (5, 6, 7)
GROUP BY c.id, c.name
ORDER BY mistake_count DESC;
-- 按题型统计错题
SELECT
question_type,
COUNT(*) as count
FROM exam_mistakes
WHERE user_id IN (5, 6, 7) AND question_type IS NOT NULL
GROUP BY question_type
ORDER BY count DESC;
-- 显示最近5条考试记录包含三轮得分
SELECT
id,
exam_name,
round1_score,
round2_score,
round3_score,
score,
is_passed,
DATE_FORMAT(start_time, '%Y-%m-%d %H:%i') as start_time
FROM exams
WHERE user_id = 5
ORDER BY start_time DESC
LIMIT 5;