online status

pull/2393/head
withchao 1 year ago
parent fd2b0b3284
commit 67d17c82d5

@ -128,106 +128,6 @@ func (u *UserCacheRedis) DelUsersGlobalRecvMsgOpt(userIDs ...string) cache.UserC
return cache
}
/*
*/
type RedisUserOnline struct {
// 平台id, 平台更新时间
PlatformIDs map[int32]int64
}
// GetUserStatus get user status.
//func (u *UserCacheRedis) GetUserStatus(ctx context.Context, userIDs []string) ([]*user.OnlineStatus, error) {
// userStatus := make([]*user.OnlineStatus, 0, len(userIDs))
// for _, userID := range userIDs {
// UserIDNum := crc32.ChecksumIEEE([]byte(userID))
// modKey := strconv.Itoa(int(UserIDNum % statusMod))
// var onlineStatus user.OnlineStatus
// key := u.getOnlineStatusKey(modKey)
// result, err := u.rdb.HGet(ctx, key, userID).Result()
// if err != nil {
// if errors.Is(err, redis.Nil) {
// // key or field does not exist
// userStatus = append(userStatus, &user.OnlineStatus{
// UserID: userID,
// Status: constant.Offline,
// PlatformIDs: nil,
// })
//
// continue
// } else {
// return nil, errs.Wrap(err)
// }
// }
// err = json.Unmarshal([]byte(result), &onlineStatus)
// if err != nil {
// return nil, errs.Wrap(err)
// }
// onlineStatus.UserID = userID
// onlineStatus.Status = constant.Online
// userStatus = append(userStatus, &onlineStatus)
// }
//
// return userStatus, nil
//}
// SetUserStatus Set the user status and save it in redis.
//func (u *UserCacheRedis) SetUserStatus(ctx context.Context, userID string, status, platformID int32) error {
// UserIDNum := crc32.ChecksumIEEE([]byte(userID))
// modKey := strconv.Itoa(int(UserIDNum % statusMod))
// key := u.getOnlineStatusKey(modKey)
// log.ZDebug(ctx, "SetUserStatus args", "userID", userID, "status", status, "platformID", platformID, "modKey", modKey, "key", key)
// isNewKey, err := u.rdb.Exists(ctx, key).Result()
// if err != nil {
// return errs.Wrap(err)
// }
// if isNewKey == 0 {
// if status == constant.Online {
// onlineStatus := user.OnlineStatus{
// UserID: userID,
// Status: constant.Online,
// PlatformIDs: []int32{platformID},
// }
// jsonData, err := json.Marshal(&onlineStatus)
// if err != nil {
// return errs.Wrap(err)
// }
// _, err = u.rdb.HSet(ctx, key, userID, string(jsonData)).Result()
// if err != nil {
// return errs.Wrap(err)
// }
// u.rdb.Expire(ctx, key, userOlineStatusExpireTime)
//
// return nil
// }
// }
//
// isNil := false
// result, err := u.rdb.HGet(ctx, key, userID).Result()
// if err != nil {
// if errors.Is(err, redis.Nil) {
// isNil = true
// } else {
// return errs.Wrap(err)
// }
// }
//
// if status == constant.Offline {
// err = u.refreshStatusOffline(ctx, userID, status, platformID, isNil, err, result, key)
// if err != nil {
// return err
// }
// } else {
// err = u.refreshStatusOnline(ctx, userID, platformID, isNil, err, result, key)
// if err != nil {
// return errs.Wrap(err)
// }
// }
//
// return nil
//}
func (u *UserCacheRedis) refreshStatusOffline(ctx context.Context, userID string, status, platformID int32, isNil bool, err error, result, key string) error {
if isNil {
log.ZWarn(ctx, "this user not online,maybe trigger order not right",

Loading…
Cancel
Save