Modification only does not delete all subscribed documents when unsubscribing

pull/756/head
pluto 2 years ago
parent 77592c0dcf
commit 7f8d7b33ab

@ -37,7 +37,7 @@ require (
require github.com/google/uuid v1.3.0 require github.com/google/uuid v1.3.0
require ( require (
github.com/OpenIMSDK/protocol v0.0.3 github.com/OpenIMSDK/protocol v0.0.4
github.com/OpenIMSDK/tools v0.0.13 github.com/OpenIMSDK/tools v0.0.13
github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible github.com/aliyun/aliyun-oss-go-sdk v2.2.7+incompatible
github.com/go-redis/redis v6.15.9+incompatible github.com/go-redis/redis v6.15.9+incompatible

@ -19,6 +19,7 @@ firebase.google.com/go v3.13.0+incompatible/go.mod h1:xlah6XbEyW6tbfSklcfe5FHJIw
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/OpenIMSDK/protocol v0.0.3 h1:CFQtmnyW+1dYKVFaVaHcJ6oYuMiMdNfU2gC1xz3K/9I= github.com/OpenIMSDK/protocol v0.0.3 h1:CFQtmnyW+1dYKVFaVaHcJ6oYuMiMdNfU2gC1xz3K/9I=
github.com/OpenIMSDK/protocol v0.0.3/go.mod h1:F25dFrwrIx3lkNoiuf6FkCfxuwf8L4Z8UIsdTHP/r0Y= github.com/OpenIMSDK/protocol v0.0.3/go.mod h1:F25dFrwrIx3lkNoiuf6FkCfxuwf8L4Z8UIsdTHP/r0Y=
github.com/OpenIMSDK/protocol v0.0.4/go.mod h1:F25dFrwrIx3lkNoiuf6FkCfxuwf8L4Z8UIsdTHP/r0Y=
github.com/OpenIMSDK/tools v0.0.13 h1:rcw4HS8S2DPZR9UOBxD8/ol9UBMzXBypzOVEytDRIMo= github.com/OpenIMSDK/tools v0.0.13 h1:rcw4HS8S2DPZR9UOBxD8/ol9UBMzXBypzOVEytDRIMo=
github.com/OpenIMSDK/tools v0.0.13/go.mod h1:eg+q4A34Qmu73xkY0mt37FHGMCMfC6CtmOnm0kFEGFI= github.com/OpenIMSDK/tools v0.0.13/go.mod h1:eg+q4A34Qmu73xkY0mt37FHGMCMfC6CtmOnm0kFEGFI=
github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM= github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM=

@ -257,11 +257,7 @@ func (s *userServer) SubscribeOrCancelUsersStatus(ctx context.Context, req *pbus
if err != nil { if err != nil {
return nil, err return nil, err
} }
var statusMap map[string]int32 return &pbuser.SubscribeOrCancelUsersStatusResp{StatusList: status}, nil
for _, value := range status {
statusMap[value.UserID] = value.Status
}
return &pbuser.SubscribeOrCancelUsersStatusResp{Status: statusMap}, nil
} else if req.Genre == constant.Unsubscribe { } else if req.Genre == constant.Unsubscribe {
err = s.UserDatabase.UnsubscribeUsersStatus(ctx, req.UserID, req.UserIDs) err = s.UserDatabase.UnsubscribeUsersStatus(ctx, req.UserID, req.UserIDs)
if err != nil { if err != nil {

@ -141,15 +141,18 @@ func (u *UserMongoDriver) UnsubscriptionList(ctx context.Context, userID string,
// RemoveSubscribedListFromUser Among the unsubscribed users, delete the user from the subscribed list. // RemoveSubscribedListFromUser Among the unsubscribed users, delete the user from the subscribed list.
func (u *UserMongoDriver) RemoveSubscribedListFromUser(ctx context.Context, userID string, userIDList []string) error { func (u *UserMongoDriver) RemoveSubscribedListFromUser(ctx context.Context, userID string, userIDList []string) error {
var err error
var newUserIDList []string var newUserIDList []string
for _, value := range userIDList { for _, value := range userIDList {
newUserIDList = append(newUserIDList, SubscribedPrefix+value) newUserIDList = append(newUserIDList, SubscribedPrefix+value)
} }
_, err := u.userCollection.UpdateOne( for _, userIDTemp := range newUserIDList {
ctx, _, err = u.userCollection.UpdateOne(
bson.M{"user_id": bson.M{"$in": newUserIDList}}, ctx,
bson.M{"$pull": bson.M{"user_id_list": userID}}, bson.M{"user_id": userIDTemp},
) bson.M{"$pull": bson.M{"user_id_list": userID}},
)
}
return utils.Wrap(err, "") return utils.Wrap(err, "")
} }

Loading…
Cancel
Save