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 cea3375..cfce088 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 @@ -63,14 +63,16 @@ public class GroupManager { public GroupCreateResponse createGroup(GroupCreateRequest request) { BizAssertions.assertTrue(request.getPeople().size() > 1, "群成员数量(含群主)不能少于2"); groupSupport.log(0L, "create-group:preparing", request); - Group savedGroup = groupDao.findByBizCode(request.getBizCode(), request.getGroupType(), true) - .orElse(null); - BizAssertions.assertTrue(savedGroup == null || savedGroup.isDismissed(), - String.format("群已经存在: %s", request.getName())); - ImAccounts imAccounts = accountService.getOrCreateImAccounts(request.getPeople()); - String owner = imAccounts.findAccount(request.getOwner()).orElse(null); - BizAssertions.assertNotNull(owner, "群主没有IM账号, 无法创建群. {}", request.getOwner()); + // DON'T delete this line + accountService.getOrCreateImAccounts(request.getPeople()); return transactionTemplate.execute(unused -> { + Group savedGroup = groupDao.findByBizCode(request.getBizCode(), request.getGroupType(), true) + .orElse(null); + BizAssertions.assertTrue(savedGroup == null || savedGroup.isDismissed(), + String.format("群已经存在: %s", request.getName())); + ImAccounts imAccounts = accountService.getOrCreateImAccounts(request.getPeople()); + String owner = imAccounts.findAccount(request.getOwner()).orElse(null); + BizAssertions.assertNotNull(owner, "群主没有IM账号, 无法创建群. {}", request.getOwner()); Group group = groupSupport.buildNewGroup(request, imAccounts); BizAssertions.assertTrue(group.addMoreMembers( request.getPeople().size()), "无法创建群, 群成员数量超过上限" + group.getMemberLimit()); @@ -120,8 +122,8 @@ public class GroupManager { accountService.getOrCreateImAccounts(request.getMembers()); return transactionTemplate.execute(unused -> { Group group = getGroupForUpdateOrThrow(request.getTid()); - BizAssertions.assertFalse(group.isDismissed(), "群已经解散"); groupSupport.log(group.getTid(), "add-members", request); + BizAssertions.assertFalse(group.isDismissed(), "群已经解散"); // sync members 1 groupMemberSyncer.syncMembers(group); // prepare add members