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

30 lines
816 B
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}