From 9a29a32b43dc02b14c3004244d064e420b712222 Mon Sep 17 00:00:00 2001 From: Gordon <46924906+FGadvancer@users.noreply.github.com> Date: Tue, 10 Oct 2023 22:43:11 +0800 Subject: [PATCH] fix: user status change. --- pkg/common/db/cache/user.go | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/pkg/common/db/cache/user.go b/pkg/common/db/cache/user.go index 6a4d7ec61..5fb0fdde6 100644 --- a/pkg/common/db/cache/user.go +++ b/pkg/common/db/cache/user.go @@ -246,17 +246,18 @@ func (u *UserCacheRedis) SetUserStatus(ctx context.Context, userID string, statu return errs.Wrap(err) } } - var onlineStatus user.OnlineStatus - err = json.Unmarshal([]byte(result), &onlineStatus) - if err != nil { - return errs.Wrap(err) - } + if status == constant.Offline { if isNil { log.ZWarn(ctx, "this user not online,maybe trigger order not right", err, "userStatus", status) return nil } + var onlineStatus user.OnlineStatus + err = json.Unmarshal([]byte(result), &onlineStatus) + if err != nil { + return errs.Wrap(err) + } var newPlatformIDs []int32 for _, val := range onlineStatus.PlatformIDs { if val != platformID { @@ -280,6 +281,13 @@ func (u *UserCacheRedis) SetUserStatus(ctx context.Context, userID string, statu } } } else { + var onlineStatus user.OnlineStatus + if !isNil { + err = json.Unmarshal([]byte(result), &onlineStatus) + if err != nil { + return errs.Wrap(err) + } + } onlineStatus.Status = constant.Online onlineStatus.UserID = userID onlineStatus.PlatformIDs = append(onlineStatus.PlatformIDs, platformID)