fetchTeamMember method

Future<void> fetchTeamMember(
  1. String tId, {
  2. bool loadMore = false,
})

获取群成员

Implementation

Future<void> fetchTeamMember(String tId, {bool loadMore = false}) async {
  if (_isLoading) {
    return;
  }
  _isLoading = true;
  if (loadMore && _haveFinished) {
    _isLoading = false;
    return;
  }
  if (currentChatSession?.conversationType == NIMConversationType.team &&
      tId == (await currentChatSession?.targetId)) {
    var option = NIMTeamMemberQueryOption(
        limit: 1000,
        roleQueryType: NIMTeamMemberRoleQueryType.memberRoleQueryTypeAll);

    if (loadMore) {
      option.nextToken = _nextMemberToken;
    } else {
      _nextMemberToken = null;
    }

    //获取群成员
    var memberResult = await getIt<TeamProvider>().queryMemberList(
        await currentChatSession!.targetId, NIMTeamType.typeNormal,
        option: option);

    if (memberResult.isSuccess && memberResult.data != null) {
      _nextMemberToken = memberResult.data!.nextToken;

      _haveFinished = memberResult.data!.finished;

      if (!loadMore) {
        _teamMembers.clear();
      }
      for (var member in memberResult.data!.memberList) {
        _teamMembers[member.teamInfo.accountId] = member;
      }
      //确保获取本人的成员信息
      if (!_teamMembers.containsKey(IMKitClient.account()!)) {
        final myInfo = await getMyTeamMember(tId);
        if (myInfo != null) {
          _teamMembers[IMKitClient.account()!] = myInfo;
        }
      }
      _teamMembersNotifier.add(sortList(_teamMembers.values.toList())!);
    }
  } else {
    Alog.e(
        tag: logTag,
        content:
            'fetchTeamMember error currentSessionId =  ${currentChatSession?.conversationId} tid =  $tId conversationType = ${currentChatSession?.conversationType}');
  }
  _isLoading = false;
}