import 'package:dating_touchme_app/network/user_api.dart'; import 'package:easy_refresh/easy_refresh.dart'; import 'package:flutter/material.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; import '../../model/mine/friend_apply_data.dart' as fa; import '../../model/mine/friend_data.dart'; class MyFriendController extends GetxController with GetSingleTickerProviderStateMixin { final int index; MyFriendController({required this.index}); late TabController tabController; final sum = 0.obs; final page = 1.obs; final size = 10.obs; final applyPage = 1.obs; final applySize = 10.obs; final tab = 0.obs; late UserApi _userApi; late final EasyRefreshController listRefreshController; final friendList = [].obs; final friendApplyList = [].obs; @override void onInit() { super.onInit(); tabController = TabController(length: 2, vsync: this, initialIndex: index); tab.value = index; listRefreshController = EasyRefreshController( controlFinishRefresh: true, controlFinishLoad: true, ); _userApi = Get.find(); getFriendList(); getFriendApplyList(); } getFriendList() async { try{ final response = await _userApi.userPageFriendRelation( pageNum: page.value, pageSize: size.value, ); if (response.data.isSuccess && response.data.data != null) { final data = response.data.data?.records ?? []; friendList.addAll(data.toList()); if((data.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; } } getFriendApplyList() async { try{ final response = await _userApi.userPageFriendApply( pageNum: applyPage.value, pageSize: applySize.value, ); if (response.data.isSuccess && response.data.data != null) { final data = response.data.data?.records ?? []; friendApplyList.addAll(data.toList()); if((data.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; } } applyFriend(String id, int status, fa.Records item) async { try { final response = await _userApi.userConfirmFriendApply({ "id": id, "status": status }); if (response.data.isSuccess) { item.status = status; if(status == 2){ SmartDialog.showToast('添加成功'); } else if(status == 3){ SmartDialog.showToast('拒绝成功'); } } else { // 响应失败,抛出异常 throw Exception(response.data.message ?? '获取数据失败'); } } catch(e){ print('好友处理失败: $e'); SmartDialog.showToast('好友处理失败'); rethrow; } } }