From e7f76f44def40c85f8e501d8582f8147fc7753e3 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 14 Jun 2023 15:32:22 +0800 Subject: [PATCH 1/5] fix: friend add create time --- pkg/common/db/controller/friend.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/common/db/controller/friend.go b/pkg/common/db/controller/friend.go index 1c3fc0364..90985c9ad 100644 --- a/pkg/common/db/controller/friend.go +++ b/pkg/common/db/controller/friend.go @@ -81,6 +81,7 @@ func (f *friendDatabase) AddFriendRequest(ctx context.Context, fromUserID, toUse m["handle_msg"] = "" m["req_msg"] = reqMsg m["ex"] = ex + m["create_time"] = time.Now() if err := f.friendRequest.NewTx(tx).UpdateByMap(ctx, fromUserID, toUserID, m); err != nil { return err } From 230513d61b7f31094368d3dea9bd808d318238f0 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 14 Jun 2023 16:30:56 +0800 Subject: [PATCH 2/5] fix: msg rpc panic --- internal/rpc/msg/as_read.go | 2 +- internal/rpc/msg/server.go | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/internal/rpc/msg/as_read.go b/internal/rpc/msg/as_read.go index 19c97fb19..8bca14c7f 100644 --- a/internal/rpc/msg/as_read.go +++ b/internal/rpc/msg/as_read.go @@ -35,7 +35,7 @@ func (m *msgServer) GetConversationsHasReadAndMaxSeq(ctx context.Context, req *m return resp, nil } -func (m *msgServer) SetConversationHasReadMaxSeq(ctx context.Context, req *msg.SetConversationHasReadSeqReq) (resp *msg.SetConversationHasReadSeqResp, err error) { +func (m *msgServer) SetConversationHasReadSeq(ctx context.Context, req *msg.SetConversationHasReadSeqReq) (resp *msg.SetConversationHasReadSeqResp, err error) { maxSeq, err := m.MsgDatabase.GetMaxSeq(ctx, req.ConversationID) if err != nil { return diff --git a/internal/rpc/msg/server.go b/internal/rpc/msg/server.go index 94510771c..c2b30191e 100644 --- a/internal/rpc/msg/server.go +++ b/internal/rpc/msg/server.go @@ -34,11 +34,6 @@ type msgServer struct { notificationSender *rpcclient.NotificationSender } -func (m *msgServer) SetConversationHasReadSeq(ctx context.Context, req *msg.SetConversationHasReadSeqReq) (*msg.SetConversationHasReadSeqResp, error) { - //TODO implement me - panic("implement me") -} - func (m *msgServer) addInterceptorHandler(interceptorFunc ...MessageInterceptorFunc) { m.Handlers = append(m.Handlers, interceptorFunc...) } From 923e94359134f429baf093a2c572c0b77cd8e6b8 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 14 Jun 2023 18:17:32 +0800 Subject: [PATCH 3/5] err --- internal/rpc/msg/as_read.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/msg/as_read.go b/internal/rpc/msg/as_read.go index 19c97fb19..a79c57e86 100644 --- a/internal/rpc/msg/as_read.go +++ b/internal/rpc/msg/as_read.go @@ -93,7 +93,7 @@ func (m *msgServer) MarkConversationAsRead(ctx context.Context, req *msg.MarkCon return } hasReadSeq, err := m.MsgDatabase.GetHasReadSeq(ctx, req.UserID, req.ConversationID) - if err != nil && errors.Unwrap(err) != redis.Nil { + if err != nil && errs.Unwrap(err) != redis.Nil { return } log.ZDebug(ctx, "MarkConversationAsRead", "hasReadSeq", hasReadSeq, "req.HasReadSeq", req.HasReadSeq) From fef55433927e287b01c47d36075ece59026b1182 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 15 Jun 2023 10:22:28 +0800 Subject: [PATCH 4/5] get con from cache --- pkg/common/db/controller/conversation.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/controller/conversation.go b/pkg/common/db/controller/conversation.go index d34c1c890..4cdf2c22e 100644 --- a/pkg/common/db/controller/conversation.go +++ b/pkg/common/db/controller/conversation.go @@ -265,5 +265,5 @@ func (c *conversationDatabase) GetUserAllHasReadSeqs(ctx context.Context, ownerU } func (c *conversationDatabase) GetConversationsByConversationID(ctx context.Context, conversationIDs []string) ([]*relationTb.ConversationModel, error) { - return c.conversationDB.GetConversationsByConversationID(ctx, conversationIDs) + return c.cache.GetConversationsByConversationID(ctx, conversationIDs) } From 61953f4f7d213e75e255d4fae59f1d3546a38706 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 15 Jun 2023 10:22:37 +0800 Subject: [PATCH 5/5] get con from cache --- internal/rpc/msg/as_read.go | 8 ++++---- pkg/common/db/cache/conversation.go | 11 +++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/internal/rpc/msg/as_read.go b/internal/rpc/msg/as_read.go index 0b3838307..07a2e6592 100644 --- a/internal/rpc/msg/as_read.go +++ b/internal/rpc/msg/as_read.go @@ -64,7 +64,7 @@ func (m *msgServer) MarkMsgsAsRead(ctx context.Context, req *msg.MarkMsgsAsReadR if hasReadSeq > maxSeq { return nil, errs.ErrArgs.Wrap("hasReadSeq must not be bigger than maxSeq") } - conversations, err := m.Conversation.GetConversationsByConversationID(ctx, []string{req.ConversationID}) + conversation, err := m.Conversation.GetConversation(ctx, req.UserID, req.ConversationID) if err != nil { return } @@ -81,14 +81,14 @@ func (m *msgServer) MarkMsgsAsRead(ctx context.Context, req *msg.MarkMsgsAsReadR return } } - if err = m.sendMarkAsReadNotification(ctx, req.ConversationID, conversations[0].ConversationType, req.UserID, m.conversationAndGetRecvID(conversations[0], req.UserID), req.Seqs, hasReadSeq); err != nil { + if err = m.sendMarkAsReadNotification(ctx, req.ConversationID, conversation.ConversationType, req.UserID, m.conversationAndGetRecvID(conversation, req.UserID), req.Seqs, hasReadSeq); err != nil { return } return &msg.MarkMsgsAsReadResp{}, nil } func (m *msgServer) MarkConversationAsRead(ctx context.Context, req *msg.MarkConversationAsReadReq) (resp *msg.MarkConversationAsReadResp, err error) { - conversations, err := m.Conversation.GetConversationsByConversationID(ctx, []string{req.ConversationID}) + conversation, err := m.Conversation.GetConversation(ctx, req.UserID, req.ConversationID) if err != nil { return } @@ -114,7 +114,7 @@ func (m *msgServer) MarkConversationAsRead(ctx context.Context, req *msg.MarkCon } hasReadSeq = req.HasReadSeq } - if err = m.sendMarkAsReadNotification(ctx, req.ConversationID, conversations[0].ConversationType, req.UserID, m.conversationAndGetRecvID(conversations[0], req.UserID), seqs, hasReadSeq); err != nil { + if err = m.sendMarkAsReadNotification(ctx, req.ConversationID, conversation.ConversationType, req.UserID, m.conversationAndGetRecvID(conversation, req.UserID), seqs, hasReadSeq); err != nil { return } return &msg.MarkConversationAsReadResp{}, nil diff --git a/pkg/common/db/cache/conversation.go b/pkg/common/db/cache/conversation.go index da5af8094..64ae93598 100644 --- a/pkg/common/db/cache/conversation.go +++ b/pkg/common/db/cache/conversation.go @@ -57,6 +57,9 @@ type ConversationCache interface { GetUserAllHasReadSeqs(ctx context.Context, ownerUserID string) (map[string]int64, error) DelUserAllHasReadSeqs(ownerUserID string, conversationIDs ...string) ConversationCache + + GetConversationsByConversationID(ctx context.Context, conversationIDs []string) ([]*relationTb.ConversationModel, error) + DelConversationByConversationID(conversationIDs ...string) ConversationCache } func NewConversationRedis(rdb redis.UniversalClient, opts rockscache.Options, db relationTb.ConversationModelInterface) ConversationCache { @@ -280,3 +283,11 @@ func (c *ConversationRedisCache) DelUserAllHasReadSeqs(ownerUserID string, conve } return cache } + +func (c *ConversationRedisCache) GetConversationsByConversationID(ctx context.Context, conversationIDs []string) ([]*relationTb.ConversationModel, error) { + panic("implement me") +} + +func (c *ConversationRedisCache) DelConversationByConversationID(conversationIDs ...string) ConversationCache { + panic("implement me") +}