From 86a2e2fdbecb6b67a7a1cdfd9a88842ccca5fbf5 Mon Sep 17 00:00:00 2001 From: yanglin Date: Tue, 18 Feb 2025 16:35:00 +0800 Subject: [PATCH] =?UTF-8?q?REQ-3345:=20=E8=A7=A3=E5=86=B3=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=B8=8D=E5=88=B0=E8=B4=A6=E5=8F=B7=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/axzo/im/group/GroupManager.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) 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