revert: 恢复资产页面的倍数显示和计算

- 资产显示值恢复为 积分股余额 × (1 + burnMultiplier) × price
- 显示有效积分股(含倍数)而非实际积分股数量
- 实时计算也考虑倍数因子

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-01-18 20:46:57 -08:00
parent 07247fe05f
commit cfa3979a97
1 changed files with 16 additions and 10 deletions

View File

@ -33,6 +33,7 @@ class _AssetPageState extends ConsumerState<AssetPage> {
// //
Timer? _refreshTimer; Timer? _refreshTimer;
int _elapsedSeconds = 0; int _elapsedSeconds = 0;
double _initialDisplayValue = 0;
double _initialShareBalance = 0; double _initialShareBalance = 0;
double _growthPerSecond = 0; double _growthPerSecond = 0;
String? _lastAccountSequence; String? _lastAccountSequence;
@ -53,6 +54,7 @@ class _AssetPageState extends ConsumerState<AssetPage> {
_refreshTimer?.cancel(); _refreshTimer?.cancel();
_elapsedSeconds = 0; _elapsedSeconds = 0;
_initialDisplayValue = double.tryParse(asset.displayAssetValue) ?? 0;
_initialShareBalance = double.tryParse(asset.shareBalance) ?? 0; _initialShareBalance = double.tryParse(asset.shareBalance) ?? 0;
// 使 mining-service // 使 mining-service
_growthPerSecond = double.tryParse(perSecondEarning) ?? 0; _growthPerSecond = double.tryParse(perSecondEarning) ?? 0;
@ -76,10 +78,13 @@ class _AssetPageState extends ConsumerState<AssetPage> {
} }
/// ///
/// = × price使 /// = × (1 + burnMultiplier) × price
/// = × (1 + burnMultiplier) × price
double get _currentDisplayValue { double get _currentDisplayValue {
final price = double.tryParse(_lastAsset?.currentPrice ?? '0') ?? 0; final price = double.tryParse(_lastAsset?.currentPrice ?? '0') ?? 0;
return _currentShareBalance * price; final burnMultiplier = double.tryParse(_lastAsset?.burnMultiplier ?? '0') ?? 0;
final multiplierFactor = 1 + burnMultiplier;
return _initialDisplayValue + (_elapsedSeconds * _growthPerSecond * multiplierFactor * price);
} }
/// ///
@ -207,15 +212,16 @@ class _AssetPageState extends ConsumerState<AssetPage> {
// 使 mining-service // 使 mining-service
final growthPerSecond = double.tryParse(perSecondEarning) ?? 0.0; final growthPerSecond = double.tryParse(perSecondEarning) ?? 0.0;
// 使- // 使
final displayValue = asset != null && currentDisplayValue > 0 final displayValue = asset != null && currentDisplayValue > 0
? currentDisplayValue.toString() ? currentDisplayValue.toString()
: null; : asset?.displayAssetValue;
// 使- // = × (1 + burnMultiplier)
final shareBalance = asset != null && currentShareBalance > 0 final burnMultiplier = double.tryParse(asset?.burnMultiplier ?? '0') ?? 0;
? currentShareBalance.toString() final effectiveShareBalance = asset != null && currentShareBalance > 0
: asset?.shareBalance; ? (currentShareBalance * (1 + burnMultiplier)).toString()
: asset?.effectiveShares;
return Container( return Container(
decoration: BoxDecoration( decoration: BoxDecoration(
@ -300,9 +306,9 @@ class _AssetPageState extends ConsumerState<AssetPage> {
), ),
), ),
const SizedBox(height: 4), const SizedBox(height: 4),
// - //
DataText( DataText(
data: shareBalance != null ? '${formatCompact(shareBalance)} 积分股' : null, data: effectiveShareBalance != null ? '${formatCompact(effectiveShareBalance)} 积分股 (含倍数)' : null,
isLoading: isLoading, isLoading: isLoading,
placeholder: '≈ -- 积分股', placeholder: '≈ -- 积分股',
style: const TextStyle( style: const TextStyle(