diff --git a/backend/services/planting-service/src/pre-planting/api/controllers/pre-planting.controller.ts b/backend/services/planting-service/src/pre-planting/api/controllers/pre-planting.controller.ts index 59677a59..f122da7f 100644 --- a/backend/services/planting-service/src/pre-planting/api/controllers/pre-planting.controller.ts +++ b/backend/services/planting-service/src/pre-planting/api/controllers/pre-planting.controller.ts @@ -119,11 +119,14 @@ export class PrePlantingController { // 只返回用户账户收到的奖励(D 开头),排除系统账户 const userEntries = entries.filter(e => e.recipientAccountSequence.startsWith('D')); - const settleableUsdt = userEntries.reduce((sum, e) => sum + e.usdtAmount, 0); + // settleableUsdt 设为 0:预种奖励的可结算状态由 wallet-service 管理, + // wallet-service 的 getSettleableRewards / getMyRewardSummary 已包含预种的可结算部分。 + // pre_planting_reward_entries 只是分配记录,不反映实际的 PENDING/SETTLEABLE 状态。 + // 之前错误地把所有分配记录的金额算作 settleableUsdt,导致前端重复计算。 return { summary: { - settleableUsdt, + settleableUsdt: 0, }, settleableRewards: userEntries.map(e => ({ id: `pp-${e.sourceOrderNo}-${e.rightType}`, diff --git a/frontend/mobile-app/lib/features/profile/presentation/pages/profile_page.dart b/frontend/mobile-app/lib/features/profile/presentation/pages/profile_page.dart index d7700e48..787b3053 100644 --- a/frontend/mobile-app/lib/features/profile/presentation/pages/profile_page.dart +++ b/frontend/mobile-app/lib/features/profile/presentation/pages/profile_page.dart @@ -842,7 +842,8 @@ class _ProfilePageState extends ConsumerState { setState(() { _pendingUsdt = summary.pendingUsdt; _pendingPower = summary.pendingHashpower; - _settleableUsdt = summary.settleableUsdt + prePlantingRewards.settleableUsdt; + // 预种可结算已包含在 wallet-service 的 summary.settleableUsdt 中,不再重复加 + _settleableUsdt = summary.settleableUsdt; // 使用流水统计的数据,更准确 _settledUsdt = settledFromLedger; _expiredUsdt = summary.expiredTotalUsdt; diff --git a/frontend/mobile-app/lib/features/trading/presentation/pages/trading_page.dart b/frontend/mobile-app/lib/features/trading/presentation/pages/trading_page.dart index 73116693..d8a666c2 100644 --- a/frontend/mobile-app/lib/features/trading/presentation/pages/trading_page.dart +++ b/frontend/mobile-app/lib/features/trading/presentation/pages/trading_page.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; import '../../../../core/di/injection_container.dart'; -import '../../../../core/services/pre_planting_service.dart'; import '../../../../routes/route_paths.dart'; /// 结算币种枚举 @@ -39,33 +38,27 @@ class _TradingPageState extends ConsumerState { try { debugPrint('[TradingPage] 开始加载数据...'); - // 并行获取:正常认种可结算 + 预种可结算 + 钱包余额 + // reward-service 的 settleableUsdt 已包含预种可结算部分(均由 wallet-service 管理) final rewardService = ref.read(rewardServiceProvider); - final prePlantingService = ref.read(prePlantingServiceProvider); final walletService = ref.read(walletServiceProvider); final results = await Future.wait([ rewardService.getMyRewardSummary(), - prePlantingService.getMyRewards(), walletService.getMyWallet(), ]); final summary = results[0] as dynamic; - final prePlantingRewards = results[1] as PrePlantingMyRewards; - final wallet = results[2] as dynamic; + final wallet = results[1] as dynamic; if (mounted) { setState(() { - // 聚合正常认种 + 预种的可结算收益 - _settleableAmount = summary.settleableUsdt + prePlantingRewards.settleableUsdt; + _settleableAmount = summary.settleableUsdt; _dstBalance = wallet.balances.dst.available; _usdtBalance = wallet.balances.usdt.available; _isLoading = false; }); debugPrint('[TradingPage] 数据加载成功:'); - debugPrint('[TradingPage] 正常认种可结算: ${summary.settleableUsdt}'); - debugPrint('[TradingPage] 预种可结算: ${prePlantingRewards.settleableUsdt}'); - debugPrint('[TradingPage] 合计可结算 USDT: $_settleableAmount'); + debugPrint('[TradingPage] 可结算 USDT: $_settleableAmount'); debugPrint('[TradingPage] DST 余额: $_dstBalance'); debugPrint('[TradingPage] USDT 余额: $_usdtBalance'); }