Merge branch 'modify' of github.com:OpenIMSDK/Open-IM-Server into modify

# Conflicts:
#	pkg/proto/msg/msg.pb.go
This commit is contained in:
wangchuxiao 2022-12-12 19:24:53 +08:00
commit 112ce9b450
6 changed files with 550 additions and 290 deletions

View File

@ -69,7 +69,7 @@ func GetMessageListReactionExtensions(c *gin.Context) {
var ( var (
req api.GetMessageListReactionExtensionsReq req api.GetMessageListReactionExtensionsReq
resp api.GetMessageListReactionExtensionsResp resp api.GetMessageListReactionExtensionsResp
reqPb rpc.OperateMessageListReactionExtensionsReq reqPb rpc.GetMessageListReactionExtensionsReq
) )
if err := c.BindJSON(&req); err != nil { if err := c.BindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
@ -106,8 +106,7 @@ func GetMessageListReactionExtensions(c *gin.Context) {
} }
resp.ErrCode = respPb.ErrCode resp.ErrCode = respPb.ErrCode
resp.ErrMsg = respPb.ErrMsg resp.ErrMsg = respPb.ErrMsg
resp.Data.FailedList = respPb.FailedList resp.Data = respPb.SingleMessageResult
resp.Data.SuccessList = respPb.SuccessList
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp)
c.JSON(http.StatusOK, resp) c.JSON(http.StatusOK, resp)
} }
@ -161,7 +160,7 @@ func DeleteMessageReactionExtensions(c *gin.Context) {
var ( var (
req api.DeleteMessageReactionExtensionsReq req api.DeleteMessageReactionExtensionsReq
resp api.DeleteMessageReactionExtensionsResp resp api.DeleteMessageReactionExtensionsResp
reqPb rpc.OperateMessageListReactionExtensionsReq reqPb rpc.DeleteMessageListReactionExtensionsReq
) )
if err := c.BindJSON(&req); err != nil { if err := c.BindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})

View File

