backfill-nicknames.md 1.2 KB


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 表中存在该用户的消息记录

执行

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