group message fix bug

This commit is contained in:
Gordon 2021-11-01 17:16:47 +08:00
parent 7f19f2f046
commit 082de2b6b7

View File

@ -33,7 +33,7 @@ func (mc *HistoryConsumerHandler) Init() {
func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) { func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) {
log.InfoByKv("chat come mongo!!!", "", "chat", string(msg)) log.InfoByKv("chat come mongo!!!", "", "chat", string(msg))
time := utils.GetCurrentTimestampBySecond() time := utils.GetCurrentTimestampByNano()
pbData := pbMsg.WSToMsgSvrChatMsg{} pbData := pbMsg.WSToMsgSvrChatMsg{}
err := proto.Unmarshal(msg, &pbData) err := proto.Unmarshal(msg, &pbData)
if err != nil { if err != nil {
@ -59,47 +59,53 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string)
isHistory := utils.GetSwitchFromOptions(Options, "history") isHistory := utils.GetSwitchFromOptions(Options, "history")
//Control whether to store history messages (mysql) //Control whether to store history messages (mysql)
isPersist := utils.GetSwitchFromOptions(Options, "persistent") isPersist := utils.GetSwitchFromOptions(Options, "persistent")
if pbData.SessionType == constant.SingleChatType { switch pbData.SessionType {
log.Info("", "", "msg_transfer chat type = SingleChatType", isHistory, isPersist) case constant.SingleChatType:
log.NewDebug(pbSaveData.OperationID, "msg_transfer chat type = SingleChatType", isHistory, isPersist)
if isHistory { if isHistory {
if msgKey == pbSaveData.RecvID { if msgKey == pbSaveData.RecvID {
err := saveUserChat(pbData.RecvID, &pbSaveData) err := saveUserChat(pbData.RecvID, &pbSaveData)
if err != nil { if err != nil {
log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) log.NewError(pbSaveData.OperationID, "single data insert to mongo err", err.Error(), pbSaveData.String())
return
} }
} else if msgKey == pbSaveData.SendID { } else if msgKey == pbSaveData.SendID {
err := saveUserChat(pbData.SendID, &pbSaveData) err := saveUserChat(pbData.SendID, &pbSaveData)
if err != nil { if err != nil {
log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) log.NewError(pbSaveData.OperationID, "single data insert to mongo err", err.Error(), pbSaveData.String())
return
} }
} }
log.NewInfo(pbSaveData.OperationID, "saveUserChat cost time ", utils.GetCurrentTimestampBySecond()-time) log.NewDebug(pbSaveData.OperationID, "saveUserChat cost time ", utils.GetCurrentTimestampByNano()-time)
} }
if msgKey == pbSaveData.RecvID { if msgKey == pbSaveData.RecvID {
pbSaveData.Options = pbData.Options pbSaveData.Options = pbData.Options
pbSaveData.OfflineInfo = pbData.OfflineInfo pbSaveData.OfflineInfo = pbData.OfflineInfo
go sendMessageToPush(&pbSaveData) go sendMessageToPush(&pbSaveData)
log.NewInfo(pbSaveData.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampBySecond()-time) log.NewDebug(pbSaveData.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampByNano()-time)
} }
log.InfoByKv("msg_transfer handle topic success...", "", "") case constant.GroupChatType:
} else if pbData.SessionType == constant.GroupChatType { log.NewDebug(pbSaveData.OperationID, "msg_transfer chat type = GroupChatType", isHistory, isPersist)
log.Info("", "", "msg_transfer chat type = GroupChatType")
if isHistory { if isHistory {
uidAndGroupID := strings.Split(pbData.RecvID, " ") uidAndGroupID := strings.Split(pbData.RecvID, " ")
saveUserChat(uidAndGroupID[0], &pbSaveData) err := saveUserChat(uidAndGroupID[0], &pbSaveData)
if err != nil {
log.NewError(pbSaveData.OperationID, "group data insert to mongo err", pbSaveData.String(), uidAndGroupID[0], err.Error())
return
}
} }
pbSaveData.Options = pbData.Options pbSaveData.Options = pbData.Options
pbSaveData.OfflineInfo = pbData.OfflineInfo pbSaveData.OfflineInfo = pbData.OfflineInfo
sendMessageToPush(&pbSaveData) go sendMessageToPush(&pbSaveData)
log.InfoByKv("msg_transfer handle topic success...", "", "") default:
} else { log.NewError(pbSaveData.OperationID, "SessionType error", pbSaveData.String())
log.Error("", "", "msg_transfer recv chat err, chat.MsgFrom = %d", pbData.SessionType) return
} }
log.NewDebug(pbSaveData.OperationID, "msg_transfer handle topic data to database success...", pbSaveData.String())
} }
func (HistoryConsumerHandler) Setup(_ sarama.ConsumerGroupSession) error { return nil } func (HistoryConsumerHandler) Setup(_ sarama.ConsumerGroupSession) error { return nil }