From dae12d389567fb9f4bd05ee3dbc60c9af91735e9 Mon Sep 17 00:00:00 2001 From: xiaoban Date: Mon, 25 May 2026 08:00:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AF=8F=E6=97=A5=E6=80=BB=E7=BB=93=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=2020260525?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vala_skill_hashes | 1 + memory/2026-05-24.md | 45 +++++++++++++++++++++++++++++++++++ output/studycourse_32009.html | 2 +- tmp_daily_summary.md | 11 +++++++++ 4 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 tmp_daily_summary.md diff --git a/.vala_skill_hashes b/.vala_skill_hashes index 3e21391..7bc9c80 100644 --- a/.vala_skill_hashes +++ b/.vala_skill_hashes @@ -8,3 +8,4 @@ vala_git_workspace_backup 4cf352bec88fe84af065ba1ffcbb06647b77df0e01860faaf0bca9 cron-schedule b1879fa59d60e3d99cea1138674f7abac84a4aecd32743b801d41bfd6ed7181d study-analysis 33217dc132073ecd47b921800834f6df89494da9e7708fa90f15b3de7742e37f studytime-analysis fefb11a0c2fb7085a47c626ec6b72f8fcafee797dc3340abea09139d31eb7e7b +studycourse-analysis 467051001a8a087aa0526f0102593e0b0ed563cb4627f5f660dc718efc29699b diff --git a/memory/2026-05-24.md b/memory/2026-05-24.md index fbbf943..7962c22 100644 --- a/memory/2026-05-24.md +++ b/memory/2026-05-24.md @@ -85,3 +85,48 @@ - `skills/studytime-analysis/scripts/studytime_analysis.py` — 重写 `fetch_chapter_info_map()`,新增全局 unit_index 计算;HTML 模板更新为 Level/Unit/Lesson 三列 - 已为角色 32009(zyl)重新生成 HTML 并发送 - 已同步 Git + SkillHub + +## 新建技能: studycourse-analysis (2026-05-24) + +[刘庆逊提出] 创建角色上课情况分析技能,从四维度分析角色学习数据。 + +### 技能结构 +- `skills/studycourse-analysis/SKILL.md` — 技能定义 +- `skills/studycourse-analysis/scripts/studycourse_analysis.py` — Python 分析脚本 + +### 四步分析 +1. **基础信息**:角色姓名/年龄/账号ID/手机号后4位/注册时间/购买渠道/设备/首末次完课 +2. **完课耗时**:平均值/中位数、异常检测(<10min / >20min)、前后半段趋势 +3. **中互动正确率**:Perfect/Good/Oops/Pass/Failed 占比和趋势 +4. **知识巩固**:完成率、正确率得分分布 + +### 数据源 +| 类型 | 库 | 表 | 用途 | +|------|-----|-----|------| +| MySQL vala_user | vala_app_character | 角色信息、purchase_season_package | +| MySQL vala_user | vala_app_account | 下载渠道、手机号、注册时间 | +| MySQL vala | vala_game_chapter + season_package | 章节映射 | +| PostgreSQL vala | user_course_detail | 课程激活/到期时间 | +| PostgreSQL vala | user_login_app_info | 设备信息 | +| PostgreSQL vala | user_chapter_play_record_0~7 | 完课记录(play_status=1) | +| PostgreSQL vala | user_component_play_record_0~7 | 中互动记录(play_result) | +| PostgreSQL vala | user_chapter_settlement_data_0~7 | 巩固数据(settlement_data JSON) | + +### 关键发现 +- **设备信息**来自 `user_login_app_info`(device_name/model/type/os_info/city) +- **购买渠道**来自 `vala_app_account.download_channel` + `key_from` +- **巩固判断**:`settlement_data.practiceSkillPoint > 0` 视为已完成(`isPractice` 字段始终为 false,不可靠) +- **play_result 六种值**:Perfect/Good/Oops/Pass/Failed/None,其中 Pass/None 不属于用户主动互动结果 + +### 技术要点 +- HTML 模板使用 f-string 时,CSS 中的 `{` 必须双写 `{{`,且不能在 f-string 内做字符串拼接(会打断 f-string) +- 年龄从 birthday(varchar "YYYY-MM-DD")计算,非 DATE 类型 +- 手机号在 MySQL 已脱敏(如 186****1625),直接取后4位 + +### 已测试角色 +- **32009 (zyl)**:26 条完课,651 条中互动(Perfect 82.6%、Good 2.9%),26 节巩固全部满分。课程 A2,Apple App Store 购买,渠道 newmedia-daren-xhs-宣儿麻麻。设备小课屏E3。学习时间 2026-04-24 ~ 2026-05-24。 + +### 同步 +- 已推送到 SkillHub(`studycourse-analysis.xiaoban`) +- 已 commit 8648b7b 到 Git 远程仓库 +- 已通知 Cris(李若松) \ No newline at end of file diff --git a/output/studycourse_32009.html b/output/studycourse_32009.html index fc1e43a..cceada1 100644 --- a/output/studycourse_32009.html +++ b/output/studycourse_32009.html @@ -150,6 +150,6 @@ tr:hover td{background:#f0f7ff}

总结

-
分析时间:2026-05-24 11:38 | 完课:26 条 | 中互动:651 条 | 巩固:26 条
+
分析时间:2026-05-24 11:44 | 完课:26 条 | 中互动:651 条 | 巩固:26 条
\ No newline at end of file diff --git a/tmp_daily_summary.md b/tmp_daily_summary.md new file mode 100644 index 0000000..d57b4c5 --- /dev/null +++ b/tmp_daily_summary.md @@ -0,0 +1,11 @@ +=== 每日总结 20260525 === +## 昨日关键进展 +- 2343、2344:无完课记录(play_status=2,未完成) +- 25976:265条,246条在W16周一天完成(A2批量),疑似系统批量标记 +**数据源(新增)**: +- `skills/studytime-analysis/scripts/studytime_analysis.py`:新增 MySQL 连接函数 `get_mysql_connection()` 和 `fetch_role_info(role_id)`,更新 `format_report()` 输出基本角色信息 +### Unit 显示修复: 季度名称 → 全局单元编号 (2026-05-24) +**关键 Bug**:初版按 `season_of_quarter` 分组时 A1 和 A2 混在一起,因为相同季度值合并了。修复:改为按 `(level, season_of_quarter)` 分组。 +- `skills/studytime-analysis/scripts/studytime_analysis.py` — 重写 `fetch_chapter_info_map()`,新增全局 unit_index 计算;HTML 模板更新为 Level/Unit/Lesson 三列 +4. **知识巩固**:完成率、正确率得分分布 +- **巩固判断**:`settlement_data.practiceSkillPoint > 0` 视为已完成(`isPractice` 字段始终为 false,不可靠)