wx-server/internal/server/help/get_unique_id_peer_microsec...

30 lines
816 B
Go
Raw Permalink Normal View History

2024-06-04 21:22:50 +08:00
package help
import (
"math/rand"
"time"
"github.com/sqids/sqids-go"
)
var sqlids_sqlids *sqids.Sqids
func init() {
// 设置随机数种子
rand.NewSource(time.Now().UnixNano())
sqlids_sqlids, _ = sqids.New()
}
// 保证每秒id唯一。同一秒内由随机数区分可能出现重复。
// 注: 此微信用户名,只是展示名称,不能作为用户唯一标识使用,后期用户也可以修改。所有并没有严格唯一性要求,只要不容易重复即可。
func GetUniqueIdEachSecond() string {
// 生成一个0到1000之间的随机数
randomNum := rand.Intn(1001)
// 获取当前时间戳,精度秒即可。
ts := time.Now().Unix()
// 根据整数数组生成唯一的短id
id, _ := sqlids_sqlids.Encode([]uint64{uint64(ts), uint64(randomNum)})
return id
}