From c467d2e31242df64ca56da64e0f877d015cef9d7 Mon Sep 17 00:00:00 2001 From: ZHR007 Date: Tue, 2 Dec 2025 14:08:03 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E7=BA=A2=E5=A8=98=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/controller/setting/spread_controller.dart | 1 + lib/model/mine/rose_data.dart | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/controller/setting/spread_controller.dart b/lib/controller/setting/spread_controller.dart index f4ff470..6f5e29d 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); } } 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; From 5ca9ae73ebca3955a8288dbaa69ecf2a8e0782e2 Mon Sep 17 00:00:00 2001 From: ZHR007 Date: Tue, 2 Dec 2025 15:47:43 +0800 Subject: [PATCH 2/3] no message --- lib/controller/setting/spread_controller.dart | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/controller/setting/spread_controller.dart b/lib/controller/setting/spread_controller.dart index 6f5e29d..e8b64ab 100644 --- a/lib/controller/setting/spread_controller.dart +++ b/lib/controller/setting/spread_controller.dart @@ -177,10 +177,7 @@ class SpreadController extends GetxController with WidgetsBindingObserver { } catch (e) { print('玫瑰列表获取失败: $e'); SmartDialog.showToast('下单失败'); - rethrow; } - - } } \ No newline at end of file From adbd5e04d737de81dd9bef00fc8120072e4d5a55 Mon Sep 17 00:00:00 2001 From: Jolie <412895109@qq.com> Date: Tue, 2 Dec 2025 16:23:35 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat(friend):=20=E5=AE=9E=E7=8E=B0=E5=A5=BD?= =?UTF-8?q?=E5=8F=8B=E5=88=97=E8=A1=A8=E5=8A=A0=E8=BD=BD=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增好友控制器用于管理好友列表数据 - 实现加载好友列表的方法,包括错误处理和状态管理 - 添加刷新好友列表的功能 - 集成IM登录状态检查,确保在登录后加载数据 - 使用RxJS进行响应式状态管理(加载状态、错误消息) - 在初始化时自动加载好友列表数据 --- lib/controller/message/friend_controller.dart | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 lib/controller/message/friend_controller.dart 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(); + } +} +