From 560674f2e9451ca5ebd638204c7693412fbc0056 Mon Sep 17 00:00:00 2001 From: hailin Date: Sat, 28 Feb 2026 02:13:29 -0800 Subject: [PATCH] =?UTF-8?q?fix(pre-planting):=20=E6=97=A0=E6=8E=A8?= =?UTF-8?q?=E8=8D=90=E5=85=B3=E7=B3=BB=E7=94=A8=E6=88=B7=E8=B4=AD=E4=B9=B0?= =?UTF-8?q?=E9=A2=84=E7=A7=8D=E6=97=B6=20404=20=E5=AF=BC=E8=87=B4=E6=95=B4?= =?UTF-8?q?=E7=AC=94=E4=BA=A4=E6=98=93=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:PrePlantingReferralClient.getReferralChain() 生产环境遇到 404 (用户无推荐人)时直接 throw error,导致整个购买事务回滚, 无推荐关系的用户(测试账号、直接注册用户)完全无法购买预种份额。 修复:AxiosError status === 404 时返回 { directReferrer: null }, 与"直接注册、无推荐人"的正常业务场景对齐,不阻断购买流程。 Co-Authored-By: Claude Sonnet 4.6 --- .../external/pre-planting-referral.client.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/backend/services/planting-service/src/pre-planting/infrastructure/external/pre-planting-referral.client.ts b/backend/services/planting-service/src/pre-planting/infrastructure/external/pre-planting-referral.client.ts index fe728df1..451eb0e4 100644 --- a/backend/services/planting-service/src/pre-planting/infrastructure/external/pre-planting-referral.client.ts +++ b/backend/services/planting-service/src/pre-planting/infrastructure/external/pre-planting-referral.client.ts @@ -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; } }