--- name: backfill-nicknames description: 昵称回填 — 从 Message 表 senderName 跨房间回填 GroupMember 缺失的昵称 metadata: category: 数据维护 frequency: 按需 --- # /backfill-nicknames — GroupMember 昵称回填技能 ## 技能说明 GroupMember 表中大量成员的 nickname 为空。此脚本从 Message 表的 senderName 跨房间搜索匹配,回填缺失的昵称。 **原理**: 成员 A 在群 X 中没有昵称,但在群 Y 中发过消息带有 senderName → 跨房间匹配回填。 ## 前置条件 - 环境变量: `QIWE_GUID` - Parse Server 可正常连接 - Message 表中存在该用户的消息记录 ## 执行 ```bash cd backend && npx tsx scripts/backfill-member-nicknames.ts ``` ## 预期结果 - 去重后缺失 userId → 分批 containedIn 查询 Message → 构建 userId→senderName 映射 → 批量回填 - 当前状态: ~1715 个无昵称 userId,约 27 个能从 Message 中找到 (~1.6%),回填 ~120 条 GroupMember 记录(同一用户在多个群) - 剩余缺失需要依赖 QiWe API `batchGetRoomDetail` 接口补全 ## 数据表依赖 | 表 | 用途 | |---|------| | GroupMember | 查询缺失 nickname 的成员 | | Message | 按 senderId 查找 senderName |