Ai
1 Star 0 Fork 0

GarlicBoris/gozero-utils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
no_generator.go 909 Bytes
一键复制 编辑 原始数据 按行查看 历史
yanwc 提交于 2024-11-20 19:14 +08:00 . refactor: error
package utils
import (
"context"
"strconv"
"time"
"gitee.com/yanwc/gozero-utils/errx"
redis "github.com/redis/go-redis/v9"
)
func GenerateNo(ctx context.Context, client *redis.Client, prefix string) (string, *errx.Error) {
v := time.Now().Unix()
key := prefix + strconv.Itoa(int(v))
intCmd := client.Incr(ctx, key)
if intCmd.Err() != nil {
return "", errx.New(errx.CACHE_ERROR, errx.WithMsgOption(intCmd.Err().Error()), errx.WithErrorOption(intCmd.Err()))
}
boolCmd := client.Expire(ctx, key, 2*time.Second)
if boolCmd.Err() != nil {
return "", errx.New(errx.CACHE_ERROR, errx.WithErrorOption(boolCmd.Err()), errx.WithMsgOption(boolCmd.Err().Error()))
}
incr, err := intCmd.Result()
if err != nil {
return "", errx.New(errx.CACHE_ERROR, errx.WithErrorOption(boolCmd.Err()), errx.WithMsgOption(boolCmd.Err().Error()))
}
no := v + incr
return prefix + strconv.Itoa(int(no)), nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/yanwc/gozero-utils.git
git@gitee.com:yanwc/gozero-utils.git
yanwc
gozero-utils
gozero-utils
v1.3.78

搜索帮助