111
This commit is contained in:
@@ -67,28 +67,70 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
|
||||
List<Map<String, dynamic>> _parseWelfareRecords(Map<String, dynamic> data) {
|
||||
final records = <Map<String, dynamic>>[];
|
||||
|
||||
// 新人福利
|
||||
final newUser = data['newUserBonus'] as Map<String, dynamic>?;
|
||||
if (newUser != null) {
|
||||
final claimed = newUser['claimed'] as bool? ?? false;
|
||||
final eligible = newUser['eligible'] as bool? ?? false;
|
||||
// 状态: 1=已领取, 0=可领取(待领取), 2=不可用(未解锁)
|
||||
final int status;
|
||||
if (claimed) {
|
||||
status = 1;
|
||||
} else if (eligible) {
|
||||
status = 0;
|
||||
} else {
|
||||
status = 2;
|
||||
}
|
||||
records.add({
|
||||
'type': 'new_user',
|
||||
'title': '新人福利',
|
||||
'amount': newUser['amount']?.toString() ?? '0.00',
|
||||
'status': newUser['status'] ?? 0,
|
||||
'amount': newUser['amount']?.toString() ?? '100.00',
|
||||
'status': status,
|
||||
'time': newUser['claimTime'] ?? newUser['createTime'],
|
||||
});
|
||||
}
|
||||
|
||||
// 推广福利列表
|
||||
final referrals = data['referralBonuses'] as List?;
|
||||
if (referrals != null) {
|
||||
for (var r in referrals) {
|
||||
final map = r as Map<String, dynamic>;
|
||||
final referralRewards = data['referralRewards'] as List<dynamic>? ?? [];
|
||||
for (var r in referralRewards) {
|
||||
final map = r as Map<String, dynamic>;
|
||||
final username = map['username'] as String? ?? '用户';
|
||||
final milestones = map['milestones'] as List<dynamic>? ?? [];
|
||||
final claimableCount = map['claimableCount'] as int? ?? 0;
|
||||
|
||||
// 每个 milestone 生成一条记录
|
||||
for (var m in milestones) {
|
||||
final ms = m as Map<String, dynamic>;
|
||||
final earned = ms['earned'] as bool? ?? false;
|
||||
final claimable = ms['claimable'] as bool? ?? false;
|
||||
final milestoneVal = ms['milestone'] as int? ?? 1;
|
||||
|
||||
final int status;
|
||||
if (earned) {
|
||||
status = 1; // 已领取
|
||||
} else if (claimable) {
|
||||
status = 0; // 可领取
|
||||
} else {
|
||||
status = 2; // 未达标
|
||||
}
|
||||
records.add({
|
||||
'type': 'referral',
|
||||
'title': '推广福利 - ${map['referredUsername'] ?? '用户'}',
|
||||
'amount': map['amount']?.toString() ?? '0.00',
|
||||
'status': map['status'] ?? 0,
|
||||
'time': map['claimTime'] ?? map['createTime'],
|
||||
'title': '推广福利 - $username (${milestoneVal}000)',
|
||||
'amount': '100.00',
|
||||
'status': status,
|
||||
'time': ms['claimTime'] ?? ms['createTime'],
|
||||
});
|
||||
}
|
||||
|
||||
// 如果没有 milestone 但有 claimableCount,也生成记录
|
||||
if (milestones.isEmpty && claimableCount > 0) {
|
||||
records.add({
|
||||
'type': 'referral',
|
||||
'title': '推广福利 - $username',
|
||||
'amount': '${claimableCount * 100}',
|
||||
'status': 0,
|
||||
'time': null,
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -340,7 +382,7 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
final amount = double.tryParse(record['amount']?.toString() ?? '0') ?? 0;
|
||||
final status = record['status'] as int? ?? 0;
|
||||
|
||||
// status: 0=待领取, 1=已领取, 2=已过期
|
||||
// status: 0=待领取, 1=已领取, 2=未达标
|
||||
String statusText;
|
||||
Color statusColor;
|
||||
switch (status) {
|
||||
@@ -349,7 +391,7 @@ class _BillsPageState extends State<BillsPage> with SingleTickerProviderStateMix
|
||||
statusColor = context.appColors.up;
|
||||
break;
|
||||
case 2:
|
||||
statusText = '已过期';
|
||||
statusText = '未达标';
|
||||
statusColor = colorScheme.onSurfaceVariant;
|
||||
break;
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user