@ -95,7 +95,6 @@ func (rpc *rpcChat) SetMessageReactionExtensions(ctx context.Context, req *msg.S
ExtendMessageUpdatedNotification(req.OperationID, req.OpUserID, req.SourceID, req.SessionType, req, &rResp, true) ExtendMessageUpdatedNotification(req.OperationID, req.OpUserID, req.SourceID, req.SessionType, req, &rResp, true)
} else { } else {
ExtendMessageUpdatedNotification(req.OperationID, req.OpUserID, req.SourceID, req.SessionType, req, &rResp, false) ExtendMessageUpdatedNotification(req.OperationID, req.OpUserID, req.SourceID, req.SessionType, req, &rResp, false)
} }
log.Debug(req.OperationID, utils.GetSelfFuncName(), "rpc return is:", rResp.String()) log.Debug(req.OperationID, utils.GetSelfFuncName(), "rpc return is:", rResp.String())
return &rResp, nil return &rResp, nil
@ -110,61 +109,41 @@ func setKeyResultInfo(r *msg.SetMessageReactionExtensionsResp, errCode int32, er
_ = db.DB.UnLockMessageTypeKey(clientMsgID, typeKey) _ = db.DB.UnLockMessageTypeKey(clientMsgID, typeKey)
} }
func (rpc *rpcChat) GetMessageListReactionExtensions(ctx context.Context, req *msg.OperateMessageListReactionExtensionsReq) (resp *msg.OperateMessageListReactionExtensionsResp, err error) { func (rpc *rpcChat) GetMessageListReactionExtensions(ctx context.Context, req *msg.GetMessageListReactionExtensionsReq) (resp *msg.GetMessageListReactionExtensionsResp, err error) {
//for _, messageValue := range req.MessageReactionKeyList { var rResp msg.GetMessageListReactionExtensionsResp
// isExists, err := db.DB.JudgeMessageReactionEXISTS(messageValue.ClientMsgID,req.SessionType) for _, messageValue := range req.MessageReactionKeyList {
// if err != nil { var oneMessage msg.SingleMessageExtensionResult
// oneMessage.ClientMsgID = messageValue.ClientMsgID
// }
// var failedList []*msg.ExtendMsgResp isExists, err := db.DB.JudgeMessageReactionEXISTS(messageValue.ClientMsgID, req.SessionType)
// var successList []*msg.ExtendMsgResp if err != nil {
// var oneExtendMsg msg.ExtendMsg rResp.ErrCode = 100
// oneExtendMsg.ClientMsgID = req.ClientMsgID rResp.ErrMsg = err.Error()
// oneFailedReactionExtensionList:=make(map[string]*msg.KeyValueResp) return &rResp, nil
// oneSuccessReactionExtensionList:=make(map[string]*msg.KeyValueResp) }
// if !isExists { if isExists {
// if !req.IsReact { redisValue, err := db.DB.GetOneMessageAllReactionList(messageValue.ClientMsgID, req.SessionType)
// oneExtendMsg.MsgFirstModifyTime = utils.GetCurrentTimestampByMill() if err != nil {
// //redis处理 oneMessage.ErrCode = 100
// for k, v := range req.ReactionExtensionList { oneMessage.ErrMsg = err.Error()
// //抢占分布式锁 rResp.SingleMessageResult = append(rResp.SingleMessageResult, &oneMessage)
// err:=lockMessageTypeKey(req.ClientMsgID,k) continue
// if err != nil { }
// setKeyResultInfo(oneFailedReactionExtensionList,100,err.Error(),req.ClientMsgID,k,v) keyMap := make(map[string]*server_api_params.KeyValue)
// continue
// } for k, v := range redisValue {
// redisValue,err:=db.DB.GetMessageTypeKeyValue(req.ClientMsgID,req.SessionType,k) temp := new(server_api_params.KeyValue)
// if err != nil&&err!=go_redis.Nil { utils.JsonStringToStruct(v, temp)
// setKeyResultInfo(oneFailedReactionExtensionList,200,err.Error(),req.ClientMsgID,k,v) keyMap[k] = temp
// continue }
// } oneMessage.ReactionExtensionList = keyMap
// temp:=new(server_api_params.KeyValue)
// utils.JsonStringToStruct(redisValue,temp) } else {
// if v.LatestUpdateTime != temp.LatestUpdateTime {
// setKeyResultInfo(oneFailedReactionExtensionList,300,"message have update",req.ClientMsgID,k,temp) }
// continue rResp.SingleMessageResult = append(rResp.SingleMessageResult, &oneMessage)
// }else{ }
// v.LatestUpdateTime = utils.GetCurrentTimestampByMill() return &rResp, nil
// newerr:=db.DB.SetMessageTypeKeyValue(req.ClientMsgID,req.SessionType,k,utils.StructToJsonString(v))
// if newerr != nil {
// setKeyResultInfo(oneFailedReactionExtensionList,201,newerr.Error(),req.ClientMsgID,k,temp)
// continue
// }
// setKeyResultInfo(oneSuccessReactionExtensionList,0,"",req.ClientMsgID,k,v)
// }
//
// }
//
// }else{
// //mongo处理
// }
//
// }else{
//
// }
// return
//}
return
} }
@ -172,7 +151,7 @@ func (rpc *rpcChat) AddMessageReactionExtensions(ctx context.Context, req *msg.M
return return
} }
func (rpc *rpcChat) DeleteMessageReactionExtensions(ctx context.Context, req *msg.OperateMessageListReactionExtensionsReq) (resp *msg.OperateMessageListReactionExtensionsResp, err error) { func (rpc *rpcChat) DeleteMessageReactionExtensions(ctx context.Context, req *msg.DeleteMessageListReactionExtensionsReq) (resp *msg.DeleteMessageListReactionExtensionsResp, err error) {
return return
} }
func lockMessageTypeKey(clientMsgID, typeKey string) (err error) { func lockMessageTypeKey(clientMsgID, typeKey string) (err error) {

View File

@ -76,10 +76,10 @@ type ModifyMessageReactionExtensionsResp struct {
} }
type OperateMessageListReactionExtensionsReq struct { type OperateMessageListReactionExtensionsReq struct {
OperationID string `json:"operationID" binding:"required"` OperationID string `json:"operationID" binding:"required"`
SourceID string `json:"sourceID" binding:"required"` SourceID string `json:"sourceID" binding:"required"`
SessionType string `json:"sessionType" binding:"required"` SessionType string `json:"sessionType" binding:"required"`
MessageReactionKeyList []*msg.OperateMessageListReactionExtensionsReq_MessageReactionKey `json:"messageReactionKeyList" binding:"required"` MessageReactionKeyList []*msg.GetMessageListReactionExtensionsReq_MessageReactionKey `json:"messageReactionKeyList" binding:"required"`
} }
type OperateMessageListReactionExtensionsResp struct { type OperateMessageListReactionExtensionsResp struct {
@ -96,7 +96,10 @@ type SetMessageReactionExtensionsCallbackResp ModifyMessageReactionExtensionsRes
type GetMessageListReactionExtensionsReq OperateMessageListReactionExtensionsReq type GetMessageListReactionExtensionsReq OperateMessageListReactionExtensionsReq
type GetMessageListReactionExtensionsResp OperateMessageListReactionExtensionsResp type GetMessageListReactionExtensionsResp struct {
CommResp
Data []*msg.SingleMessageExtensionResult `json:"data"`
}
type AddMessageReactionExtensionsReq ModifyMessageReactionExtensionsReq type AddMessageReactionExtensionsReq ModifyMessageReactionExtensionsReq

View File

@ -447,6 +447,12 @@ func (d *DataBases) JudgeMessageReactionEXISTS(clientMsgID string, sessionType i
return false, err return false, err
} }
} }
func (d *DataBases) GetOneMessageAllReactionList(clientMsgID string, sessionType int32) (map[string]string, error) {
key := getMessageReactionExPrefix(clientMsgID, sessionType)
return d.RDB.HGetAll(context.Background(), key).Result()
}
func (d *DataBases) SetMessageReactionExpire(clientMsgID string, sessionType int32, expiration time.Duration) (bool, error) { func (d *DataBases) SetMessageReactionExpire(clientMsgID string, sessionType int32, expiration time.Duration) (bool, error) {
key := getMessageReactionExPrefix(clientMsgID, sessionType) key := getMessageReactionExPrefix(clientMsgID, sessionType)
return d.RDB.Expire(context.Background(), key, expiration).Result() return d.RDB.Expire(context.Background(), key, expiration).Result()

File diff suppressed because it is too large Load Diff

View File

@ -189,6 +189,32 @@ message SetMessageReactionExtensionsResp {
repeated KeyValueResp result = 6; repeated KeyValueResp result = 6;
} }
message GetMessageListReactionExtensionsReq {
string operationID = 1;
string opUserID = 2;
string sourceID = 3;
int32 sessionType = 4;
message MessageReactionKey {
string clientMsgID = 1;
int64 msgFirstModifyTime = 2;
}
repeated MessageReactionKey messageReactionKeyList = 5;
}
message GetMessageListReactionExtensionsResp{
int32 errCode = 1;
string errMsg = 2;
repeated SingleMessageExtensionResult singleMessageResult =3;
}
message SingleMessageExtensionResult {
int32 errCode = 1;
string errMsg = 2;
map <string, server_api_params.KeyValue>reactionExtensionList = 3;
string clientMsgID = 4;
}
message ModifyMessageReactionExtensionsResp { message ModifyMessageReactionExtensionsResp {
int32 errCode = 1; int32 errCode = 1;
string errMsg = 2; string errMsg = 2;
@ -196,7 +222,7 @@ message ModifyMessageReactionExtensionsResp {
repeated ExtendMsgResp failedList = 4; repeated ExtendMsgResp failedList = 4;
} }
message OperateMessageListReactionExtensionsReq { message DeleteMessageListReactionExtensionsReq {
string operationID = 1; string operationID = 1;
string opUserID = 2; string opUserID = 2;
string sourceID = 3; string sourceID = 3;
@ -209,7 +235,7 @@ message OperateMessageListReactionExtensionsReq {
repeated MessageReactionKey messageReactionKeyList = 5; repeated MessageReactionKey messageReactionKeyList = 5;
} }
message OperateMessageListReactionExtensionsResp { message DeleteMessageListReactionExtensionsResp {
int32 errCode = 1; int32 errCode = 1;
string errMsg = 2; string errMsg = 2;
repeated ExtendMsgResp successList = 3; repeated ExtendMsgResp successList = 3;
@ -258,7 +284,7 @@ service msg {
// modify msg // modify msg
rpc SetMessageReactionExtensions(SetMessageReactionExtensionsReq) returns(SetMessageReactionExtensionsResp); rpc SetMessageReactionExtensions(SetMessageReactionExtensionsReq) returns(SetMessageReactionExtensionsResp);
rpc GetMessageListReactionExtensions(OperateMessageListReactionExtensionsReq) returns(OperateMessageListReactionExtensionsResp); rpc GetMessageListReactionExtensions(GetMessageListReactionExtensionsReq) returns(GetMessageListReactionExtensionsResp);
rpc AddMessageReactionExtensions(ModifyMessageReactionExtensionsReq) returns(ModifyMessageReactionExtensionsResp); rpc AddMessageReactionExtensions(ModifyMessageReactionExtensionsReq) returns(ModifyMessageReactionExtensionsResp);
rpc DeleteMessageReactionExtensions(OperateMessageListReactionExtensionsReq) returns(OperateMessageListReactionExtensionsResp); rpc DeleteMessageReactionExtensions(DeleteMessageListReactionExtensionsReq) returns(DeleteMessageListReactionExtensionsResp);
} }