From 62a21b73a518a70c393739a397abd0048cb00003 Mon Sep 17 00:00:00 2001 From: hailin Date: Wed, 10 Dec 2025 13:29:36 -0800 Subject: [PATCH] fix(referral): use accountSequence instead of userId for user registration events identity-service sends userId=0 in events (temp value before DB save), use accountSequence as the unique identifier instead --- .../event-handlers/user-registered.handler.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/backend/services/referral-service/src/application/event-handlers/user-registered.handler.ts b/backend/services/referral-service/src/application/event-handlers/user-registered.handler.ts index 8a63ef03..2fc86286 100644 --- a/backend/services/referral-service/src/application/event-handlers/user-registered.handler.ts +++ b/backend/services/referral-service/src/application/event-handlers/user-registered.handler.ts @@ -61,11 +61,13 @@ export class UserRegisteredHandler implements OnModuleInit { try { this.logger.log( - `Processing ${event.eventType} event: userId=${payload.userId}, accountSequence=${payload.accountSequence}, inviterSequence=${payload.inviterSequence}`, + `Processing ${event.eventType} event: accountSequence=${payload.accountSequence}, inviterSequence=${payload.inviterSequence}`, ); + // 使用 accountSequence 作为 userId,因为 identity-service 的 userId 是内部自增ID, + // 在事件发布时可能还是临时值 0,而 accountSequence 是全局唯一的业务标识 const command = new CreateReferralRelationshipCommand( - BigInt(payload.userId), + BigInt(payload.accountSequence), // 使用 accountSequence 作为 userId payload.accountSequence, null, // referrerCode - 不通过推荐码查找 payload.inviterSequence, // 通过 accountSequence 查找推荐人 @@ -73,11 +75,11 @@ export class UserRegisteredHandler implements OnModuleInit { const result = await this.referralService.createReferralRelationship(command); this.logger.log( - `Created referral relationship for user ${payload.userId} (seq: ${payload.accountSequence}), code: ${result.referralCode}, inviter: ${payload.inviterSequence ?? 'none'}`, + `Created referral relationship for accountSequence=${payload.accountSequence}, code: ${result.referralCode}, inviter: ${payload.inviterSequence ?? 'none'}`, ); } catch (error) { this.logger.error( - `Failed to create referral relationship for user ${payload.userId} (seq: ${payload.accountSequence}):`, + `Failed to create referral relationship for accountSequence=${payload.accountSequence}:`, error, ); }