Files
huangguo_android/lib/hj_model/user/wallet_model.dart
T
2026-09-15 15:44:13 +07:00

36 lines
1.4 KiB
Dart

/// 钱包信息,来自 /mine/wallet
class WalletModel {
// ===== 收益 =====
int? income; //收益金币的整数部分
double? incomePot; //收益金币的零头,和 income 一起算总收益
num? vidIncome; //视频收益
// ===== 余额 =====
int? amount; //充值金币余额,购买后会被写回
int? integral; //积分
// ===== 剩余次数 =====
int? downloadCount; //视频下载次数
int? aiUndressFreeTimes; //AI 脱衣免费次数
int? todayAiFreeTimes; //今日 AI 免费次数
//字段顺序与上方声明一致,便于比对
WalletModel.fromJson(Map<String, dynamic>? json) {
json ??= {};
income = json['income'];
//后端可能下发 double / int / 数字字符串,统一按字符串解析。
//解析不了、或拿到 NaN/Infinity 都留 null 当没零头——balance 的 `~/` 吃到它们会抛 UnsupportedError
final pot = double.tryParse('${json['incomePot'] ?? 0}');
incomePot = pot != null && pot.isFinite ? pot : null;
vidIncome = json['vidIncome'];
amount = json['amount'];
integral = json['integral'];
downloadCount = json['downloadCount'];
aiUndressFreeTimes = json['aiUndressFreeTimes'];
todayAiFreeTimes = json['todayAiFreeTimes'];
}
//收益总额:先放大 100 倍算再取整,避免 double 直接相加的精度误差
int get balance => ((income ?? 0) * 100.0 + (incomePot ?? 0) * 100) ~/ 100;
}