diff --git a/backend/services/reward-service/src/infrastructure/external/authorization-service/authorization-service.client.ts b/backend/services/reward-service/src/infrastructure/external/authorization-service/authorization-service.client.ts index 1c61c068..cf56df35 100644 --- a/backend/services/reward-service/src/infrastructure/external/authorization-service/authorization-service.client.ts +++ b/backend/services/reward-service/src/infrastructure/external/authorization-service/authorization-service.client.ts @@ -2,6 +2,17 @@ import { Injectable, Logger } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { IAuthorizationServiceClient } from '../../../domain/services/reward-calculation.service'; +// authorization-service 返回格式(经过 TransformInterceptor 包装) +interface AuthorizationServiceResponse { + success: boolean; + data: T; + timestamp: string; +} + +interface NearestAuthorizationResult { + accountSequence: number | null; +} + @Injectable() export class AuthorizationServiceClient implements IAuthorizationServiceClient { private readonly logger = new Logger(AuthorizationServiceClient.name); @@ -22,8 +33,10 @@ export class AuthorizationServiceClient implements IAuthorizationServiceClient { return null; } - const data = await response.json(); - return data.accountSequence ? BigInt(data.accountSequence) : null; + // authorization-service 返回格式: { success, data: { accountSequence }, timestamp } + const result: AuthorizationServiceResponse = await response.json(); + const accountSeq = result.data?.accountSequence; + return accountSeq ? BigInt(accountSeq) : null; } catch (error) { this.logger.error(`Error finding nearest authorized province:`, error); return null; @@ -41,8 +54,10 @@ export class AuthorizationServiceClient implements IAuthorizationServiceClient { return null; } - const data = await response.json(); - return data.accountSequence ? BigInt(data.accountSequence) : null; + // authorization-service 返回格式: { success, data: { accountSequence }, timestamp } + const result: AuthorizationServiceResponse = await response.json(); + const accountSeq = result.data?.accountSequence; + return accountSeq ? BigInt(accountSeq) : null; } catch (error) { this.logger.error(`Error finding nearest authorized city:`, error); return null; @@ -60,8 +75,11 @@ export class AuthorizationServiceClient implements IAuthorizationServiceClient { return null; } - const data = await response.json(); - return data.accountSequence ? BigInt(data.accountSequence) : null; + // authorization-service 返回格式: { success, data: { accountSequence }, timestamp } + const result: AuthorizationServiceResponse = await response.json(); + const accountSeq = result.data?.accountSequence; + this.logger.debug(`findNearestCommunity for userId=${userId}: result=${accountSeq}`); + return accountSeq ? BigInt(accountSeq) : null; } catch (error) { this.logger.error(`Error finding nearest community:`, error); return null;