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..4657b7b 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,7 +116,8 @@ public class GroupManager { } public GroupAddMembersResponse addMembers(GroupAddMembersRequest request) { - Group group = getGroupForUpdateOrThrow(request.getTid()); + Group group = groupDao.findByTid(request.getTid(), false).orElse(null); + //noinspection DataFlowIssue BizAssertions.assertFalse(group.isDismissed(), "群已经解散"); groupSupport.log(group.getTid(), "add-members", request); // sync members 1 @@ -128,19 +129,20 @@ public class GroupManager { .collect(toSet()); if (addPersons.isEmpty()) return new GroupAddMembersResponse(); + ImAccounts imAccounts = accountService.getOrCreateImAccounts(addPersons); 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())); + return new GroupAddMembersResponse(); + } + NimGroupAddMembersRequest nimRequest = groupSupport + .buildAddMembersRequest(group, group.getOwnerAccount(), imAccounts); + // add members + rateLimiter.requireAddMember(); return transactionTemplate.execute(unused -> { - if (imAccounts.isAccountEmpty()) { - notification.send("添加群成员[{},{}], 有效群成员IM账号列表为空. 请求成员信息: {}", - group.getTid(), group.getName(), JSON.toJSONString(request.getMembers())); - return new GroupAddMembersResponse(); - } - NimGroupAddMembersRequest nimRequest = groupSupport - .buildAddMembersRequest(group, group.getOwnerAccount(), imAccounts); - // add members - rateLimiter.requireAddMember(); + getGroupForUpdateOrThrow(group.getTid()); NimGroupAddMembersResponse nimResponse = nimClient.addGroupMembers(nimRequest); log.info("添加群成员, request={}, response={}", nimRequest, nimResponse); BizAssertions.assertTrue(nimResponse.isSuccess(), "添加群成员失败: {}", nimResponse.getDesc());