REQ-3345: 邀请人问题

This commit is contained in:
yanglin 2025-02-21 17:38:51 +08:00
parent 2e01f785e2
commit f67c3a1fcb
3 changed files with 17 additions and 1 deletions

View File

@ -20,6 +20,12 @@ public class GroupAddMembersRequest {
@NotNull(message = "群ID不能为空")
private Long tid;
/**
* 邀请者
*/
@NotNull(message = "inviter不能为空")
private PersonAccountAttribute inviter;
/**
* 群成员, 不包含群主. members数量不能超过199
*/

View File

@ -11,6 +11,7 @@ import org.springframework.stereotype.Repository;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import static java.util.stream.Collectors.toSet;
@ -55,6 +56,11 @@ public class GroupMemberDao extends ServiceImpl<GroupMapperMapper, GroupMember>
.remove();
}
public Optional<GroupMember> findByPerson(Long tid, PersonAccountAttribute person) {
List<GroupMember> members = getByPersons(tid, Collections.singletonList(person));
return CollectionUtils.isEmpty(members) ? Optional.empty() : Optional.of(members.get(0));
}
public List<GroupMember> getByPersons(
Long tid, Collection<PersonAccountAttribute> persons) {
if (CollectionUtils.isEmpty(persons))

View File

@ -141,8 +141,12 @@ public class GroupManager {
group.getTid(), group.getName(), JSON.toJSONString(request.getMembers()));
return new GroupAddMembersResponse();
}
GroupMember inviter = groupMemberDao
.findByPerson(group.getTid(), request.getInviter())
.orElse(null);
BizAssertions.assertNotNull(inviter, "邀请者不在群中");
NimGroupAddMembersRequest nimRequest = groupSupport
.buildAddMembersRequest(group, group.getOwnerAccount(), imAccounts);
.buildAddMembersRequest(group, inviter.getImAccount(), imAccounts);
// add members
rateLimiter.requireAddMember();
NimGroupAddMembersResponse nimResponse = nimClient.addGroupMembers(nimRequest);