diff --git a/broker/src/main/java/io/moquette/imhandler/QuitGroupHandler.java b/broker/src/main/java/io/moquette/imhandler/QuitGroupHandler.java index e36e66b4..38a3b9c8 100644 --- a/broker/src/main/java/io/moquette/imhandler/QuitGroupHandler.java +++ b/broker/src/main/java/io/moquette/imhandler/QuitGroupHandler.java @@ -20,19 +20,14 @@ import static win.liyufan.im.IMTopic.QuitGroupTopic; public class QuitGroupHandler extends GroupHandler { @Override public ErrorCode action(ByteBuf ackPayload, String clientID, String fromUser, boolean isAdmin, WFCMessage.QuitGroupRequest request, Qos1PublishHandler.IMCallback callback) { - ErrorCode errorCode = ErrorCode.ERROR_CODE_SUCCESS; - WFCMessage.GroupInfo groupInfo = m_messagesStore.getGroupInfo(request.getGroupId()); - if (groupInfo == null) { - errorCode = m_messagesStore.quitGroup(fromUser, request.getGroupId()); - } else { - //send notify message first, then quit group + ErrorCode errorCode = m_messagesStore.quitGroup(fromUser, request.getGroupId()); + if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) { if (request.hasNotifyContent() && request.getNotifyContent().getType() > 0) { - sendGroupNotification(fromUser, groupInfo.getTargetId(), request.getToLineList(), request.getNotifyContent()); + sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), request.getNotifyContent()); } else { WFCMessage.MessageContent content = new GroupNotificationBinaryContent(request.getGroupId(), fromUser, null, "").getQuitGroupNotifyContent(); sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), content); } - errorCode = m_messagesStore.quitGroup(fromUser, request.getGroupId()); } return errorCode; }