diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 21a33578c..650c6805c 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -99,7 +99,7 @@ func (s *groupServer) Run() { } } log.NewInfo("", "rpcRegisterIP", rpcRegisterIP) - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), rpcRegisterIP, s.rpcPort, s.rpcRegisterName, 10) + err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), rpcRegisterIP, s.rpcPort, s.rpcRegisterName, 10, "") if err != nil { log.NewError("", "RegisterEtcd failed ", err.Error()) panic(utils.Wrap(err, "register group module rpc to etcd err")) @@ -844,24 +844,26 @@ func (s *groupServer) GetGroupApplicationList(ctx context.Context, req *pbGroup. } func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsInfoReq) (*pbGroup.GetGroupsInfoResp, error) { - log.NewInfo(req.OperationID, "GetGroupsInfo args ", req.String()) + nCtx := trace_log.NewRpcCtx(ctx, utils.GetSelfFuncName(), req.OperationID) + trace_log.SetRpcReqInfo(nCtx, utils.GetSelfFuncName(), req.String()) + defer trace_log.ShowLog(nCtx) + + resp := pbGroup.GetGroupsInfoResp{} groupsInfoList := make([]*open_im_sdk.GroupInfo, 0) for _, groupID := range req.GroupIDList { groupInfoFromRedis, err := rocksCache.GetGroupInfoFromCache(groupID) if err != nil { - log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), groupID) + SetErr(nCtx, "", err, &resp.ErrCode, &resp.ErrMsg, "groupID ", groupID) continue } var groupInfo open_im_sdk.GroupInfo cp.GroupDBCopyOpenIM(&groupInfo, groupInfoFromRedis) - //groupInfo.NeedVerification - groupInfo.NeedVerification = groupInfoFromRedis.NeedVerification groupsInfoList = append(groupsInfoList, &groupInfo) } + resp.GroupInfoList = groupsInfoList - resp := pbGroup.GetGroupsInfoResp{GroupInfoList: groupsInfoList} - log.NewInfo(req.OperationID, "GetGroupsInfo rpc return ", resp.String()) + trace_log.SetRpcRespInfo(nCtx, utils.GetSelfFuncName(), resp.String()) return &resp, nil } diff --git a/pkg/common/constant/error.go b/pkg/common/constant/error.go index 67032f44c..1f4934c95 100644 --- a/pkg/common/constant/error.go +++ b/pkg/common/constant/error.go @@ -2,6 +2,7 @@ package constant import ( sdkws "Open_IM/pkg/proto/sdk_ws" + "encoding/json" "errors" "gorm.io/gorm" ) @@ -42,8 +43,8 @@ var ( ErrOwnerNotAllowedQuit = ErrInfo{OwnerNotAllowedQuitError, "OwnerNotAllowedQuitError"} ErrRegisteredAlready = ErrInfo{RegisteredAlreadyError, "RegisteredAlreadyError"} - ErrDefaultOther = ErrInfo{DefaultOtherError, "DefaultOtherError"} - + ErrDefaultOther = ErrInfo{DefaultOtherError, "DefaultOtherError"} + ErrData = ErrInfo{DataError, "DataError"} ErrTokenExpired = ErrInfo{TokenExpiredError, "TokenExpiredError"} ErrTokenInvalid = ErrInfo{TokenInvalidError, "TokenInvalidError"} // ErrTokenMalformed = ErrInfo{TokenMalformedError, "TokenMalformedError"} //格式错误 @@ -61,21 +62,22 @@ var ( //) func ToAPIErrWithErr(err error) ErrInfo { - errTarget := errors.New("") - var errInfo ErrInfo switch { - case errors.As(err, &errTarget): - if errors.Is(errTarget, gorm.ErrRecordNotFound) { - return ErrRecordNotFound - } - case errors.As(err, &errInfo): - if errors.Is(errInfo, ErrArgs) { - return ErrArgs - } - if errors.Is(errInfo, ErrDatabase) { - return ErrDatabase - } + case errors.Is(err, gorm.ErrRecordNotFound): + return ErrRecordNotFound + case errors.Is(err, ErrArgs): + return ErrArgs + case errors.Is(err, ErrDatabase): + return ErrDatabase + } + errTarget := errors.New("") + var mErr *json.MarshalerError + switch { + case errors.As(err, &mErr): + return ErrData + case errors.As(err, errTarget): + return ErrDatabase } return ErrDefaultOther } @@ -118,6 +120,7 @@ const ( NoPermissionError = 90005 //权限不足 DefaultOtherError = 90006 //其他错误 + DataError = 90007 //数据错误 ) // 账号错误码