diff --git a/internal/msggateway/user_map.go b/internal/msggateway/user_map.go index c173d8e05..56ad7a594 100644 --- a/internal/msggateway/user_map.go +++ b/internal/msggateway/user_map.go @@ -40,12 +40,12 @@ func (u *UserMap) Get(key string, platformID int) ([]*Client, bool, bool) { func (u *UserMap) Set(key string, v *Client) { allClients, existed := u.m.Load(key) if existed { - log.ZDebug(context.Background(), "Set existed", "user_id", key, "client", v) + log.ZDebug(context.Background(), "Set existed", "user_id", key, "client", *v) oldClients := allClients.([]*Client) oldClients = append(oldClients, v) u.m.Store(key, oldClients) } else { - log.ZDebug(context.Background(), "Set not existed", "user_id", key, "client", v) + log.ZDebug(context.Background(), "Set not existed", "user_id", key, "client", *v) var clients []*Client clients = append(clients, v) u.m.Store(key, clients) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index ebd08a59c..a8d31a02c 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -724,7 +724,7 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup return nil, err } if groupRequest.HandleResult != 0 { - return nil, errs.ErrArgs.Wrap("group request already processed") + return nil, errs.ErrGroupRequestHandled.Wrap("group request already processed") } var inGroup bool _, err = s.GroupDatabase.TakeGroupMember(ctx, req.GroupID, req.FromUserID) @@ -733,17 +733,16 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup } else if !s.IsNotFound(err) { return nil, err } - user, err := s.User.GetPublicUserInfo(ctx, req.FromUserID) - if err != nil { + if _, err := s.User.GetPublicUserInfo(ctx, req.FromUserID); err != nil { return nil, err } var member *relationTb.GroupMemberModel if (!inGroup) && req.HandleResult == constant.GroupResponseAgree { member = &relationTb.GroupMemberModel{ GroupID: req.GroupID, - UserID: user.UserID, - Nickname: user.Nickname, - FaceURL: user.FaceURL, + UserID: req.FromUserID, + Nickname: "", + FaceURL: "", RoleLevel: constant.GroupOrdinaryUsers, JoinTime: time.Now(), JoinSource: groupRequest.JoinSource, @@ -762,29 +761,12 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup switch req.HandleResult { case constant.GroupResponseAgree: s.Notification.GroupApplicationAcceptedNotification(ctx, req) - if !inGroup { - groupMember := &relationTb.GroupMemberModel{} - groupMember.GroupID = group.GroupID - groupMember.RoleLevel = constant.GroupOrdinaryUsers - groupMember.OperatorUserID = mcontext.GetOpUserID(ctx) - groupMember.JoinSource = groupRequest.JoinSource - groupMember.InviterUserID = groupRequest.InviterUserID - groupMember.JoinTime = time.Now() - groupMember.MuteEndTime = time.Unix(0, 0) - if err := CallbackBeforeMemberJoinGroup(ctx, groupMember, group.Ex); err != nil && err != errs.ErrCallbackContinue { - return nil, err - } - if err := s.GroupDatabase.CreateGroup(ctx, nil, []*relationTb.GroupMemberModel{groupMember}); err != nil { - return nil, err - } - if err := s.conversationRpcClient.GroupChatFirstCreateConversation(ctx, req.GroupID, []string{req.FromUserID}); err != nil { - return nil, err - } - s.Notification.MemberEnterNotification(ctx, req) - } case constant.GroupResponseRefuse: s.Notification.GroupApplicationRejectedNotification(ctx, req) } + if member != nil { + s.Notification.MemberEnterNotification(ctx, req) + } return &pbGroup.GroupApplicationResponseResp{}, nil } diff --git a/pkg/errs/code.go b/pkg/errs/code.go index 0a5b932f0..a17c09afa 100644 --- a/pkg/errs/code.go +++ b/pkg/errs/code.go @@ -56,6 +56,7 @@ const ( OwnerNotAllowedQuitError = 1207 //群主不能退群 GroupTypeNotSupport = 1208 GroupNoOwner = 1209 + GroupRequestHandled = 1210 // 关系链错误码 CanNotAddYourselfError = 1301 //不能添加自己为好友 diff --git a/pkg/errs/predefine.go b/pkg/errs/predefine.go index 5b7cfbd88..3fee637eb 100644 --- a/pkg/errs/predefine.go +++ b/pkg/errs/predefine.go @@ -62,4 +62,5 @@ var ( ErrFileUploadedComplete = NewCodeError(FileUploadedCompleteError, "FileUploadedComplete") ErrFileUploadedExpired = NewCodeError(FileUploadedExpiredError, "FileUploadedExpiredError") + ErrGroupRequestHandled = NewCodeError(GroupRequestHandled, "GroupRequestHandled") )