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 {
|
try {
|
||||||
this.logger.log(
|
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(
|
const command = new CreateReferralRelationshipCommand(
|
||||||
BigInt(payload.userId),
|
BigInt(payload.accountSequence), // 使用 accountSequence 作为 userId
|
||||||
payload.accountSequence,
|
payload.accountSequence,
|
||||||
null, // referrerCode - 不通过推荐码查找
|
null, // referrerCode - 不通过推荐码查找
|
||||||
payload.inviterSequence, // 通过 accountSequence 查找推荐人
|
payload.inviterSequence, // 通过 accountSequence 查找推荐人
|
||||||
|
|
@ -73,11 +75,11 @@ export class UserRegisteredHandler implements OnModuleInit {
|
||||||
|
|
||||||
const result = await this.referralService.createReferralRelationship(command);
|
const result = await this.referralService.createReferralRelationship(command);
|
||||||
this.logger.log(
|
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) {
|
} catch (error) {
|
||||||
this.logger.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,
|
error,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue