quit group, then send notification

This commit is contained in:
imndx
2019-07-04 07:07:36 +08:00
parent 385b03a163
commit 4d82eace86
@@ -20,19 +20,14 @@ import static win.liyufan.im.IMTopic.QuitGroupTopic;
public class QuitGroupHandler extends GroupHandler<WFCMessage.QuitGroupRequest> { public class QuitGroupHandler extends GroupHandler<WFCMessage.QuitGroupRequest> {
@Override @Override
public ErrorCode action(ByteBuf ackPayload, String clientID, String fromUser, boolean isAdmin, WFCMessage.QuitGroupRequest request, Qos1PublishHandler.IMCallback callback) { public ErrorCode action(ByteBuf ackPayload, String clientID, String fromUser, boolean isAdmin, WFCMessage.QuitGroupRequest request, Qos1PublishHandler.IMCallback callback) {
ErrorCode errorCode = ErrorCode.ERROR_CODE_SUCCESS; ErrorCode errorCode = m_messagesStore.quitGroup(fromUser, request.getGroupId());
WFCMessage.GroupInfo groupInfo = m_messagesStore.getGroupInfo(request.getGroupId()); if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) {
if (groupInfo == null) {
errorCode = m_messagesStore.quitGroup(fromUser, request.getGroupId());
} else {
//send notify message first, then quit group
if (request.hasNotifyContent() && request.getNotifyContent().getType() > 0) { if (request.hasNotifyContent() && request.getNotifyContent().getType() > 0) {
sendGroupNotification(fromUser, groupInfo.getTargetId(), request.getToLineList(), request.getNotifyContent()); sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), request.getNotifyContent());
} else { } else {
WFCMessage.MessageContent content = new GroupNotificationBinaryContent(request.getGroupId(), fromUser, null, "").getQuitGroupNotifyContent(); WFCMessage.MessageContent content = new GroupNotificationBinaryContent(request.getGroupId(), fromUser, null, "").getQuitGroupNotifyContent();
sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), content); sendGroupNotification(fromUser, request.getGroupId(), request.getToLineList(), content);
} }
errorCode = m_messagesStore.quitGroup(fromUser, request.getGroupId());
} }
return errorCode; return errorCode;
} }