fix(pre-planting): 无推荐关系用户购买预种时 404 导致整笔交易失败

问题:PrePlantingReferralClient.getReferralChain() 生产环境遇到 404
(用户无推荐人)时直接 throw error,导致整个购买事务回滚,
无推荐关系的用户(测试账号、直接注册用户)完全无法购买预种份额。

修复:AxiosError status === 404 时返回 { directReferrer: null },
与"直接注册、无推荐人"的正常业务场景对齐,不阻断购买流程。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-02-28 02:13:29 -08:00
parent fe9a30df85
commit 560674f2e9
1 changed files with 8 additions and 4 deletions

View File

@ -37,14 +37,18 @@ export class PrePlantingReferralClient {
);
return response.data;
} catch (error) {
// 404 = 用户无推荐关系,属于正常情况(如测试账号、直接注册用户)
// 返回空推荐链而非抛错,避免阻断购买流程
if (error?.response?.status === 404) {
this.logger.warn(
`No referral chain found for ${accountSequence}, proceeding without referrer`,
);
return { accountSequence, directReferrer: null };
}
this.logger.error(
`Failed to get referral chain for ${accountSequence}`,
error,
);
if (this.configService.get('NODE_ENV') === 'development') {
this.logger.warn('Development mode: returning empty referral chain');
return { accountSequence, directReferrer: null };
}
throw error;
}
}