|
|
@ -2,6 +2,7 @@ package msgtransfer
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"context"
|
|
|
|
|
|
|
|
"encoding/json"
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/proto/sdkws"
|
|
|
|
"github.com/OpenIMSDK/Open-IM-Server/pkg/proto/sdkws"
|
|
|
|
|
|
|
|
|
|
|
@ -52,7 +53,8 @@ func (mc *OnlineHistoryMongoConsumerHandler) handleChatWs2Mongo(ctx context.Cont
|
|
|
|
log.ZError(ctx, "remove cache msg from redis err", err, "msg", msgFromMQ.MsgData, "conversationID", msgFromMQ.ConversationID)
|
|
|
|
log.ZError(ctx, "remove cache msg from redis err", err, "msg", msgFromMQ.MsgData, "conversationID", msgFromMQ.ConversationID)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for _, v := range msgFromMQ.MsgData {
|
|
|
|
for _, v := range msgFromMQ.MsgData {
|
|
|
|
if v.ContentType == constant.DeleteMessageNotification {
|
|
|
|
switch v.ContentType {
|
|
|
|
|
|
|
|
case constant.DeleteMessageNotification:
|
|
|
|
deleteMessageTips := sdkws.DeleteMessageTips{}
|
|
|
|
deleteMessageTips := sdkws.DeleteMessageTips{}
|
|
|
|
err := proto.Unmarshal(v.Content, &deleteMessageTips)
|
|
|
|
err := proto.Unmarshal(v.Content, &deleteMessageTips)
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
@ -61,10 +63,31 @@ func (mc *OnlineHistoryMongoConsumerHandler) handleChatWs2Mongo(ctx context.Cont
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if totalUnExistSeqs, err := mc.msgDatabase.DelMsgBySeqs(ctx, deleteMessageTips.UserID, deleteMessageTips.Seqs); err != nil {
|
|
|
|
if totalUnExistSeqs, err := mc.msgDatabase.DelMsgBySeqs(ctx, deleteMessageTips.UserID, deleteMessageTips.Seqs); err != nil {
|
|
|
|
log.ZError(ctx, "DelMsgBySeqs", err, "userIDs", deleteMessageTips.UserID, "seqs", deleteMessageTips.Seqs, "totalUnExistSeqs", totalUnExistSeqs)
|
|
|
|
log.ZError(ctx, "DelMsgBySeqs", err, "userIDs", deleteMessageTips.UserID, "seqs", deleteMessageTips.Seqs, "totalUnExistSeqs", totalUnExistSeqs)
|
|
|
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
case constant.MsgRevokeNotification:
|
|
|
|
|
|
|
|
var elem sdkws.NotificationElem
|
|
|
|
|
|
|
|
if err := json.Unmarshal(v.Content, &elem); err != nil {
|
|
|
|
|
|
|
|
log.ZError(ctx, "json.Unmarshal NotificationElem", err, "content", string(v.Content))
|
|
|
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
var tips sdkws.RevokeMsgTips
|
|
|
|
|
|
|
|
if err := json.Unmarshal([]byte(elem.Detail), &tips); err != nil {
|
|
|
|
|
|
|
|
log.ZError(ctx, "json.Unmarshal RevokeMsgTips", err, "content", string(v.Content))
|
|
|
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
v.Seq = tips.Seq
|
|
|
|
|
|
|
|
data, err := proto.Marshal(v)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
log.ZError(ctx, "proto.Marshal MsgData", err)
|
|
|
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if err := mc.msgDatabase.RevokeMsg(ctx, tips.ConversationID, tips.Seq, data); err != nil {
|
|
|
|
|
|
|
|
log.ZError(ctx, "RevokeMsg", err, "conversationID", tips.ConversationID, "seq", tips.Seq)
|
|
|
|
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func (OnlineHistoryMongoConsumerHandler) Setup(_ sarama.ConsumerGroupSession) error { return nil }
|
|
|
|
func (OnlineHistoryMongoConsumerHandler) Setup(_ sarama.ConsumerGroupSession) error { return nil }
|
|
|
|