circle_app/circle_app/lib/app/friendslist/logic.dart
2023-07-04 09:23:30 +08:00

154 lines
3.6 KiB
Dart

import 'package:get/get.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import '../../network/api.dart';
import '../../network/dio_manager.dart';
import 'state.dart';
class FriendslistLogic extends GetxController {
final RefreshController refreshController = RefreshController();
final FriendslistState state = FriendslistState();
final type = Get.arguments as String;
int page = 1;
int isVip = 0;
List<UserInfo> lists = [];
@override
void onInit() async{
super.onInit();
initList();
}
initList() async{
if(page==1){
lists.clear();
}
switch(type){
case "0":
var data =
await DioManager.instance.get(url: Api.followList, params: {
'page':page
});
var bean = BaseResponse<User>.fromJson(data, (data) => User.fromJson(data));
if (bean.isSuccess()) {
lists.addAll(bean.data.lists);
}
update();
if(page == 1){
refreshController.refreshCompleted();
}else{
refreshController.loadComplete();
}
return ;
case "1":
var data =
await DioManager.instance.get(url: Api.fansList, params: {
'page':page
});
var bean = BaseResponse<User>.fromJson(data, (data) => User.fromJson(data));
if (bean.isSuccess()) {
lists.addAll(bean.data.lists);
}
update();
if(page == 1){
refreshController.refreshCompleted();
}else{
refreshController.loadComplete();
}
return ;
case "2":
var data =
await DioManager.instance.get(url: Api.visitList, params: {
'page':page
});
var bean = BaseResponse<User>.fromJson(data, (data) => User.fromJson(data));
if (bean.isSuccess()) {
lists.addAll(bean.data.lists);
}
update();
if(page == 1){
refreshController.refreshCompleted();
}else{
refreshController.loadComplete();
}
return ;
}
}
}
class User {
final List<UserInfo> lists;
final int total;
User({required this.lists, required this.total});
factory User.fromJson(Map<String, dynamic> json) {
final List<dynamic> userList = json['lists'];
final List<UserInfo> users = userList.map((user) => UserInfo.fromJson(user)).toList();
final int total = json['total'];
return User(lists: users, total: total);
}
}
class UserInfo {
final int id;
final String nickname;
final String avatar;
final String signature;
final String birthday;
final int age;
final int vip;
final int gender;
final int role;
final int orientation;
final double lng;
final double lat;
final String city;
final String avatarThumb;
UserInfo({
required this.id,
required this.nickname,
required this.avatar,
required this.signature,
required this.birthday,
required this.age,
required this.vip,
required this.gender,
required this.role,
required this.orientation,
required this.lng,
required this.lat,
required this.city,
required this.avatarThumb,
});
factory UserInfo.fromJson(Map<String, dynamic> json) {
return UserInfo(
id: json['id'],
nickname: json['nickname'],
avatar: json['avatar'],
signature: json['signature'],
birthday: json['birthday'],
age: json['age'],
vip: json['vip'],
gender: json['gender'],
role: json['role'],
orientation: json['orientation'],
lng: json['lng'],
lat: json['lat'],
city: json['city'],
avatarThumb: json['avatar_thumb'],
);
}
}