fix modify group notification timestamp issue

This commit is contained in:
heavyrain2012
2019-04-04 07:39:41 +08:00
parent e3e122edc4
commit 8ef92d0c1b
9 changed files with 13 additions and 41 deletions
@@ -26,13 +26,13 @@ abstract public class GroupHandler<T> extends IMHandler<T> {
}
for (int line : lines) {
WFCMessage.Message.Builder builder = WFCMessage.Message.newBuilder().setContent(content);
builder.setConversation(builder.getConversationBuilder().setType(ProtoConstants.ConversationType.ConversationType_Group).setTarget(targetId).setLine(line));
long timestamp = System.currentTimeMillis();
WFCMessage.Message.Builder builder = WFCMessage.Message.newBuilder().setContent(content).setServerTimestamp(timestamp);
builder.setConversation(builder.getConversationBuilder().setType(ProtoConstants.ConversationType.ConversationType_Group).setTarget(targetId).setLine(line));
builder.setFromUser(fromUser);
long messageId = MessageShardingUtil.generateId();
builder.setMessageId(messageId);
saveAndPublish(fromUser, null, builder.build(), timestamp);
saveAndPublish(fromUser, null, builder.build());
}
}
@@ -32,7 +32,7 @@ public class HandleFriendRequestHandler extends IMHandler<WFCMessage.HandleFrien
long timestamp = System.currentTimeMillis();
builder.setMessageId(messageId);
builder.setServerTimestamp(timestamp);
saveAndPublish(request.getTargetUid(), null, builder.build(), timestamp);
saveAndPublish(request.getTargetUid(), null, builder.build());
WFCMessage.MessageContent.Builder contentBuilder = WFCMessage.MessageContent.newBuilder().setType(90).setContent("以上是打招呼信息");
builder = WFCMessage.Message.newBuilder();
@@ -44,7 +44,7 @@ public class HandleFriendRequestHandler extends IMHandler<WFCMessage.HandleFrien
messageId = MessageShardingUtil.generateId();
builder.setMessageId(messageId);
saveAndPublish(request.getTargetUid(), null, builder.build(), timestamp);
saveAndPublish(request.getTargetUid(), null, builder.build());
contentBuilder.setContent("你们已经成为好友了,现在可以开始聊天了");
builder.setContent(contentBuilder);
@@ -52,7 +52,7 @@ public class HandleFriendRequestHandler extends IMHandler<WFCMessage.HandleFrien
builder.setMessageId(messageId);
timestamp = System.currentTimeMillis();
builder.setServerTimestamp(timestamp);
saveAndPublish(request.getTargetUid(), null, builder.build(), System.currentTimeMillis());
saveAndPublish(request.getTargetUid(), null, builder.build());
publisher.publishNotification(IMTopic.NotifyFriendTopic, request.getTargetUid(), heads[0]);
publisher.publishNotification(IMTopic.NotifyFriendTopic, fromUser, heads[1]);
@@ -240,10 +240,10 @@ abstract public class IMHandler<T> {
}
protected long saveAndPublish(String username, String clientID, WFCMessage.Message message, long timestamp) {
protected long saveAndPublish(String username, String clientID, WFCMessage.Message message) {
Set<String> notifyReceivers = new LinkedHashSet<>();
message = m_messagesStore.storeMessage(username, clientID, message, timestamp);
message = m_messagesStore.storeMessage(username, clientID, message);
int pullType = m_messagesStore.getNotifyReceivers(username, message, notifyReceivers);
this.publisher.publish2Receivers(message, notifyReceivers, clientID, pullType);
return message.getMessageId();
@@ -99,7 +99,7 @@ public class SendMessageHandler extends IMHandler<WFCMessage.Message> {
if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) {
if (!ignoreMsg) {
saveAndPublish(fromUser, clientID, message, timestamp);
saveAndPublish(fromUser, clientID, message);
}
ackPayload = ackPayload.capacity(20);
ackPayload.writeLong(messageId);
@@ -150,7 +150,7 @@ public class MemoryMessagesStore implements IMessagesStore {
}
@Override
public WFCMessage.Message storeMessage(String fromUser, String fromClientId, WFCMessage.Message message, long timestamp) {
public WFCMessage.Message storeMessage(String fromUser, String fromClientId, WFCMessage.Message message) {
HazelcastInstance hzInstance = m_Server.getHazelcastInstance();
IMap<Long, MessageBundle> mIMap = hzInstance.getMap(MESSAGES_MAP);
@@ -97,7 +97,7 @@ public interface IMessagesStore {
}
DatabaseStore getDatabaseStore();
WFCMessage.Message storeMessage(String fromUser, String fromClientId, WFCMessage.Message message, long timestamp);
WFCMessage.Message storeMessage(String fromUser, String fromClientId, WFCMessage.Message message);
int getNotifyReceivers(String fromUser, WFCMessage.Message message, Set<String> notifyReceivers);
WFCMessage.PullMessageResult fetchMessage(String user, String exceptClientId, long fromMessageId, int pullType);
long insertUserMessages(String sender, int conversationType, String target, int line, int messageContentType, String userId, long messageId);