diff --git a/lib/http/api.dart b/lib/http/api.dart index 8211d9a5..eeba5cfb 100644 --- a/lib/http/api.dart +++ b/lib/http/api.dart @@ -135,7 +135,9 @@ class Api { static const String relatedList = '/x/web-interface/archive/related'; // 查询用户与自己关系_仅查关注 - static const String hasFollow = '/x/relation'; + static const String relation = '/x/relation'; + + static const String relations = '/x/relation/relations'; // 操作用户关系 static const String relationMod = '/x/relation/modify'; diff --git a/lib/http/user.dart b/lib/http/user.dart index 4139cd7e..593789f1 100644 --- a/lib/http/user.dart +++ b/lib/http/user.dart @@ -346,7 +346,7 @@ class UserHttp { static Future hasFollow(int mid) async { var res = await Request().get( - Api.hasFollow, + Api.relation, queryParameters: { 'fid': mid, }, diff --git a/lib/http/video.dart b/lib/http/video.dart index 74335ce2..176accb8 100644 --- a/lib/http/video.dart +++ b/lib/http/video.dart @@ -784,7 +784,7 @@ class VideoHttp { // 查询是否关注up static Future hasFollow({required int mid}) async { - var res = await Request().get(Api.hasFollow, queryParameters: {'fid': mid}); + var res = await Request().get(Api.relation, queryParameters: {'fid': mid}); if (res.data['code'] == 0) { return {'status': true, 'data': res.data['data']}; } else { diff --git a/lib/pages/video/detail/introduction/controller.dart b/lib/pages/video/detail/introduction/controller.dart index f79cb487..6698a888 100644 --- a/lib/pages/video/detail/introduction/controller.dart +++ b/lib/pages/video/detail/introduction/controller.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import 'package:PiliPlus/http/api.dart'; import 'package:PiliPlus/http/init.dart'; import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/http/member.dart'; @@ -150,23 +151,6 @@ class VideoIntroController extends GetxController } videoDetail.value = result['data']; videoItem['staff'] = result['data'].staff; - if (result['data'].staff?.isNotEmpty == true) { - Request().get( - '/x/relation/relations', - queryParameters: { - 'fids': (result['data'].staff as List) - .map((item) => item.mid) - .join(',') - }, - ).then((res) { - if (res.data['code'] == 0) { - staffRelations.value = { - 'status': true, - if (res.data['data'] != null) ...res.data['data'], - }; - } - }); - } try { final videoDetailController = Get.find(tag: heroTag); @@ -187,7 +171,7 @@ class VideoIntroController extends GetxController // '评论 ${result['data']!.stat!.reply}' // ]; // 获取到粉丝数再返回 - await queryUserStat(); + queryUserStat(); } else { SmartDialog.showToast( "${result['code']} ${result['msg']} ${result['data']}"); @@ -215,14 +199,32 @@ class VideoIntroController extends GetxController // 获取up主粉丝数 Future queryUserStat() async { - if (videoDetail.value.owner == null) { - return; - } - var result = - await MemberHttp.memberCardInfo(mid: videoDetail.value.owner!.mid!); - if (result['status']) { - userStat.value = result['data']; - userStat.refresh(); + if (videoItem['staff']?.isNotEmpty == true) { + Request().get( + Api.relations, + queryParameters: { + 'fids': (videoItem['staff'] as List) + .map((item) => item.mid) + .join(',') + }, + ).then((res) { + if (res.data['code'] == 0) { + staffRelations.value = { + 'status': true, + if (res.data['data'] != null) ...res.data['data'], + }; + } + }); + } else { + if (videoDetail.value.owner == null) { + return; + } + var result = + await MemberHttp.memberCardInfo(mid: videoDetail.value.owner!.mid!); + if (result['status']) { + userStat.value = result['data']; + userStat.refresh(); + } } }