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
This commit is contained in:
hailin 2025-12-10 13:29:36 -08:00
parent 31c3c24a12
commit 62a21b73a5
1 changed files with 6 additions and 4 deletions

View File

@ -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,
);
}