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.
128 lines
3.4 KiB
128 lines
3.4 KiB
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 {
|
|
|
|
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 = <Records>[].obs;
|
|
final friendApplyList = <fa.Records>[].obs;
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
|
|
tabController = TabController(length: 2, vsync: this);
|
|
|
|
listRefreshController = EasyRefreshController(
|
|
controlFinishRefresh: true,
|
|
controlFinishLoad: true,
|
|
);
|
|
_userApi = Get.find<UserApi>();
|
|
|
|
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;
|
|
|
|
}
|
|
}
|
|
|
|
}
|