From a4f69351cef7fb03a8cc05cc65790e8ce5825d9d Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 8 Jun 2022 16:46:21 +0800 Subject: [PATCH] fix bug --- internal/rpc/group/super_group.go | 2 +- pkg/common/db/mongoModel.go | 19 +++++++------------ 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/internal/rpc/group/super_group.go b/internal/rpc/group/super_group.go index 949e92a91..ca57bbb4f 100644 --- a/internal/rpc/group/super_group.go +++ b/internal/rpc/group/super_group.go @@ -40,7 +40,7 @@ func (s *groupServer) GetJoinedSuperGroupList(ctx context.Context, req *pbGroup. groupInfo.MemberCount = uint32(len(group.MemberIDList)) resp.GroupList = append(resp.GroupList, groupInfo) } - log.NewError(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil } diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index e57b291d4..4576c26b5 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -964,9 +964,6 @@ func (d *DataBases) CreateSuperGroup(groupID string, initMemberIDList []string, } defer session.EndSession(ctx) sCtx := mongo.NewSessionContext(ctx, session) - if err != nil { - return utils.Wrap(err, "start transaction failed") - } superGroup := SuperGroup{ GroupID: groupID, MemberIDList: initMemberIDList, @@ -987,12 +984,10 @@ func (d *DataBases) CreateSuperGroup(groupID string, initMemberIDList []string, Upsert: &upsert, } c = d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cUserToSuperGroup) - for _, userID := range initMemberIDList { - _, err = c.UpdateOne(sCtx, bson.M{"user_id": userID}, bson.M{"$addToSet": bson.M{"group_id_list": groupID}}, opts) - if err != nil { - session.AbortTransaction(ctx) - return utils.Wrap(err, "transaction failed") - } + _, err = c.UpdateMany(sCtx, bson.M{"user_id": bson.M{"$in": initMemberIDList}}, bson.M{"$addToSet": bson.M{"group_id_list": groupID}}, opts) + if err != nil { + session.AbortTransaction(ctx) + return utils.Wrap(err, "transaction failed") } session.CommitTransaction(ctx) return err @@ -1099,15 +1094,15 @@ func (d *DataBases) DeleteSuperGroup(groupID string) error { return nil } -func (d *DataBases) RemoveGroupFromUser(ctx, sCtx context.Context, groupID string, userID []string) error { +func (d *DataBases) RemoveGroupFromUser(ctx, sCtx context.Context, groupID string, userIDList []string) error { var users []UserToSuperGroup - for _, v := range userID { + for _, v := range userIDList { users = append(users, UserToSuperGroup{ UserID: v, }) } c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cUserToSuperGroup) - _, err := c.UpdateOne(sCtx, bson.M{"user_id": bson.M{"$in": userID}}, bson.M{"$pull": bson.M{"group_id_list": groupID}}) + _, err := c.UpdateOne(sCtx, bson.M{"user_id": bson.M{"$in": userIDList}}, bson.M{"$pull": bson.M{"group_id_list": groupID}}) if err != nil { return utils.Wrap(err, "UpdateOne transaction failed") }