fetchTeamMember method
获取群成员
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;
}