diff --git a/im-center-server/src/main/java/cn/axzo/im/group/GroupManager.java b/im-center-server/src/main/java/cn/axzo/im/group/GroupManager.java index 8adbeb6..cea3375 100644 --- a/im-center-server/src/main/java/cn/axzo/im/group/GroupManager.java +++ b/im-center-server/src/main/java/cn/axzo/im/group/GroupManager.java @@ -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 prePersons = groupMemberDao.getAsPersons(group.getTid()); - Set 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 prePersons = groupMemberDao.getAsPersons(group.getTid()); + Set 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()));