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:
parent
31c3c24a12
commit
62a21b73a5
|
|
@ -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,
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue