import 'package:dating_touchme_app/model/home/marriage_data.dart'; import 'package:dating_touchme_app/network/home_api.dart'; 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/home/post_data.dart'; class RealHomeController extends GetxController { late final HomeApi _homeApi; late UserApi _userApi; // 推荐列表数据 final recommendFeed = [].obs; @override void onInit() { super.onInit(); listRefreshController = EasyRefreshController( controlFinishRefresh: true, controlFinishLoad: true, ); // 从全局依赖中获取HomeApi _homeApi = Get.find(); _userApi = Get.find(); getListData(); getPostList(); } getListData() async { try { var response = await _homeApi.getMarriageList( pageNum: 1, pageSize: 100, type: 0, ); if (response.data.isSuccess) { final allRecords = response.data.data!.records .map((item) => MarriageData.fromJson(item as Map)) .toList(); // 过滤掉直播类型的项 final records = allRecords!.where((item) => !item.isLive).toList(); recommendFeed.clear(); recommendFeed.addAll(records); update(); } else { // 响应失败,抛出异常 throw Exception(response.data.message); } } catch(e) { // 向上抛出异常,让调用方处理 rethrow; } } final page = 1.obs; final size = 10.obs; final postList = [].obs; late final EasyRefreshController listRefreshController; getPostList() async { try{ final response = await _homeApi.userPagePost( pageNum: page.value, pageSize: size.value ); if (response.data.isSuccess && response.data.data != null) { final data = response.data.data?.records ?? []; postList.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; } } }