--- name: user-info version: 2.0.0 description: 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 1. 从用户输入中提取查询条件(账号ID / 角色ID / 手机号 / 订单号),数字型优先匹配 ID,11 位数字优先匹配手机号 2. 调用 `scripts/query_user_info.py` 执行查询,传入对应参数 3. 将脚本输出的格式化结果原样返回给用户 4. 若脚本报错(如未找到账号),将错误信息如实反馈给用户 5. 所有查询均为只读操作,不修改任何数据 ## 执行命令 ```bash python3 skills/user-info/scripts/query_user_info.py --account-id python3 skills/user-info/scripts/query_user_info.py --role-id python3 skills/user-info/scripts/query_user_info.py --phone <号码> python3 skills/user-info/scripts/query_user_info.py --order-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)