From 2bd22b42b704ce6d639d70155ce623bae733e23a Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 21 Apr 2023 11:26:48 +0800 Subject: [PATCH] conversation --- internal/rpc/conversation/conversaion.go | 4 ---- pkg/common/db/controller/conversation.go | 8 ++++---- pkg/common/db/relation/conversation_model.go | 4 ++-- pkg/common/db/table/relation/conversation.go | 2 +- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/internal/rpc/conversation/conversaion.go b/internal/rpc/conversation/conversaion.go index 67b0fba83..b66d40e68 100644 --- a/internal/rpc/conversation/conversaion.go +++ b/internal/rpc/conversation/conversaion.go @@ -145,10 +145,6 @@ func (c *conversationServer) ModifyConversationField(ctx context.Context, req *p c.notify.ConversationSetPrivateNotification(ctx, req.Conversation.OwnerUserID, req.Conversation.UserID, req.Conversation.IsPrivateChat) return resp, nil } - //haveUserID, err := c.ConversationDatabase.GetUserIDExistConversation(ctx, req.UserIDList, req.Conversation.ConversationID) - //if err != nil { - // return nil, err - //} filedMap := make(map[string]interface{}) switch req.FieldType { case constant.FieldRecvMsgOpt: diff --git a/pkg/common/db/controller/conversation.go b/pkg/common/db/controller/conversation.go index cbb440a7d..36ddf0f34 100644 --- a/pkg/common/db/controller/conversation.go +++ b/pkg/common/db/controller/conversation.go @@ -47,7 +47,7 @@ type ConversationDataBase struct { func (c *ConversationDataBase) SetUsersConversationFiledTx(ctx context.Context, userIDs []string, conversation *relationTb.ConversationModel, filedMap map[string]interface{}) error { return c.tx.Transaction(func(tx any) error { conversationTx := c.conversationDB.NewTx(tx) - haveUserIDs, err := conversationTx.FindUserID(ctx, userIDs, conversation.ConversationID) + haveUserIDs, err := conversationTx.FindUserID(ctx, userIDs, []string{conversation.ConversationID}) if err != nil { return err } @@ -102,9 +102,9 @@ func (c *ConversationDataBase) CreateConversation(ctx context.Context, conversat func (c *ConversationDataBase) SyncPeerUserPrivateConversationTx(ctx context.Context, conversation *relationTb.ConversationModel) error { return c.tx.Transaction(func(tx any) error { - userIDList := []string{conversation.OwnerUserID, conversation.UserID} + userIDs := []string{conversation.OwnerUserID, conversation.UserID} conversationTx := c.conversationDB.NewTx(tx) - haveUserIDs, err := conversationTx.FindUserID(ctx, userIDList, conversation.ConversationID) + haveUserIDs, err := conversationTx.FindUserID(ctx, userIDs, []string{conversation.ConversationID, utils.GetConversationIDBySessionType(conversation.UserID, constant.SingleChatType)}) if err != nil { return err } @@ -115,7 +115,7 @@ func (c *ConversationDataBase) SyncPeerUserPrivateConversationTx(ctx context.Con return err } } - NotUserIDs := utils.DifferenceString(haveUserIDs, userIDList) + NotUserIDs := utils.DifferenceString(haveUserIDs, userIDs) var cList []*relationTb.ConversationModel for _, v := range NotUserIDs { temp := new(relationTb.ConversationModel) diff --git a/pkg/common/db/relation/conversation_model.go b/pkg/common/db/relation/conversation_model.go index 932e1a217..ccdce96fd 100644 --- a/pkg/common/db/relation/conversation_model.go +++ b/pkg/common/db/relation/conversation_model.go @@ -47,8 +47,8 @@ func (c *ConversationGorm) Take(ctx context.Context, userID, conversationID stri return cc, utils.Wrap(c.db(ctx).Where("conversation_id = ? And owner_user_id = ?", conversationID, userID).Take(cc).Error, "") } -func (c *ConversationGorm) FindUserID(ctx context.Context, userIDList []string, conversationID string) (existUserID []string, err error) { - return existUserID, utils.Wrap(c.db(ctx).Where(" owner_user_id IN (?) and conversation_id=?", userIDList, conversationID).Pluck("owner_user_id", &existUserID).Error, "") +func (c *ConversationGorm) FindUserID(ctx context.Context, userIDs []string, conversationIDs []string) (existUserID []string, err error) { + return existUserID, utils.Wrap(c.db(ctx).Where(" owner_user_id IN (?) and conversation_id in (?)", userIDs, conversationIDs).Pluck("owner_user_id", &existUserID).Error, "") } func (c *ConversationGorm) FindConversationID(ctx context.Context, userID string, conversationIDList []string) (existConversationID []string, err error) { diff --git a/pkg/common/db/table/relation/conversation.go b/pkg/common/db/table/relation/conversation.go index b2cbde6a1..d368ff7c8 100644 --- a/pkg/common/db/table/relation/conversation.go +++ b/pkg/common/db/table/relation/conversation.go @@ -35,7 +35,7 @@ type ConversationModelInterface interface { UpdateByMap(ctx context.Context, userIDs []string, conversationID string, args map[string]interface{}) (err error) Update(ctx context.Context, conversation *ConversationModel) (err error) Find(ctx context.Context, ownerUserID string, conversationIDs []string) (conversations []*ConversationModel, err error) - FindUserID(ctx context.Context, userIDs []string, conversationID string) ([]string, error) + FindUserID(ctx context.Context, userIDs []string, conversationIDs []string) ([]string, error) FindUserIDAllConversationID(ctx context.Context, userID string) ([]string, error) Take(ctx context.Context, userID, conversationID string) (conversation *ConversationModel, err error) FindConversationID(ctx context.Context, userID string, conversationIDs []string) (existConversationID []string, err error)