From b2460d5267bc02b2217ed1f2a9f1938629fc14e1 Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Wed, 11 Jan 2023 14:57:44 +0800 Subject: [PATCH] group rpc --- internal/rpc/group/group.go | 82 ++++++------------------------------- 1 file changed, 12 insertions(+), 70 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 353c5fe3c..84fbd0bae 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -664,11 +664,7 @@ func CheckPermission(ctx context.Context, groupID string, userID string) (err er func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup.GroupApplicationResponseReq) (*pbGroup.GroupApplicationResponseResp, error) { resp := &pbGroup.GroupApplicationResponseResp{} - ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) - defer func() { - trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) - trace_log.ShowLog(ctx) - }() + if err := CheckPermission(ctx, req.GroupID, req.OpUserID); err != nil { return nil, err } @@ -742,11 +738,7 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.JoinGroupResp, error) { resp := &pbGroup.JoinGroupResp{} - ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) - defer func() { - trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) - trace_log.ShowLog(ctx) - }() + if _, err := imdb.GetUserByUserID(req.OpUserID); err != nil { return nil, err } @@ -824,11 +816,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) (*pbGroup.QuitGroupResp, error) { resp := &pbGroup.QuitGroupResp{} - ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) - defer func() { - trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) - trace_log.ShowLog(ctx) - }() + groupInfo, err := imdb.GetGroupInfoByGroupID(req.GroupID) if err != nil { return nil, err @@ -880,11 +868,7 @@ func hasAccess(req *pbGroup.SetGroupInfoReq) bool { func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInfoReq) (*pbGroup.SetGroupInfoResp, error) { resp := &pbGroup.SetGroupInfoResp{} - ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) - defer func() { - trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) - trace_log.ShowLog(ctx) - }() + if !hasAccess(req) { return nil, utils.Wrap(constant.ErrIdentity, "") } @@ -999,11 +983,6 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf func (s *groupServer) TransferGroupOwner(ctx context.Context, req *pbGroup.TransferGroupOwnerReq) (*pbGroup.TransferGroupOwnerResp, error) { resp := &pbGroup.TransferGroupOwnerResp{} - ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) - defer func() { - trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) - trace_log.ShowLog(ctx) - }() groupInfo, err := imdb.GetGroupInfoByGroupID(req.GroupID) if err != nil { @@ -1044,11 +1023,7 @@ func (s *groupServer) GetGroups(ctx context.Context, req *pbGroup.GetGroupsReq) Groups: []*pbGroup.CMSGroup{}, Pagination: &open_im_sdk.ResponsePagination{CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber}, } - ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) - defer func() { - trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) - trace_log.ShowLog(ctx) - }() + if req.GroupID != "" { groupInfoDB, err := imdb.GetGroupInfoByGroupID(req.GroupID) if err != nil { @@ -1148,11 +1123,7 @@ func (s *groupServer) GetUserReqApplicationList(ctx context.Context, req *pbGrou func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGroupReq) (*pbGroup.DismissGroupResp, error) { resp := &pbGroup.DismissGroupResp{} - ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) - defer func() { - trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) - trace_log.ShowLog(ctx) - }() + if !token_verify.IsManagerUserID(req.OpUserID) && !imdb.IsGroupOwnerAdmin(req.GroupID, req.OpUserID) { return nil, utils.Wrap(constant.ErrIdentity, "") } @@ -1209,11 +1180,7 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGroupMemberReq) (*pbGroup.MuteGroupMemberResp, error) { resp := &pbGroup.MuteGroupMemberResp{} - ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) - defer func() { - trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) - trace_log.ShowLog(ctx) - }() + opFlag, err := s.getGroupUserLevel(req.GroupID, req.OpUserID) if err != nil { return nil, err @@ -1248,11 +1215,6 @@ func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGrou func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.CancelMuteGroupMemberReq) (*pbGroup.CancelMuteGroupMemberResp, error) { resp := &pbGroup.CancelMuteGroupMemberResp{} - ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) - defer func() { - trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) - trace_log.ShowLog(ctx) - }() opFlag, err := s.getGroupUserLevel(req.GroupID, req.OpUserID) if err != nil { @@ -1288,11 +1250,7 @@ func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.Ca func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) (*pbGroup.MuteGroupResp, error) { resp := &pbGroup.MuteGroupResp{} - ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) - defer func() { - trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) - trace_log.ShowLog(ctx) - }() + opFlag, err := s.getGroupUserLevel(req.GroupID, req.OpUserID) if err != nil { return nil, err @@ -1332,11 +1290,7 @@ func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMuteGroupReq) (*pbGroup.CancelMuteGroupResp, error) { resp := &pbGroup.CancelMuteGroupResp{} - ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) - defer func() { - trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) - trace_log.ShowLog(ctx) - }() + opFlag, err := s.getGroupUserLevel(req.GroupID, req.OpUserID) if err != nil { return nil, err @@ -1371,11 +1325,7 @@ func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMu func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.SetGroupMemberNicknameReq) (*pbGroup.SetGroupMemberNicknameResp, error) { resp := &pbGroup.SetGroupMemberNicknameResp{} - ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) - defer func() { - trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) - trace_log.ShowLog(ctx) - }() + if req.OpUserID != req.UserID && !token_verify.IsManagerUserID(req.OpUserID) { return nil, utils.Wrap(constant.ErrIdentity, "") } @@ -1416,11 +1366,7 @@ func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.S func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGroupMemberInfoReq) (*pbGroup.SetGroupMemberInfoResp, error) { resp := &pbGroup.SetGroupMemberInfoResp{} - ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) - defer func() { - trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) - trace_log.ShowLog(ctx) - }() + if err := rocksCache.DelGroupMemberInfoFromCache(ctx, req.GroupID, req.UserID); err != nil { return nil, err } @@ -1466,11 +1412,7 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGr func (s *groupServer) GetGroupAbstractInfo(ctx context.Context, req *pbGroup.GetGroupAbstractInfoReq) (*pbGroup.GetGroupAbstractInfoResp, error) { resp := &pbGroup.GetGroupAbstractInfoResp{} - ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) - defer func() { - trace_log.SetContextInfo(ctx, utils.GetSelfFuncName(), nil, "rpc req ", req.String(), "rpc resp ", resp.String()) - trace_log.ShowLog(ctx) - }() + hashCode, err := rocksCache.GetGroupMemberListHashFromCache(ctx, req.GroupID) if err != nil { return nil, err