You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.3 KiB
108 lines
3.3 KiB
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 = <Records>[].obs;
|
|
|
|
final page = 1.obs;
|
|
|
|
final size = 10.obs;
|
|
|
|
late UserApi _userApi;
|
|
|
|
late final EasyRefreshController listRefreshController;
|
|
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
_userApi = Get.find<UserApi>();
|
|
|
|
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;
|
|
|
|
}
|
|
}
|
|
}
|