---
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` 变量控制查询的课时范围，按需修改。
