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.
102 lines
2.9 KiB
102 lines
2.9 KiB
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;
|
|
final String userId;
|
|
UserInformationController({required this.miId, required this.userId});
|
|
|
|
final nowSelect = 0.obs;
|
|
|
|
final userData = UserInfoData().obs;
|
|
|
|
// 加载状态
|
|
final isLoading = true.obs;
|
|
|
|
// 错误信息
|
|
final errorMessage = RxString('');
|
|
|
|
List<String> 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;
|
|
}
|
|
|
|
if (userId.isEmpty) {
|
|
errorMessage.value = '用户ID无效';
|
|
isLoading.value = false;
|
|
SmartDialog.showToast('用户ID无效');
|
|
return;
|
|
}
|
|
|
|
try {
|
|
_userApi = Get.find<UserApi>();
|
|
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,避免导致闪退
|
|
}
|
|
}
|
|
}
|