From 97bcaa2dfc26d9487067e0bb93330990ec53146a Mon Sep 17 00:00:00 2001 From: hailin Date: Wed, 7 Jan 2026 22:34:17 -0800 Subject: [PATCH] =?UTF-8?q?fix(admin-service):=20=E4=BF=AE=E5=A4=8D=20refe?= =?UTF-8?q?rrerId=20=E5=8F=AF=E8=83=BD=E4=B8=BA=20null=20=E7=9A=84=20TypeS?= =?UTF-8?q?cript=20=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - getAncestors 和 getDirectReferrals 中的 directReferralCounts groupBy 结果 referrerId 字段可能为 null - 添加 filter 过滤 null 值,使用非空断言通过类型检查 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../user-detail-query.repository.impl.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/backend/services/admin-service/src/infrastructure/persistence/repositories/user-detail-query.repository.impl.ts b/backend/services/admin-service/src/infrastructure/persistence/repositories/user-detail-query.repository.impl.ts index ab4f252e..b4786e84 100644 --- a/backend/services/admin-service/src/infrastructure/persistence/repositories/user-detail-query.repository.impl.ts +++ b/backend/services/admin-service/src/infrastructure/persistence/repositories/user-detail-query.repository.impl.ts @@ -102,7 +102,11 @@ export class UserDetailQueryRepositoryImpl implements IUserDetailQueryRepository ]); const adoptionCountMap = new Map(adoptionCounts.map(a => [a.accountSequence, a._count.id])); - const directCountMap = new Map(directReferralCounts.map(d => [d.referrerId.toString(), d._count.userId])); + const directCountMap = new Map( + directReferralCounts + .filter(d => d.referrerId !== null) + .map(d => [d.referrerId!.toString(), d._count.userId]) + ); // 合并数据 const referralMap = new Map(referrals.map((r) => [r.userId.toString(), r])); @@ -175,7 +179,11 @@ export class UserDetailQueryRepositoryImpl implements IUserDetailQueryRepository ]); const adoptionCountMap = new Map(adoptionCounts.map(a => [a.accountSequence, a._count.id])); - const directCountMap = new Map(directReferralCounts.map(d => [d.referrerId.toString(), d._count.userId])); + const directCountMap = new Map( + directReferralCounts + .filter(d => d.referrerId !== null) + .map(d => [d.referrerId!.toString(), d._count.userId]) + ); const userMap = new Map(users.map((u) => [u.userId.toString(), u])); return directReferrals.map((ref) => {