import 'package:dating_touchme_app/controller/global.dart'; import 'package:dating_touchme_app/model/home/user_info_data.dart'; import 'package:dating_touchme_app/network/user_api.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; class UserInformationController extends GetxController { final String miId; UserInformationController({required this.miId}); final nowSelect = 0.obs; final userData = UserInfoData().obs; // 加载状态 final isLoading = true.obs; // 错误信息 final errorMessage = RxString(''); List tagList = [ "北京", "160cm", "想要甜甜的恋爱", "本科", "朋友圈摄影师", "英雄联盟", "流放之路", "CF", "DNA", "堡垒之夜", "SCP" ]; late UserApi _userApi; @override void onInit() { super.onInit(); myUserData.value = GlobalData().userData; // 验证参数 if (miId.isEmpty) { errorMessage.value = '用户ID无效'; isLoading.value = false; SmartDialog.showToast('用户ID无效'); return; } try { _userApi = Get.find(); getUserData(); } catch (e) { errorMessage.value = '初始化失败'; isLoading.value = false; SmartDialog.showToast('初始化失败,请稍后重试'); } } int calculateAge(String birthdayStr) { final birthday = DateTime.parse(birthdayStr); // 自动识别 1996-1-20 final today = DateTime.now(); int age = today.year - birthday.year; // 如果今年生日还没过,年龄要减 1 if (today.month < birthday.month || (today.month == birthday.month && today.day < birthday.day)) { age--; } return age; } final myUserData = GlobalData().userData.obs; getUserData() async { try { isLoading.value = true; errorMessage.value = ''; final response = await _userApi.getDongwoMarriageInformationDetail(miId: miId); if (response.data.isSuccess && response.data.data != null) { userData.value = response.data.data!; isLoading.value = false; } else { // 响应失败,设置错误信息 final errorMsg = response.data.message ?? '获取数据失败'; errorMessage.value = errorMsg; isLoading.value = false; SmartDialog.showToast(errorMsg); } } catch(e, stackTrace){ print('获取用户信息失败: $e'); print('堆栈跟踪: $stackTrace'); errorMessage.value = '获取用户信息失败,请稍后重试'; isLoading.value = false; SmartDialog.showToast('获取用户信息失败,请稍后重试'); // 不再 rethrow,避免导致闪退 } } }