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.
 
 
 
 
 

94 lines
2.6 KiB

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 = <MarriageData>[].obs;
@override
void onInit() {
super.onInit();
listRefreshController = EasyRefreshController(
controlFinishRefresh: true,
controlFinishLoad: true,
);
// 从全局依赖中获取HomeApi
_homeApi = Get.find<HomeApi>();
_userApi = Get.find<UserApi>();
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<String, dynamic>))
.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 = <Records>[].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;
}
}
}