revert: 恢复资产页面的倍数显示和计算
- 资产显示值恢复为 积分股余额 × (1 + burnMultiplier) × price - 显示有效积分股(含倍数)而非实际积分股数量 - 实时计算也考虑倍数因子 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
07247fe05f
commit
cfa3979a97
|
|
@ -33,6 +33,7 @@ class _AssetPageState extends ConsumerState<AssetPage> {
|
|||
// 实时刷新相关状态
|
||||
Timer? _refreshTimer;
|
||||
int _elapsedSeconds = 0;
|
||||
double _initialDisplayValue = 0;
|
||||
double _initialShareBalance = 0;
|
||||
double _growthPerSecond = 0;
|
||||
String? _lastAccountSequence;
|
||||
|
|
@ -53,6 +54,7 @@ class _AssetPageState extends ConsumerState<AssetPage> {
|
|||
|
||||
_refreshTimer?.cancel();
|
||||
_elapsedSeconds = 0;
|
||||
_initialDisplayValue = double.tryParse(asset.displayAssetValue) ?? 0;
|
||||
_initialShareBalance = double.tryParse(asset.shareBalance) ?? 0;
|
||||
// 使用传入的每秒增长值(来自 mining-service)
|
||||
_growthPerSecond = double.tryParse(perSecondEarning) ?? 0;
|
||||
|
|
@ -76,10 +78,13 @@ class _AssetPageState extends ConsumerState<AssetPage> {
|
|||
}
|
||||
|
||||
/// 计算当前实时资产显示值
|
||||
/// 资产显示值 = 积分股余额 × price(不含倍数,使用实际价格)
|
||||
/// 资产显示值 = 积分股余额 × (1 + burnMultiplier) × price
|
||||
/// 每秒资产增长 = 每秒积分股增长 × (1 + burnMultiplier) × price
|
||||
double get _currentDisplayValue {
|
||||
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)
|
||||
final growthPerSecond = double.tryParse(perSecondEarning) ?? 0.0;
|
||||
|
||||
// 使用实时计算的资产值(如果有)- 不含倍数
|
||||
// 使用实时计算的资产值(含倍数)
|
||||
final displayValue = asset != null && currentDisplayValue > 0
|
||||
? currentDisplayValue.toString()
|
||||
: null;
|
||||
: asset?.displayAssetValue;
|
||||
|
||||
// 使用实时计算的积分股余额(如果有)- 实际数量,不含倍数
|
||||
final shareBalance = asset != null && currentShareBalance > 0
|
||||
? currentShareBalance.toString()
|
||||
: asset?.shareBalance;
|
||||
// 计算有效积分股(含倍数)= 实时积分股余额 × (1 + burnMultiplier)
|
||||
final burnMultiplier = double.tryParse(asset?.burnMultiplier ?? '0') ?? 0;
|
||||
final effectiveShareBalance = asset != null && currentShareBalance > 0
|
||||
? (currentShareBalance * (1 + burnMultiplier)).toString()
|
||||
: asset?.effectiveShares;
|
||||
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
|
|
@ -300,9 +306,9 @@ class _AssetPageState extends ConsumerState<AssetPage> {
|
|||
),
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
// 积分股余额 - 实际数量
|
||||
// 有效积分股(含倍数)
|
||||
DataText(
|
||||
data: shareBalance != null ? '≈ ${formatCompact(shareBalance)} 积分股' : null,
|
||||
data: effectiveShareBalance != null ? '≈ ${formatCompact(effectiveShareBalance)} 积分股 (含倍数)' : null,
|
||||
isLoading: isLoading,
|
||||
placeholder: '≈ -- 积分股',
|
||||
style: const TextStyle(
|
||||
|
|
|
|||
Loading…
Reference in New Issue