From 0a803098ac6eb00e0ab53566bd4f19e036ea2737 Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Mon, 9 Jan 2023 10:01:17 +0800 Subject: [PATCH 1/6] group --- internal/rpc/group/group.go | 53 +++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index ac6ea3b7f..e9add05d5 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1442,7 +1442,7 @@ func (s *groupServer) GetUserReqApplicationList(ctx context.Context, req *pbGrou return } -func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGroupReq) (resp *pbGroup.DismissGroupResp,_ error) { +func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGroupReq) (resp *pbGroup.DismissGroupResp, _ error) { resp = &pbGroup.DismissGroupResp{CommonResp: &open_im_sdk.CommonResp{}} ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) defer func() { @@ -1519,7 +1519,7 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou // rpc MuteGroup(MuteGroupReq) returns(MuteGroupResp); // rpc CancelMuteGroup(CancelMuteGroupReq) returns(CancelMuteGroupResp); -func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGroupMemberReq) (resp *pbGroup.MuteGroupMemberResp,_ error) { +func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGroupMemberReq) (resp *pbGroup.MuteGroupMemberResp, _ error) { resp = &pbGroup.MuteGroupMemberResp{CommonResp: &open_im_sdk.CommonResp{}} ctx = trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) defer func() { @@ -1546,11 +1546,11 @@ func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGrou return } if mutedInfo.RoleLevel == constant.GroupOwner && opFlag != 1 { - SetErrorForResp(err, resp.CommonResp) + SetErrorForResp(constant.ErrArgs, resp.CommonResp) return } if mutedInfo.RoleLevel == constant.GroupAdmin && opFlag == 3 { - SetErrorForResp(err, resp.CommonResp) + SetErrorForResp(constant.ErrArgs, resp.CommonResp) return } @@ -1569,53 +1569,54 @@ func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGrou return } -func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.CancelMuteGroupMemberReq) (*pbGroup.CancelMuteGroupMemberResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) +func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.CancelMuteGroupMemberReq) (resp *pbGroup.CancelMuteGroupMemberResp, _ error) { + resp = &pbGroup.CancelMuteGroupMemberResp{CommonResp: &open_im_sdk.CommonResp{}} + 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 { - errMsg := req.OperationID + " getGroupUserLevel failed " + req.GroupID + req.OpUserID + err.Error() - log.Error(req.OperationID, errMsg) - return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil + SetErrorForResp(err, resp.CommonResp) + return } if opFlag == 0 { - errMsg := req.OperationID + "opFlag == 0 " + req.GroupID + req.OpUserID - log.Error(req.OperationID, errMsg) - return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil + SetErrorForResp(constant.ErrAccess, resp.CommonResp) + return } mutedInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupID, req.UserID) if err != nil { - errMsg := req.OperationID + " GetGroupMemberInfoByGroupIDAndUserID failed " + req.GroupID + req.UserID + err.Error() - return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil + SetErrorForResp(err, resp.CommonResp) + return } if mutedInfo.RoleLevel == constant.GroupOwner && opFlag != 1 { - errMsg := req.OperationID + " mutedInfo.RoleLevel == constant.GroupOwner " + req.GroupID + req.UserID - return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil + SetErrorForResp(err, resp.CommonResp) + return } if mutedInfo.RoleLevel == constant.GroupAdmin && opFlag == 3 { - errMsg := req.OperationID + " mutedInfo.RoleLevel == constant.GroupAdmin " + req.GroupID + req.UserID - return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil + SetErrorForResp(err, resp.CommonResp) + return } if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.UserID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: err.Error()}}, nil + SetErrorForResp(err, resp.CommonResp) + return } groupMemberInfo := imdb.GroupMember{GroupID: req.GroupID, UserID: req.UserID} groupMemberInfo.MuteEndTime = time.Unix(0, 0) err = imdb.UpdateGroupMemberInfo(groupMemberInfo) if err != nil { - log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo) - return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + SetErrorForResp(err, resp.CommonResp) + return } - chat.GroupMemberCancelMutedNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID) - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) - return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil + return } -func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) (*pbGroup.MuteGroupResp, error) { +func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) (resp *pbGroup.MuteGroupResp, _ error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) opFlag, err := s.getGroupUserLevel(req.GroupID, req.OpUserID) From 8478331ef98f794fe2c8e026eab9f43dc368d697 Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Mon, 9 Jan 2023 13:57:30 +0800 Subject: [PATCH 2/6] group --- internal/rpc/group/group.go | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index e9add05d5..79b345a5e 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1617,18 +1617,23 @@ func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.Ca } func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) (resp *pbGroup.MuteGroupResp, _ error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) - + resp = &pbGroup.MuteGroupResp{CommonResp: &open_im_sdk.CommonResp{}} + 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 { - errMsg := req.OperationID + " getGroupUserLevel failed " + req.GroupID + req.OpUserID + err.Error() - log.Error(req.OperationID, errMsg) - return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil + SetErrorForResp(err, resp.CommonResp) + return } if opFlag == 0 { - errMsg := req.OperationID + "opFlag == 0 " + req.GroupID + req.OpUserID - log.Error(req.OperationID, errMsg) - return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil + //errMsg := req.OperationID + "opFlag == 0 " + req.GroupID + req.OpUserID + //log.Error(req.OperationID, errMsg) + //return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil + SetErrorForResp(constant.ErrAccess, resp.CommonResp) + return } //mutedInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupID, req.UserID) @@ -1645,19 +1650,18 @@ func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) // return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil //} if err := rocksCache.DelGroupInfoFromCache(req.GroupID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: err.Error()}}, nil + SetErrorForResp(err, resp.CommonResp) + return } err = imdb.OperateGroupStatus(req.GroupID, constant.GroupStatusMuted) if err != nil { - log.Error(req.OperationID, "OperateGroupStatus failed ", err.Error(), req.GroupID, constant.GroupStatusMuted) - return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + SetErrorForResp(err, resp.CommonResp) + return } chat.GroupMutedNotification(req.OperationID, req.OpUserID, req.GroupID) - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) - return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil + return } func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMuteGroupReq) (*pbGroup.CancelMuteGroupResp, error) { From 6830fe5f7adc656abf90c8e39be5aa1233689012 Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Mon, 9 Jan 2023 14:09:07 +0800 Subject: [PATCH 3/6] group --- internal/rpc/group/group.go | 132 +++++++++++++++--------------------- 1 file changed, 53 insertions(+), 79 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 79b345a5e..e401603f4 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1664,18 +1664,21 @@ func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) return } -func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMuteGroupReq) (*pbGroup.CancelMuteGroupResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) +func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMuteGroupReq) (resp *pbGroup.CancelMuteGroupResp, _ error) { + resp = &pbGroup.CancelMuteGroupResp{CommonResp: &open_im_sdk.CommonResp{}} + 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 { - errMsg := req.OperationID + " getGroupUserLevel failed " + req.GroupID + req.OpUserID + err.Error() - log.Error(req.OperationID, errMsg) - return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil + SetErrorForResp(err, resp.CommonResp) + return } if opFlag == 0 { - errMsg := req.OperationID + "opFlag == 0 " + req.GroupID + req.OpUserID - log.Error(req.OperationID, errMsg) - return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: errMsg}}, nil + SetErrorForResp(err, resp.CommonResp) + return } //mutedInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupID, req.) //if err != nil { @@ -1692,26 +1695,28 @@ func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMu //} log.Debug(req.OperationID, "UpdateGroupInfoDefaultZero ", req.GroupID, map[string]interface{}{"status": constant.GroupOk}) if err := rocksCache.DelGroupInfoFromCache(req.GroupID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: err.Error()}}, nil + SetErrorForResp(err, resp.CommonResp) + return } err = imdb.UpdateGroupInfoDefaultZero(req.GroupID, map[string]interface{}{"status": constant.GroupOk}) if err != nil { - log.Error(req.OperationID, "UpdateGroupInfoDefaultZero failed ", err.Error(), req.GroupID) - return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + SetErrorForResp(err, resp.CommonResp) + return } - chat.GroupCancelMutedNotification(req.OperationID, req.OpUserID, req.GroupID) - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) - return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil + return } -func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.SetGroupMemberNicknameReq) (*pbGroup.SetGroupMemberNicknameResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) +func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.SetGroupMemberNicknameReq) (resp *pbGroup.SetGroupMemberNicknameResp, _ error) { + resp = &pbGroup.SetGroupMemberNicknameResp{CommonResp: &open_im_sdk.CommonResp{}} + 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) { - errMsg := req.OperationID + " verify failed " + req.OpUserID + req.GroupID - log.Error(req.OperationID, errMsg) - return &pbGroup.SetGroupMemberNicknameResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + SetErrorForResp(constant.ErrIdentity, resp.CommonResp) + return } cbReq := &pbGroup.SetGroupMemberInfoReq{ GroupID: req.GroupID, @@ -1720,23 +1725,10 @@ func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.S OpUserID: req.OpUserID, Nickname: &wrapperspb.StringValue{Value: req.Nickname}, } - callbackResp := CallbackBeforeSetGroupMemberInfo(cbReq) - if callbackResp.ErrCode != 0 { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "CallbackBeforeMemberJoinGroup resp: ", callbackResp) + if err := CallbackBeforeSetGroupMemberInfo(ctx, cbReq); err != nil { + SetErrorForResp(err, resp.CommonResp) + return } - if callbackResp.ActionCode != constant.ActionAllow { - if callbackResp.ErrCode == 0 { - callbackResp.ErrCode = 201 - } - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CallbackBeforeMemberJoinGroup result", "end rpc and return", callbackResp) - return &pbGroup.SetGroupMemberNicknameResp{ - CommonResp: &pbGroup.CommonResp{ - ErrCode: int32(callbackResp.ErrCode), - ErrMsg: callbackResp.ErrMsg, - }, - }, nil - } - nickName := cbReq.Nickname.Value groupMemberInfo := imdb.GroupMember{} groupMemberInfo.UserID = req.UserID @@ -1744,9 +1736,8 @@ func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.S if nickName == "" { userNickname, err := imdb.GetUserNameByUserID(groupMemberInfo.UserID) if err != nil { - errMsg := req.OperationID + " GetUserNameByUserID failed " + err.Error() - log.Error(req.OperationID, errMsg) - return &pbGroup.SetGroupMemberNicknameResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + SetErrorForResp(err, resp.CommonResp) + return } groupMemberInfo.Nickname = userNickname } else { @@ -1754,46 +1745,33 @@ func (s *groupServer) SetGroupMemberNickname(ctx context.Context, req *pbGroup.S } if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, req.UserID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - return &pbGroup.SetGroupMemberNicknameResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: err.Error()}}, nil + SetErrorForResp(err, resp.CommonResp) + return } - err := imdb.UpdateGroupMemberInfo(groupMemberInfo) - if err != nil { - errMsg := req.OperationID + " UpdateGroupMemberInfo failed " + err.Error() - log.Error(req.OperationID, errMsg) - return &pbGroup.SetGroupMemberNicknameResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + + if err := imdb.UpdateGroupMemberInfo(groupMemberInfo); err != nil { + SetErrorForResp(err, resp.CommonResp) + return } chat.GroupMemberInfoSetNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID) - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) - return &pbGroup.SetGroupMemberNicknameResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil + return } -func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGroupMemberInfoReq) (resp *pbGroup.SetGroupMemberInfoResp, err error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp = &pbGroup.SetGroupMemberInfoResp{CommonResp: &pbGroup.CommonResp{}} +func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGroupMemberInfoReq) (resp *pbGroup.SetGroupMemberInfoResp, _ error) { + resp = &pbGroup.SetGroupMemberInfoResp{CommonResp: &open_im_sdk.CommonResp{}} + 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(req.GroupID, req.UserID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - resp.CommonResp.ErrCode = constant.ErrDB.ErrCode - resp.CommonResp.ErrMsg = err.Error() - return resp, nil + SetErrorForResp(err, resp.CommonResp) + return } - callbackResp := CallbackBeforeSetGroupMemberInfo(req) - if callbackResp.ErrCode != 0 { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "CallbackBeforeMemberJoinGroup resp: ", callbackResp) + if err := CallbackBeforeSetGroupMemberInfo(ctx, req); err != nil { + SetErrorForResp(err, resp.CommonResp) + return } - if callbackResp.ActionCode != constant.ActionAllow { - if callbackResp.ErrCode == 0 { - callbackResp.ErrCode = 201 - } - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CallbackBeforeMemberJoinGroup result", "end rpc and return", callbackResp) - return &pbGroup.SetGroupMemberInfoResp{ - CommonResp: &pbGroup.CommonResp{ - ErrCode: int32(callbackResp.ErrCode), - ErrMsg: callbackResp.ErrMsg, - }, - }, nil - } - groupMember := imdb.GroupMember{ GroupID: req.GroupID, UserID: req.UserID, @@ -1813,12 +1791,9 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGr } else { m["ex"] = nil } - err = imdb.UpdateGroupMemberInfoByMap(groupMember, m) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetGroupMemberInfo failed", err.Error()) - resp.CommonResp.ErrCode = constant.ErrDB.ErrCode - resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg + ":" + err.Error() - return resp, nil + if err := imdb.UpdateGroupMemberInfoByMap(groupMember, m);err != nil { + SetErrorForResp(err, resp.CommonResp) + return } if req.RoleLevel != nil { switch req.RoleLevel.Value { @@ -1832,8 +1807,7 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGr } else { chat.GroupMemberInfoSetNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID) } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) - return resp, nil + return } func (s *groupServer) GetGroupAbstractInfo(c context.Context, req *pbGroup.GetGroupAbstractInfoReq) (*pbGroup.GetGroupAbstractInfoResp, error) { From 10fa4318e9a47748d4b4099f6c2e1bf29f33eba1 Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Mon, 9 Jan 2023 14:28:19 +0800 Subject: [PATCH 4/6] group --- internal/rpc/group/group.go | 52 +++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index e401603f4..9c8060416 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -255,29 +255,29 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo SetErr(ctx, "GetJoinedGroupIDListFromCache", err, &resp.CommonResp.ErrCode, &resp.CommonResp.ErrMsg, "userID", req.FromUserID) return } - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "joinedGroupList: ", joinedGroupList) - for _, v := range joinedGroupList { + for _, groupID := range joinedGroupList { var groupNode open_im_sdk.GroupInfo - num, err := rocksCache.GetGroupMemberNumFromCache(v) + num, err := rocksCache.GetGroupMemberNumFromCache(groupID) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), v) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), groupID) continue } - owner, err2 := imdb.GetGroupOwnerInfoByGroupID(v) - if err2 != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err2.Error(), v) + owner, err := (*imdb.GroupMember)(nil).TakeOwnerInfo(ctx, groupID) + //owner, err2 := imdb.GetGroupOwnerInfoByGroupID(groupID) + if err != nil { + trace_log.SetContextInfo(ctx, "TakeOwnerInfo", err, "groupID", groupID) continue } - group, err := rocksCache.GetGroupInfoFromCache(ctx, v) + group, err := rocksCache.GetGroupInfoFromCache(ctx, groupID) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), v) + trace_log.SetContextInfo(ctx, "GetGroupInfoFromCache", err, "groupID", groupID) continue } if group.GroupType == constant.SuperGroup { continue } if group.Status == constant.GroupStatusDismissed { - log.NewError(req.OperationID, "constant.GroupStatusDismissed ", group) + trace_log.SetContextInfo(ctx, "GetGroupInfoFromCache", err, "groupID", groupID) continue } utils.CopyStructFields(&groupNode, group) @@ -290,10 +290,8 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo groupNode.MemberCount = uint32(num) groupNode.OwnerUserID = owner.UserID resp.GroupList = append(resp.GroupList, &groupNode) - log.NewDebug(req.OperationID, "joinedGroup ", groupNode) } - log.NewInfo(req.OperationID, "GetJoinedGroupList rpc return ", resp.String()) - return resp, nil + return } func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.InviteUserToGroupReq) (resp *pbGroup.InviteUserToGroupResp, _ error) { @@ -316,8 +314,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite // TODO //errMsg := " group status is dismissed " //return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrStatus.ErrCode, ErrMsg: errMsg}, nil - resp.CommonResp.ErrCode = 1 - resp.CommonResp.ErrMsg = " group status is dismissed " + SetErrorForResp(constant.ErrStatus, resp.CommonResp) return } if groupInfo.NeedVerification == constant.AllNeedVerification && @@ -1810,32 +1807,31 @@ func (s *groupServer) SetGroupMemberInfo(ctx context.Context, req *pbGroup.SetGr return } -func (s *groupServer) GetGroupAbstractInfo(c context.Context, req *pbGroup.GetGroupAbstractInfoReq) (*pbGroup.GetGroupAbstractInfoResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbGroup.GetGroupAbstractInfoResp{CommonResp: &pbGroup.CommonResp{}} +func (s *groupServer) GetGroupAbstractInfo(ctx context.Context, req *pbGroup.GetGroupAbstractInfoReq) (resp *pbGroup.GetGroupAbstractInfoResp,_ error) { + resp = &pbGroup.GetGroupAbstractInfoResp{CommonResp: &open_im_sdk.CommonResp{}} + 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(req.GroupID) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMemberListHashFromCache failed", req.GroupID, err.Error()) - resp.CommonResp.ErrCode = constant.ErrDB.ErrCode - resp.CommonResp.ErrMsg = err.Error() - return resp, nil + SetErrorForResp(err, resp.CommonResp) + return } resp.GroupMemberListHash = hashCode num, err := rocksCache.GetGroupMemberNumFromCache(req.GroupID) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMemberNumByGroupID failed", req.GroupID, err.Error()) - resp.CommonResp.ErrCode = constant.ErrDB.ErrCode - resp.CommonResp.ErrMsg = err.Error() - return resp, nil + SetErrorForResp(err, resp.CommonResp) + return } resp.GroupMemberNumber = int32(num) - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", resp.String()) return resp, nil } func (s *groupServer) DelGroupAndUserCache(operationID, groupID string, userIDList []string) error { if groupID != "" { - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, operationID) + etcdConn, err := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, operationID) if etcdConn == nil { errMsg := operationID + "getcdv3.GetDefaultConn == nil" log.NewError(operationID, errMsg) From 4a098a4a0e3f7105ccc55e5a246bcb4807f5ecf8 Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Mon, 9 Jan 2023 14:29:43 +0800 Subject: [PATCH 5/6] group --- pkg/common/db/mysql_model/im_mysql_model/group_model_k.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model_k.go b/pkg/common/db/mysql_model/im_mysql_model/group_model_k.go index 0a50b596f..c5eeb46fd 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model_k.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model_k.go @@ -38,8 +38,7 @@ func (*Group) Delete(ctx context.Context, groupIDs []string) (err error) { defer func() { trace_log.SetContextInfo(ctx, utils.GetFuncName(1), err, "groupIDs", groupIDs) }() - err = utils.Wrap(db.DB.MysqlDB.DefaultGormDB().Where("group_id in (?)", groupIDs).Delete(&Group{}).Error, "") - return err + return utils.Wrap(db.DB.MysqlDB.DefaultGormDB().Where("group_id in (?)", groupIDs).Delete(&Group{}).Error, "") } func (*Group) UpdateByMap(ctx context.Context, groupID string, args map[string]interface{}) (err error) { From 36be1f4be8e4680e4409b50c3b0b08dde87d6e5f Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Mon, 9 Jan 2023 14:29:53 +0800 Subject: [PATCH 6/6] group --- .../mysql_model/im_mysql_model/group_member_model_k.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model_k.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model_k.go index 80a349891..b92833dc0 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model_k.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model_k.go @@ -82,6 +82,15 @@ func (*GroupMember) Take(ctx context.Context, groupID string, userID string) (gr return groupMember, utils.Wrap(db.DB.MysqlDB.DefaultGormDB().Where("group_id = ? and user_id = ?", groupID, userID).Take(groupMember).Error, "") } +func (*GroupMember) TakeOwnerInfo(ctx context.Context, groupID string) (groupMember *GroupMember, err error) { + defer func() { + trace_log.SetContextInfo(ctx, utils.GetFuncName(1), err, "groupID", groupID, "groupMember", *groupMember) + }() + groupMember = &GroupMember{} + err = db.DB.MysqlDB.DefaultGormDB().Where("group_id = ? and role_level = ?", groupID, constant.GroupOwner).Take(groupMember).Error + return groupMember, utils.Wrap(err, "") +} + func InsertIntoGroupMember(toInsertInfo GroupMember) error { toInsertInfo.JoinTime = time.Now() if toInsertInfo.RoleLevel == 0 {