From ce214417727eff6e41bb7c2a031f4beff5757813 Mon Sep 17 00:00:00 2001 From: heavyrian2012 Date: Tue, 23 Apr 2024 13:28:53 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BE=A4=E4=B8=BB=E5=BC=BA=E5=88=B6=E8=A2=AB?= =?UTF-8?q?=E9=80=80=E7=BE=A4=E6=97=B6=EF=BC=88=E9=94=80=E6=AF=81=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7/server=20api=E5=BC=BA=E5=88=B6=E9=80=80=E7=BE=A4?= =?UTF-8?q?=EF=BC=89=EF=BC=8C=E8=B0=83=E6=95=B4=E6=96=B0=E7=BE=A4=E4=B8=BB?= =?UTF-8?q?=E9=80=89=E6=8B=A9=EF=BC=8C=E7=BE=A4=E7=AE=A1=E7=90=86=E4=BC=98?= =?UTF-8?q?=E5=85=88=EF=BC=8C=E5=85=88=E5=8A=A0=E5=85=A5=E7=BE=A4=E7=BB=84?= =?UTF-8?q?=E4=BC=98=E5=85=88=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moquette/persistence/MemoryMessagesStore.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index cdc60eb8..601fa86f 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -1720,8 +1720,19 @@ public class MemoryMessagesStore implements IMessagesStore { WFCMessage.GroupMember newOwner = null; for (WFCMessage.GroupMember member :members) { if (!member.getMemberId().equals(operator) && member.getType() != GroupMemberType_Removed) { - newOwner = member; - break; + if(newOwner == null) { + newOwner = member; + } else { + if(newOwner.getType() == GroupMemberType_Silent && member.getType() != GroupMemberType_Silent) { + newOwner = member; + } else if(newOwner.getType() != GroupMemberType_Manager && member.getType() == GroupMemberType_Manager) { + newOwner = member; + } else if(newOwner.getType() == member.getType()) { + if(newOwner.getCreateDt() > member.getCreateDt() && member.getCreateDt() > 0) { + newOwner = member; + } + } + } } }