From 81d0d45b806e4aeb6c442f2689e3762481da17c3 Mon Sep 17 00:00:00 2001 From: zhouribin Date: Mon, 22 Dec 2025 14:44:38 +0800 Subject: [PATCH] =?UTF-8?q?group:=20=E5=85=A5=E7=BE=A4=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E4=B8=8A=E9=99=90=E9=87=8D=E7=BD=AE=E4=B8=BA=E4=B8=8D=E5=8F=97?= =?UTF-8?q?=E9=99=90=E5=80=BC=EF=BC=9B=E9=80=80=E5=87=BA=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E4=B8=8A=E9=99=90=E5=9B=BA=E5=8C=96=EF=BC=9B=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E5=85=A5=E7=BE=A4=20minSeq?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/rpc/group/group.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 1d9fd6958..910df3c26 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -17,6 +17,7 @@ package group import ( "context" "fmt" + "math" "math/big" "math/rand" "strconv" @@ -472,6 +473,9 @@ func (g *groupServer) InviteUserToGroup(ctx context.Context, req *pbgroup.Invite if err = g.notification.GroupApplicationAgreeMemberEnterNotification(ctx, req.GroupID, req.SendMessage, opUserID, userIDs...); err != nil { return nil, err } + if err := g.setMemberJoinSeq(ctx, req.GroupID, userIDs); err != nil { + return nil, err + } } return &pbgroup.InviteUserToGroupResp{}, nil } @@ -890,6 +894,9 @@ func (g *groupServer) GroupApplicationResponse(ctx context.Context, req *pbgroup return nil, err } } + if err := g.setMemberJoinSeq(ctx, req.GroupID, []string{req.FromUserID}); err != nil { + return nil, err + } } case constant.GroupResponseRefuse: g.notification.GroupApplicationRejectedNotification(ctx, req) @@ -952,6 +959,9 @@ func (g *groupServer) JoinGroup(ctx context.Context, req *pbgroup.JoinGroupReq) if err = g.notification.MemberEnterNotification(ctx, req.GroupID, req.InviterUserID); err != nil { return nil, err } + if err := g.setMemberJoinSeq(ctx, req.GroupID, []string{req.InviterUserID}); err != nil { + return nil, err + } g.webhookAfterJoinGroup(ctx, &g.config.WebhooksConfig.AfterJoinGroup, req) return &pbgroup.JoinGroupResp{}, nil @@ -1013,6 +1023,11 @@ func (g *groupServer) deleteMemberAndSetConversationSeq(ctx context.Context, gro return g.conversationClient.SetConversationMaxSeq(ctx, conversationID, userIDs, maxSeq) } +func (g *groupServer) setMemberJoinSeq(ctx context.Context, groupID string, userIDs []string) error { + conversationID := msgprocessor.GetConversationIDBySessionType(constant.ReadGroupChatType, groupID) + return g.conversationClient.SetConversationMaxSeq(ctx, conversationID, userIDs, math.MaxInt64) +} + func (g *groupServer) SetGroupInfo(ctx context.Context, req *pbgroup.SetGroupInfoReq) (*pbgroup.SetGroupInfoResp, error) { var opMember *model.GroupMember if !authverify.IsAppManagerUid(ctx, g.config.Share.IMAdminUserID) {