From 989f5aa190b40405ecc4fef954473bc7886d5e34 Mon Sep 17 00:00:00 2001 From: imhao183 Date: Thu, 20 Aug 2020 12:09:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E7=BE=A4=E7=BB=84=E6=88=96?= =?UTF-8?q?=E8=80=85=E6=B7=BB=E5=8A=A0=E7=BE=A4=E7=BB=84=E6=88=90=E5=91=98?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E7=BE=A4=E7=BB=84=E6=88=90=E5=91=98=E6=8C=89?= =?UTF-8?q?=E7=85=A7=E8=AF=B7=E6=B1=82=E9=A1=BA=E5=BA=8F=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/MemoryMessagesStore.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index 4ff2d1e0..deda4ed3 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -787,6 +787,21 @@ public class MemoryMessagesStore implements IMessagesStore { } else { groupId = groupInfo.getTargetId(); } + + MultiMap groupMembers = hzInstance.getMultiMap(GROUP_MEMBERS); + + List updatedMemberList = new ArrayList<>(); + for (WFCMessage.GroupMember member : memberList) { + if (member.getMemberId().equals(groupInfo.getOwner())) { + member = member.toBuilder().setUpdateDt(dt).setCreateDt(dt).setType(ProtoConstants.GroupMemberType.GroupMemberType_Owner).build(); + } else { + member = member.toBuilder().setUpdateDt(dt).setCreateDt(dt).build(); + } + groupMembers.put(groupId, member); + updatedMemberList.add(member); + dt++; + } + groupInfo = groupInfo.toBuilder() .setTargetId(groupId) .setName(groupInfo.getName()) @@ -799,20 +814,7 @@ public class MemoryMessagesStore implements IMessagesStore { .setOwner(StringUtil.isNullOrEmpty(groupInfo.getOwner()) ? fromUser : groupInfo.getOwner()) .build(); - mIMap.put(groupId, groupInfo); - MultiMap groupMembers = hzInstance.getMultiMap(GROUP_MEMBERS); - - List updatedMemberList = new ArrayList<>(); - for (WFCMessage.GroupMember member : memberList) { - if (member.getMemberId().equals(groupInfo.getOwner())) { - member = member.toBuilder().setUpdateDt(dt).setCreateDt(dt).setType(ProtoConstants.GroupMemberType.GroupMemberType_Owner).build(); - } else { - member = member.toBuilder().setUpdateDt(dt).setCreateDt(dt).build(); - } - groupMembers.put(groupId, member); - updatedMemberList.add(member); - } - + mIMap.set(groupId, groupInfo); databaseStore.persistGroupMember(groupId, updatedMemberList); return groupInfo; @@ -891,6 +893,7 @@ public class MemoryMessagesStore implements IMessagesStore { } tmp.add(member); newInviteUsers.add(member.getMemberId()); + updateDt++; } memberList = tmp;