2.8 KiB
2.8 KiB
| name | version | description |
|---|---|---|
| user-info | 2.0.0 | Query complete user info from online databases — resolve account/role/phone/ticket ID to unified account profile with tickets, characters, learning progress and activity levels. |
user-info — 用户信息查询
When to Use
用户提到以下任意一种请求时触发:
- "帮我查询一下账号 [ID] 的信息"
- "查一下角色 [ID] 的信息"
- "查一下手机号 [号码] 的信息"
- "查一下订单号 [ID] 的信息"
- "查一下用户信息" / "用户信息查询"
Core Rules
- 从用户输入中提取查询条件(账号ID / 角色ID / 手机号 / 订单号),数字型优先匹配 ID,11 位数字优先匹配手机号
- 调用
scripts/query_user_info.py执行查询,传入对应参数 - 将脚本输出的格式化结果原样返回给用户
- 若脚本报错(如未找到账号),将错误信息如实反馈给用户
- 所有查询均为只读操作,不修改任何数据
执行命令
python3 skills/user-info/scripts/query_user_info.py --account-id <ID>
python3 skills/user-info/scripts/query_user_info.py --role-id <ID>
python3 skills/user-info/scripts/query_user_info.py --phone <号码>
python3 skills/user-info/scripts/query_user_info.py --order-id <ID>
支持 --json 参数输出 JSON 格式。
查询内容
脚本自动完成以下五步查询并格式化输出:
| 步骤 | 内容 |
|---|---|
| 第1步 | 解析输入 → 定位唯一 account_id |
| 第2步 | 账号基本信息:注册时间、最近活跃、角色数、赛季通票数、下载渠道、注册来源 |
| 第3步 | 全部赛季通票(订单):类型、套餐名、发放/过期/使用时间、状态 |
| 第4步 | 全部角色:名称、性别、年龄、当前课程位置(Level/Unit/Lesson)、上次完课时间、活跃度 |
| 第5步 | 汇总格式化输出 |
活跃度判定规则
- 无完课记录 → 无完课记录
- 最近 14 天无完课记录 → 流失
- 最近 14 天完课 > 10 次 → 高活跃
- 最近 14 天完课 < 5 次 → 低活跃
- 其余 → 正常活跃
数据覆盖说明
线上数据库表结构与测试环境不同,以下字段暂不可用:
| 字段 | 原因 |
|---|---|
| 登录设备记录 | 线上无 account_login 表 |
| 地域信息 | 线上无 account_detail_info 表 |
| 商品订单(金额、渠道) | 线上仅 vala_seasonal_ticket(赛季通票),无标准订单表 |
Quick Reference
| 内容 | 文件 |
|---|---|
| 数据库表结构参考 | references/database_schema.md |
| 查询脚本 | scripts/query_user_info.py |
依赖
- Python 3
- pymysql, psycopg2-binary
- MySQL Online:vala_user(账号/角色)、vala_order(赛季通票)、vala(章节/赛季映射)
- PostgreSQL Online vala(user_chapter_play_record_0~7)