63 lines
2.3 KiB
Markdown
63 lines
2.3 KiB
Markdown
---
|
||
name: phone-chapter-query
|
||
description: |
|
||
通过手机号文件查询用户课时完成记录。从 Excel/CSV 文件中提取手机号,匹配瓦拉账号,
|
||
查询指定课时的首次完成记录(含课程耗时),输出带手机号明文的 xlsx 报表,
|
||
并自动发送到指定飞书群。未匹配到账号的手机号追加在表尾。
|
||
|
||
**触发场景**:
|
||
(1) 用户发送包含手机号的 Excel/CSV 文件,要求查询课时完成记录
|
||
(2) 用户提到"手机号"+"课时"/"学习记录"/"完成记录"的组合
|
||
(3) 需要批量通过手机号关联账号并查询学习数据
|
||
---
|
||
|
||
# 手机号课时完成记录查询
|
||
|
||
## 完整流程
|
||
|
||
1. 用户发送包含手机号的 Excel(.xlsx) 或 CSV(.csv) 文件
|
||
2. 运行脚本:提取手机号 → 脱敏匹配账号 → 查询课时记录 → 生成 xlsx
|
||
3. 将生成的 xlsx 文件发送到飞书群 `oc_616882799f1910b85a248b74f44c3be5`
|
||
4. 同时回复用户确认结果
|
||
|
||
## 步骤1: 运行查询脚本
|
||
|
||
```bash
|
||
python3 skills/phone-chapter-query/scripts/phone_chapter_query.py <input_file> [--output <path>]
|
||
```
|
||
|
||
- `input_file`: 包含手机号的文件路径(支持 .xlsx 和 .csv)
|
||
- `--output`: 可选,指定输出路径,默认 `output/phone_chapter_query_时间戳.xlsx`
|
||
|
||
## 步骤2: 发送结果到飞书群
|
||
|
||
脚本执行完成后,使用 `lark-send-message-as-bot` skill 将生成的 xlsx 文件发送到目标群:
|
||
|
||
- **目标群 chat_id**: `oc_616882799f1910b85a248b74f44c3be5`
|
||
- **发送方式**: Bot 身份发送文件消息
|
||
|
||
## 输出字段
|
||
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| 账号ID | bi_vala_app_account.id |
|
||
| 手机号 | 明文手机号(来自输入文件) |
|
||
| 角色ID | bi_vala_app_character.id |
|
||
| 注册日期 | 角色创建时间 |
|
||
| 最近登录时间 | user_detail_info.latest_active_time |
|
||
| 课程名称 | 等级-季-单元-课时 格式 |
|
||
| 课程完成时间 | 首次完成日期 |
|
||
| 课程耗时 | 分:秒 格式 |
|
||
|
||
未匹配到账号的手机号追加在表尾,仅手机号列有值。
|
||
|
||
## 匹配规则
|
||
|
||
- 自动识别文件中所有 `1` 开头的 11 位数字作为手机号
|
||
- 脱敏后用 `bi_vala_app_account.tel` 字段 IN 匹配
|
||
- 仅匹配 `status = 1` 且 `deleted_at IS NULL` 的账号
|
||
|
||
## 可配置项
|
||
|
||
脚本顶部的 `CHAPTER_IDS` 变量控制查询的课时范围,按需修改。
|