Merge branch 'v2.3.0release' of github.com:OpenIMSDK/Open-IM-Server into v2.3.0release

This commit is contained in:
wangchuxiao 2022-09-30 11:05:38 +08:00
commit 151cf3daf2
2 changed files with 23 additions and 16 deletions

View File

@ -5,11 +5,13 @@ import (
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
promePkg "Open_IM/pkg/common/prometheus" promePkg "Open_IM/pkg/common/prometheus"
"Open_IM/pkg/proto/msg" "Open_IM/pkg/proto/msg"
"Open_IM/pkg/utils"
"context" "context"
go_redis "github.com/go-redis/redis/v8" go_redis "github.com/go-redis/redis/v8"
) )
func (rpc *rpcChat) GetSuperGroupMsg(context context.Context, req *msg.GetSuperGroupMsgReq) (*msg.GetSuperGroupMsgResp, error) { func (rpc *rpcChat) GetSuperGroupMsg(context context.Context, req *msg.GetSuperGroupMsgReq) (*msg.GetSuperGroupMsgResp, error) {
log.Debug(req.OperationID, utils.GetSelfFuncName(), req.String())
resp := new(msg.GetSuperGroupMsgResp) resp := new(msg.GetSuperGroupMsgResp)
redisMsgList, failedSeqList, err := commonDB.DB.GetMessageListBySeq(req.GroupID, []uint32{req.Seq}, req.OperationID) redisMsgList, failedSeqList, err := commonDB.DB.GetMessageListBySeq(req.GroupID, []uint32{req.Seq}, req.OperationID)
if err != nil { if err != nil {
@ -40,6 +42,7 @@ func (rpc *rpcChat) GetSuperGroupMsg(context context.Context, req *msg.GetSuperG
resp.MsgData = m resp.MsgData = m
} }
} }
log.Debug(req.OperationID, utils.GetSelfFuncName(), resp.String())
return resp, nil return resp, nil
} }

View File

@ -161,29 +161,33 @@ func (rpc *rpcChat) messageVerification(data *pbChat.SendMsgReq) (bool, int32, s
return false, 201, err.Error(), nil return false, 201, err.Error(), nil
} }
if data.MsgData.ContentType == constant.AdvancedRevoke { if data.MsgData.ContentType == constant.AdvancedRevoke {
revokeMesage := new(MessageRevoked) revokeMessage := new(MessageRevoked)
err := utils.JsonStringToStruct(string(data.MsgData.Content), revokeMesage) err := utils.JsonStringToStruct(string(data.MsgData.Content), revokeMessage)
if err != nil { if err != nil {
log.Error(data.OperationID, "json unmarshal err:", err.Error()) log.Error(data.OperationID, "json unmarshal err:", err.Error())
return false, 201, err.Error(), nil return false, 201, err.Error(), nil
} }
req := pbChat.GetSuperGroupMsgReq{OperationID: data.OperationID, Seq: revokeMesage.Seq, GroupID: data.MsgData.GroupID} log.Debug(data.OperationID, "revoke message is", *revokeMessage)
resp, err := rpc.GetSuperGroupMsg(context.Background(), &req)
if err != nil { if revokeMessage.RevokerID != revokeMessage.SourceMessageSendID {
log.Error(data.OperationID, "GetSuperGroupMsgReq err:", err.Error()) req := pbChat.GetSuperGroupMsgReq{OperationID: data.OperationID, Seq: revokeMessage.Seq, GroupID: data.MsgData.GroupID}
} else if resp.ErrCode != 0 { resp, err := rpc.GetSuperGroupMsg(context.Background(), &req)
log.Error(data.OperationID, "GetSuperGroupMsgReq err:", err.Error()) if err != nil {
} else { log.Error(data.OperationID, "GetSuperGroupMsgReq err:", err.Error())
if resp.MsgData != nil && resp.MsgData.ClientMsgID == revokeMesage.ClientMsgID && resp.MsgData.Seq == revokeMesage.Seq { } else if resp.ErrCode != 0 {
revokeMesage.SourceMessageSendTime = resp.MsgData.SendTime log.Error(data.OperationID, "GetSuperGroupMsgReq err:", err.Error())
revokeMesage.SourceMessageSenderNickname = resp.MsgData.SenderNickname
revokeMesage.SourceMessageSendID = resp.MsgData.SendID
data.MsgData.Content = []byte(utils.StructToJsonString(revokeMesage))
} else { } else {
return false, 201, errors.New("msg err").Error(), nil if resp.MsgData != nil && resp.MsgData.ClientMsgID == revokeMessage.ClientMsgID && resp.MsgData.Seq == revokeMessage.Seq {
revokeMessage.SourceMessageSendTime = resp.MsgData.SendTime
revokeMessage.SourceMessageSenderNickname = resp.MsgData.SenderNickname
revokeMessage.SourceMessageSendID = resp.MsgData.SendID
log.Debug(data.OperationID, "new revoke message is ", revokeMessage)
data.MsgData.Content = []byte(utils.StructToJsonString(revokeMessage))
} else {
return false, 201, errors.New("msg err").Error(), nil
}
} }
} }
} }
if groupInfo.GroupType == constant.SuperGroup { if groupInfo.GroupType == constant.SuperGroup {
return true, 0, "", nil return true, 0, "", nil