From 7436b7796b84dc785e82d31318a37d18b8166c0c Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Wed, 9 Aug 2023 17:30:42 +0800 Subject: [PATCH] fix: group notification --- internal/rpc/group/group.go | 5 ++++- pkg/common/db/controller/group.go | 29 ++++++++++++++++++++++------- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index b0de44399..282d41011 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -720,6 +720,7 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup return nil, err } } + log.ZDebug(ctx, "GroupApplicationResponse", "inGroup", inGroup, "HandleResult", req.HandleResult, "member", member) if err := s.GroupDatabase.HandlerGroupRequest(ctx, req.GroupID, req.FromUserID, req.HandledMsg, req.HandleResult, member); err != nil { return nil, err } @@ -729,7 +730,9 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup return nil, err } s.Notification.GroupApplicationAcceptedNotification(ctx, req) - if !inGroup { + if member == nil { + log.ZDebug(ctx, "GroupApplicationResponse", "member is nil") + } else { s.Notification.MemberEnterNotification(ctx, req.GroupID, req.FromUserID) } case constant.GroupResponseRefuse: diff --git a/pkg/common/db/controller/group.go b/pkg/common/db/controller/group.go index 2311e1f28..29fc22f28 100644 --- a/pkg/common/db/controller/group.go +++ b/pkg/common/db/controller/group.go @@ -386,8 +386,24 @@ func (g *groupDatabase) HandlerGroupRequest( handleResult int32, member *relationTb.GroupMemberModel, ) error { - cache := g.cache.NewCache() - if err := g.tx.Transaction(func(tx any) error { + //cache := g.cache.NewCache() + //if err := g.tx.Transaction(func(tx any) error { + // if err := g.groupRequestDB.NewTx(tx).UpdateHandler(ctx, groupID, userID, handledMsg, handleResult); err != nil { + // return err + // } + // if member != nil { + // if err := g.groupMemberDB.NewTx(tx).Create(ctx, []*relationTb.GroupMemberModel{member}); err != nil { + // return err + // } + // cache = cache.DelGroupMembersHash(groupID).DelGroupMemberIDs(groupID).DelGroupsMemberNum(groupID).DelJoinedGroupID(member.UserID) + // } + // return nil + //}); err != nil { + // return err + //} + //return cache.ExecDel(ctx) + + return g.tx.Transaction(func(tx any) error { if err := g.groupRequestDB.NewTx(tx).UpdateHandler(ctx, groupID, userID, handledMsg, handleResult); err != nil { return err } @@ -395,13 +411,12 @@ func (g *groupDatabase) HandlerGroupRequest( if err := g.groupMemberDB.NewTx(tx).Create(ctx, []*relationTb.GroupMemberModel{member}); err != nil { return err } - cache = cache.DelGroupMembersHash(groupID).DelGroupMemberIDs(groupID).DelGroupsMemberNum(groupID).DelJoinedGroupID(member.UserID) + if err := g.cache.NewCache().DelGroupMembersHash(groupID).DelGroupMemberIDs(groupID).DelGroupsMemberNum(groupID).DelJoinedGroupID(member.UserID).ExecDel(ctx); err != nil { + return err + } } return nil - }); err != nil { - return err - } - return cache.ExecDel(ctx) + }) } func (g *groupDatabase) DeleteGroupMember(ctx context.Context, groupID string, userIDs []string) error {