diff --git a/lib/controller/message/friend_controller.dart b/lib/controller/message/friend_controller.dart new file mode 100644 index 0000000..b6849aa --- /dev/null +++ b/lib/controller/message/friend_controller.dart @@ -0,0 +1,60 @@ +import 'package:get/get.dart'; +import 'package:im_flutter_sdk/im_flutter_sdk.dart'; +import '../../im/im_manager.dart'; + +class FriendController extends GetxController { + // 好友列表数据 + final friendList = [].obs; + // 加载状态 + final isLoading = false.obs; + // 错误消息 + final errorMessage = ''.obs; + + @override + void onInit() { + super.onInit(); + // 初始化时加载好友列表 + loadFriends(); + } + + /// 加载好友列表 + Future loadFriends() async { + try { + isLoading.value = true; + errorMessage.value = ''; + + // 检查 IM 登录状态 + if (!IMManager.instance.isLoggedIn) { + if (Get.isLogEnable) { + Get.log('⚠️ [FriendController] IM 未登录,无法加载好友列表'); + } + errorMessage.value = 'IM 未登录,无法加载好友列表'; + isLoading.value = false; + return; + } + + // 从 IMManager 获取所有联系人 + final contacts = await IMManager.instance.getAllContacts(); + + // 更新好友列表 + friendList.value = contacts; + + if (Get.isLogEnable) { + Get.log('✅ [FriendController] 加载好友列表成功,共 ${contacts.length} 个好友'); + } + } catch (e) { + if (Get.isLogEnable) { + Get.log('❌ [FriendController] 加载好友列表失败: $e'); + } + errorMessage.value = '加载好友列表失败,请稍后重试'; + } finally { + isLoading.value = false; + } + } + + /// 刷新好友列表 + Future refreshFriends() async { + await loadFriends(); + } +} + diff --git a/lib/controller/setting/spread_controller.dart b/lib/controller/setting/spread_controller.dart index f4ff470..e8b64ab 100644 --- a/lib/controller/setting/spread_controller.dart +++ b/lib/controller/setting/spread_controller.dart @@ -118,6 +118,7 @@ class SpreadController extends GetxController with WidgetsBindingObserver { } else { countdownSeconds.value = 0; GlobalData().userData!.matchmakerFlag = true; + GlobalData().userData!.matchmakerType = roseList[activePay.value].subCategory; Get.back(result: 1); } } @@ -176,10 +177,7 @@ class SpreadController extends GetxController with WidgetsBindingObserver { } catch (e) { print('玫瑰列表获取失败: $e'); SmartDialog.showToast('下单失败'); - rethrow; } - - } } \ No newline at end of file diff --git a/lib/model/mine/rose_data.dart b/lib/model/mine/rose_data.dart index 1e0cf62..a7fee3a 100644 --- a/lib/model/mine/rose_data.dart +++ b/lib/model/mine/rose_data.dart @@ -2,7 +2,7 @@ class RoseData { String? productId; String? productSpecId; num? mainCategory; - num? subCategory; + int? subCategory; String? productTitle; String? productDesc; String? detailDesc;