REQ-3345: 解决查询不到账号的问题

This commit is contained in:
yanglin 2025-02-18 16:27:48 +08:00
parent 3e30c85a5c
commit 72a8ee121e

View File

@ -116,22 +116,24 @@ public class GroupManager {
}
public GroupAddMembersResponse addMembers(GroupAddMembersRequest request) {
Group group = getGroupForUpdateOrThrow(request.getTid());
BizAssertions.assertFalse(group.isDismissed(), "群已经解散");
groupSupport.log(group.getTid(), "add-members", request);
// sync members 1
groupMemberSyncer.syncMembers(group);
// prepare add members
Set<PersonAccountAttribute> prePersons = groupMemberDao.getAsPersons(group.getTid());
Set<PersonAccountAttribute> addPersons = request.getMembers().stream()
.filter(member -> !prePersons.contains(member))
.collect(toSet());
if (addPersons.isEmpty())
return new GroupAddMembersResponse();
BizAssertions.assertTrue(group.addMoreMembers(prePersons.size() + addPersons.size()),
"群聊人数上限{}人, 请删除部分已选人员", group.getMemberLimit());
ImAccounts imAccounts = accountService.getOrCreateImAccounts(addPersons);
// DON'T delete this line
accountService.getOrCreateImAccounts(request.getMembers());
return transactionTemplate.execute(unused -> {
Group group = getGroupForUpdateOrThrow(request.getTid());
BizAssertions.assertFalse(group.isDismissed(), "群已经解散");
groupSupport.log(group.getTid(), "add-members", request);
// sync members 1
groupMemberSyncer.syncMembers(group);
// prepare add members
Set<PersonAccountAttribute> prePersons = groupMemberDao.getAsPersons(group.getTid());
Set<PersonAccountAttribute> addPersons = request.getMembers().stream()
.filter(member -> !prePersons.contains(member))
.collect(toSet());
if (addPersons.isEmpty())
return new GroupAddMembersResponse();
BizAssertions.assertTrue(group.addMoreMembers(prePersons.size() + addPersons.size()),
"群聊人数上限{}人, 请删除部分已选人员", group.getMemberLimit());
ImAccounts imAccounts = accountService.getOrCreateImAccounts(addPersons);
if (imAccounts.isAccountEmpty()) {
notification.send("添加群成员[{},{}], 有效群成员IM账号列表为空. 请求成员信息: {}",
group.getTid(), group.getName(), JSON.toJSONString(request.getMembers()));