group rpc

This commit is contained in:
wangchuxiao 2023-01-09 16:51:26 +08:00
parent 5cbfe7c73f
commit 5f48eeb74b

View File

@ -256,7 +256,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo
} }
for _, groupID := range joinedGroupList { for _, groupID := range joinedGroupList {
var groupNode open_im_sdk.GroupInfo var groupNode open_im_sdk.GroupInfo
num, err := rocksCache.GetGroupMemberNumFromCache(groupID) num, err := rocksCache.GetGroupMemberNumFromCache(ctx, groupID)
if err != nil { if err != nil {
log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), groupID) log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), groupID)
continue continue
@ -1398,29 +1398,29 @@ func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.Ca
opFlag, err := s.getGroupUserLevel(req.GroupID, req.OpUserID) opFlag, err := s.getGroupUserLevel(req.GroupID, req.OpUserID)
if err != nil { if err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
if opFlag == 0 { if opFlag == 0 {
SetErrorForResp(constant.ErrAccess, resp.CommonResp) constant.SetErrorForResp(constant.ErrNoPermission, resp.CommonResp)
return return
} }
mutedInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupID, req.UserID) mutedInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupID, req.UserID)
if err != nil { if err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
if mutedInfo.RoleLevel == constant.GroupOwner && opFlag != 1 { if mutedInfo.RoleLevel == constant.GroupOwner && opFlag != 1 {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
if mutedInfo.RoleLevel == constant.GroupAdmin && opFlag == 3 { if mutedInfo.RoleLevel == constant.GroupAdmin && opFlag == 3 {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.UserID); err != nil { if err := rocksCache.DelGroupMemberInfoFromCache(ctx, req.GroupID, req.UserID); err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
@ -1428,7 +1428,7 @@ func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.Ca
groupMemberInfo.MuteEndTime = time.Unix(0, 0) groupMemberInfo.MuteEndTime = time.Unix(0, 0)
err = imdb.UpdateGroupMemberInfo(groupMemberInfo) err = imdb.UpdateGroupMemberInfo(groupMemberInfo)
if err != nil { if err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
chat.GroupMemberCancelMutedNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID) chat.GroupMemberCancelMutedNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID)
@ -1444,14 +1444,14 @@ func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq)
}() }()
opFlag, err := s.getGroupUserLevel(req.GroupID, req.OpUserID) opFlag, err := s.getGroupUserLevel(req.GroupID, req.OpUserID)
if err != nil { if err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
if opFlag == 0 { if opFlag == 0 {
//errMsg := req.OperationID + "opFlag == 0 " + req.GroupID + req.OpUserID //errMsg := req.OperationID + "opFlag == 0 " + req.GroupID + req.OpUserID
//log.Error(req.OperationID, errMsg) //log.Error(req.OperationID, errMsg)
//return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil //return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil
SetErrorForResp(constant.ErrAccess, resp.CommonResp) constant.SetErrorForResp(constant.ErrNoPermission, resp.CommonResp)
return return
} }
@ -1468,14 +1468,14 @@ func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq)
// errMsg := req.OperationID + " mutedInfo.RoleLevel == constant.GroupAdmin " + req.GroupID + req.OpUserID + err.Error() // errMsg := req.OperationID + " mutedInfo.RoleLevel == constant.GroupAdmin " + req.GroupID + req.OpUserID + err.Error()
// return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil // return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil
//} //}
if err := rocksCache.DelGroupInfoFromCache(req.GroupID); err != nil { if err := rocksCache.DelGroupInfoFromCache(ctx, req.GroupID); err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
err = imdb.OperateGroupStatus(req.GroupID, constant.GroupStatusMuted) err = imdb.OperateGroupStatus(req.GroupID, constant.GroupStatusMuted)
if err != nil { if err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
@ -1492,11 +1492,11 @@ func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMu
}() }()
opFlag, err := s.getGroupUserLevel(req.GroupID, req.OpUserID) opFlag, err := s.getGroupUserLevel(req.GroupID, req.OpUserID)
if err != nil { if err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
if opFlag == 0 { if opFlag == 0 {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
//mutedInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupID, req.) //mutedInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupID, req.)
@ -1513,13 +1513,13 @@ func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMu
// return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil // return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil
//} //}
log.Debug(req.OperationID, "UpdateGroupInfoDefaultZero ", req.GroupID, map[string]interface{}{"status": constant.GroupOk}) log.Debug(req.OperationID, "UpdateGroupInfoDefaultZero ", req.GroupID, map[string]interface{}{"status": constant.GroupOk})
if err := rocksCache.DelGroupInfoFromCache(req.GroupID); err != nil { if err := rocksCache.DelGroupInfoFromCache(ctx, req.GroupID); err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
err = imdb.UpdateGroupInfoDefaultZero(req.GroupID, map[string]interface{}{"status": constant.GroupOk}) err = imdb.UpdateGroupInfoDefaultZero(req.GroupID, map[string]interface{}{"status": constant.GroupOk})
if err != nil { if err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
chat.GroupCancelMutedNotification(req.OperationID, req.OpUserID, req.GroupID) chat.GroupCancelMutedNotification(req.OperationID, req.OpUserID, req.GroupID)
@ -1534,7 +1534,7 @@ func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.S
trace_log.ShowLog(ctx) trace_log.ShowLog(ctx)
}() }()
if req.OpUserID != req.UserID && !token_verify.IsManagerUserID(req.OpUserID) { if req.OpUserID != req.UserID && !token_verify.IsManagerUserID(req.OpUserID) {
SetErrorForResp(constant.ErrIdentity, resp.CommonResp) constant.SetErrorForResp(constant.ErrIdentity, resp.CommonResp)
return return
} }
cbReq := &pbGroup.SetGroupMemberInfoReq{ cbReq := &pbGroup.SetGroupMemberInfoReq{
@ -1545,7 +1545,7 @@ func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.S
Nickname: &wrapperspb.StringValue{Value: req.Nickname}, Nickname: &wrapperspb.StringValue{Value: req.Nickname},
} }
if err := CallbackBeforeSetGroupMemberInfo(ctx, cbReq); err != nil { if err := CallbackBeforeSetGroupMemberInfo(ctx, cbReq); err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
nickName := cbReq.Nickname.Value nickName := cbReq.Nickname.Value
@ -1555,7 +1555,7 @@ func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.S
if nickName == "" { if nickName == "" {
userNickname, err := imdb.GetUserNameByUserID(groupMemberInfo.UserID) userNickname, err := imdb.GetUserNameByUserID(groupMemberInfo.UserID)
if err != nil { if err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
groupMemberInfo.Nickname = userNickname groupMemberInfo.Nickname = userNickname
@ -1563,13 +1563,13 @@ func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.S
groupMemberInfo.Nickname = nickName groupMemberInfo.Nickname = nickName
} }
if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.UserID); err != nil { if err := rocksCache.DelGroupMemberInfoFromCache(ctx, req.GroupID, req.UserID); err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
if err := imdb.UpdateGroupMemberInfo(groupMemberInfo); err != nil { if err := imdb.UpdateGroupMemberInfo(groupMemberInfo); err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
chat.GroupMemberInfoSetNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID) chat.GroupMemberInfoSetNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID)
@ -1583,12 +1583,12 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGr
trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String())
trace_log.ShowLog(ctx) trace_log.ShowLog(ctx)
}() }()
if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.UserID); err != nil { if err := rocksCache.DelGroupMemberInfoFromCache(ctx, req.GroupID, req.UserID); err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
if err := CallbackBeforeSetGroupMemberInfo(ctx, req); err != nil { if err := CallbackBeforeSetGroupMemberInfo(ctx, req); err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
groupMember := imdb.GroupMember{ groupMember := imdb.GroupMember{
@ -1610,8 +1610,8 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGr
} else { } else {
m["ex"] = nil m["ex"] = nil
} }
if err := imdb.UpdateGroupMemberInfoByMap(groupMember, m);err != nil { if err := imdb.UpdateGroupMemberInfoByMap(groupMember, m); err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
if req.RoleLevel != nil { if req.RoleLevel != nil {
@ -1629,22 +1629,22 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGr
return return
} }
func (s *groupServer) GetGroupAbstractInfo(ctx context.Context, req *pbGroup.GetGroupAbstractInfoReq) (resp *pbGroup.GetGroupAbstractInfoResp,_ error) { func (s *groupServer) GetGroupAbstractInfo(ctx context.Context, req *pbGroup.GetGroupAbstractInfoReq) (resp *pbGroup.GetGroupAbstractInfoResp, _ error) {
resp = &pbGroup.GetGroupAbstractInfoResp{CommonResp: &open_im_sdk.CommonResp{}} resp = &pbGroup.GetGroupAbstractInfoResp{CommonResp: &open_im_sdk.CommonResp{}}
ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID)
defer func() { defer func() {
trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String())
trace_log.ShowLog(ctx) trace_log.ShowLog(ctx)
}() }()
hashCode, err := rocksCache.GetGroupMemberListHashFromCache(req.GroupID) hashCode, err := rocksCache.GetGroupMemberListHashFromCache(ctx, req.GroupID)
if err != nil { if err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
resp.GroupMemberListHash = hashCode resp.GroupMemberListHash = hashCode
num, err := rocksCache.GetGroupMemberNumFromCache(ctx, req.GroupID) num, err := rocksCache.GetGroupMemberNumFromCache(ctx, req.GroupID)
if err != nil { if err != nil {
SetErrorForResp(err, resp.CommonResp) constant.SetErrorForResp(err, resp.CommonResp)
return return
} }
resp.GroupMemberNumber = int32(num) resp.GroupMemberNumber = int32(num)