34 lines
783 B
Go
34 lines
783 B
Go
|
|
// Package util provide some utility fun
|
||
|
|
package util
|
||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
"strconv"
|
||
|
|
|
||
|
|
"modelRT/logger"
|
||
|
|
|
||
|
|
"github.com/redis/go-redis/v9"
|
||
|
|
)
|
||
|
|
|
||
|
|
// ConvertZSetMembersToFloat64 define func to conver zset member type to float64
|
||
|
|
func ConvertZSetMembersToFloat64(ctx context.Context, members []redis.Z) []float64 {
|
||
|
|
dataFloats := make([]float64, 0, len(members))
|
||
|
|
|
||
|
|
for _, member := range members {
|
||
|
|
valStr, ok := member.Member.(string)
|
||
|
|
if !ok {
|
||
|
|
logger.Warn(ctx, "redis zset member value is not a string,skipping")
|
||
|
|
continue
|
||
|
|
}
|
||
|
|
|
||
|
|
valFloat, err := strconv.ParseFloat(valStr, 64)
|
||
|
|
if err != nil {
|
||
|
|
logger.Error(ctx, "failed to parse zset member string to float64", "value", valStr, "error", err)
|
||
|
|
continue
|
||
|
|
}
|
||
|
|
dataFloats = append(dataFloats, valFloat)
|
||
|
|
}
|
||
|
|
|
||
|
|
return dataFloats
|
||
|
|
}
|