import 'package:dating_touchme_app/model/mine/wallet_account_data.dart'; import 'package:dating_touchme_app/network/user_api.dart'; import 'package:easy_refresh/easy_refresh.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; import '../../model/mine/wallet_account_record_data.dart'; class MyWalletController extends GetxController { final timeActive = 1.obs; final walletData = WalletAccountData().obs; final walletHistoryList = [].obs; final page = 1.obs; final size = 10.obs; late UserApi _userApi; late final EasyRefreshController listRefreshController; @override void onInit() { super.onInit(); _userApi = Get.find(); listRefreshController = EasyRefreshController( controlFinishRefresh: true, controlFinishLoad: true, ); getWalletData(); getHistoryList(); print(formatStartTimestamp(DateTime.now().millisecondsSinceEpoch - 86400000 * 30)); print(formatStartTimestamp(DateTime.now().millisecondsSinceEpoch - 86400000 * 90)); print(formatStartTimestamp(DateTime.now().millisecondsSinceEpoch - 86400000 * 180)); } String formatStartTimestamp(int ms) { final dt = DateTime.fromMillisecondsSinceEpoch(ms); String two(int n) => n.toString().padLeft(2, '0'); return "${dt.year}-${two(dt.month)}-${two(dt.day)} " "00:00:00"; } String formatEndTimestamp(int ms) { final dt = DateTime.fromMillisecondsSinceEpoch(ms); String two(int n) => n.toString().padLeft(2, '0'); return "${dt.year}-${two(dt.month)}-${two(dt.day)} " "23:59:59"; } getWalletData() async { try { final response = await _userApi.getWalletAccount({}); if (response.data.isSuccess && response.data.data != null) { walletData.value = response.data.data ?? WalletAccountData(); } else { // 响应失败,抛出异常 throw Exception(response.data.message ?? '获取数据失败'); } } catch(e){ print('钱包数据获取失败: $e'); SmartDialog.showToast('钱包数据获取失败'); rethrow; } } getHistoryList() async { try { final response = await _userApi.getWalletAccountRecord( pageNum: page.value, pageSize: size.value, recordTimeFrom: timeActive.value == 1 ? formatStartTimestamp(DateTime.now().millisecondsSinceEpoch - 86400000 * 30) : timeActive.value == 2 ? formatStartTimestamp(DateTime.now().millisecondsSinceEpoch - 86400000 * 90) : timeActive.value == 3 ? formatStartTimestamp(DateTime.now().millisecondsSinceEpoch - 86400000 * 180) : "", recordTimeTo: formatEndTimestamp(DateTime.now().millisecondsSinceEpoch), ); if (response.data.isSuccess && response.data.data != null) { walletHistoryList.addAll(response.data.data?.records ?? []); if((response.data.data?.records?.length ?? 0) == size.value){ listRefreshController.finishLoad(IndicatorResult.success); } else { listRefreshController.finishLoad(IndicatorResult.noMore); } } else { // 响应失败,抛出异常 throw Exception(response.data.message ?? '获取数据失败'); } } catch(e){ print('钱包流水获取失败: $e'); SmartDialog.showToast('钱包流水获取失败'); rethrow; } } }