From d50a0abd2a3336c384b4628de864188078b5f596 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 7 Dec 2021 10:22:49 +0800 Subject: [PATCH] send message by message receive opt --- internal/rpc/chat/send_msg.go | 4 ++-- pkg/common/db/redisModel.go | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index 530db7fd4..b0e8f663a 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -213,9 +213,9 @@ func returnMsg(replay *pbChat.UserSendMsgResp, pb *pbChat.UserSendMsgReq, errCod } func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType int, msg *pbChat.WSToMsgSvrChatMsg) bool { conversationID := utils.GetConversationIDBySessionType(sourceID, sessionType) - opt, err := db.DB.GetConversationMsgOpt(userID, conversationID) + opt, err := db.DB.GetSingleConversationMsgOpt(userID, conversationID) if err != nil { - log.NewError(msg.OperationID, "GetConversationMsgOpt from redis err", msg.String()) + log.NewError(msg.OperationID, "GetSingleConversationMsgOpt from redis err", msg.String()) return true } switch opt { diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 362eec15d..3fb8c076a 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -91,12 +91,25 @@ func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[s _, err := d.Exec("hmset", key, redis.Args{}.Add().AddFlat(m)...) return err } -func (d *DataBases) SetConversationMsgOpt(userID, conversationID string, opt int) error { +func (d *DataBases) SetSingleConversationMsgOpt(userID, conversationID string, opt int) error { key := conversationReceiveMessageOpt + userID _, err1 := d.Exec("HSet", key, conversationID, opt) return err1 } -func (d *DataBases) GetConversationMsgOpt(userID, conversationID string) (int, error) { +func (d *DataBases) GetSingleConversationMsgOpt(userID, conversationID string) (int, error) { key := conversationReceiveMessageOpt + userID return redis.Int(d.Exec("HGet", key, conversationID)) } +func (d *DataBases) GetAllConversationMsgOpt(userID string) (map[string]int, error) { + key := conversationReceiveMessageOpt + userID + return redis.IntMap(d.Exec("HGETALL", key)) +} +func (d *DataBases) SetMultiConversationMsgOpt(userID string, m map[string]int) error { + key := conversationReceiveMessageOpt + userID + _, err := d.Exec("hmset", key, redis.Args{}.Add().AddFlat(m)...) + return err +} +func (d *DataBases) GetMultiConversationMsgOpt(userID string, conversationIDs []string) ([]int, error) { + key := conversationReceiveMessageOpt + userID + return redis.Ints(d.Exec("hmget", key, redis.Args{}.Add().AddFlat(conversationIDs)...)) +}