fix(mobile): 兑换页可结算收益聚合正常认种+预种金额

之前只显示正常认种的 settleableUsdt,未包含预种收益,
导致有预种收益但显示"暂无可结算收益"。
现在并行获取两者并累加,与"我"页面保持一致。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-03-01 03:11:13 -08:00
parent 5392c47e47
commit cf07712a8c
1 changed files with 20 additions and 9 deletions

View File

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import '../../../../core/di/injection_container.dart'; import '../../../../core/di/injection_container.dart';
import '../../../../core/services/pre_planting_service.dart';
import '../../../../routes/route_paths.dart'; import '../../../../routes/route_paths.dart';
/// ///
@ -38,25 +39,35 @@ class _TradingPageState extends ConsumerState<TradingPage> {
try { try {
debugPrint('[TradingPage] 开始加载数据...'); debugPrint('[TradingPage] 开始加载数据...');
// reward-service Profile // + +
final rewardService = ref.read(rewardServiceProvider); final rewardService = ref.read(rewardServiceProvider);
final summary = await rewardService.getMyRewardSummary(); final prePlantingService = ref.read(prePlantingServiceProvider);
// wallet-service DST
final walletService = ref.read(walletServiceProvider); final walletService = ref.read(walletServiceProvider);
final wallet = await walletService.getMyWallet();
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;
if (mounted) { if (mounted) {
setState(() { setState(() {
_settleableAmount = summary.settleableUsdt; // +
_settleableAmount = summary.settleableUsdt + prePlantingRewards.settleableUsdt;
_dstBalance = wallet.balances.dst.available; _dstBalance = wallet.balances.dst.available;
_usdtBalance = wallet.balances.usdt.available; _usdtBalance = wallet.balances.usdt.available;
_isLoading = false; _isLoading = false;
}); });
debugPrint('[TradingPage] 数据加载成功:'); debugPrint('[TradingPage] 数据加载成功:');
debugPrint('[TradingPage] 可结算 USDT: $_settleableAmount (from reward-service)'); debugPrint('[TradingPage] 正常认种可结算: ${summary.settleableUsdt}');
debugPrint('[TradingPage] DST 余额: $_dstBalance (from wallet-service)'); debugPrint('[TradingPage] 预种可结算: ${prePlantingRewards.settleableUsdt}');
debugPrint('[TradingPage] USDT 余额: $_usdtBalance (from wallet-service)'); debugPrint('[TradingPage] 合计可结算 USDT: $_settleableAmount');
debugPrint('[TradingPage] DST 余额: $_dstBalance');
debugPrint('[TradingPage] USDT 余额: $_usdtBalance');
} }
} catch (e, stackTrace) { } catch (e, stackTrace) {
debugPrint('[TradingPage] 加载数据失败: $e'); debugPrint('[TradingPage] 加载数据失败: $e');