44 lines
869 B
Go
44 lines
869 B
Go
package generate
|
|
|
|
import (
|
|
"math/rand"
|
|
"time"
|
|
|
|
"be.ems/src/framework/logger"
|
|
|
|
gonanoid "github.com/matoous/go-nanoid/v2"
|
|
)
|
|
|
|
// 生成随机Code
|
|
// 包含数字、小写字母
|
|
// 不保证长度满足
|
|
func Code(size int) string {
|
|
str, err := gonanoid.Generate("0123456789abcdefghijklmnopqrstuvwxyz", size)
|
|
if err != nil {
|
|
logger.Infof("%d : %v", size, err)
|
|
return ""
|
|
}
|
|
return str
|
|
}
|
|
|
|
// 生成随机字符串
|
|
// 包含数字、大小写字母、下划线、横杠
|
|
// 不保证长度满足
|
|
func String(size int) string {
|
|
str, err := gonanoid.New(size)
|
|
if err != nil {
|
|
logger.Infof("%d : %v", size, err)
|
|
return ""
|
|
}
|
|
return str
|
|
}
|
|
|
|
// 随机数 纯数字0-9
|
|
func Number(size int) int {
|
|
source := rand.NewSource(time.Now().UnixNano())
|
|
random := rand.New(source)
|
|
min := int64(0)
|
|
max := int64(9 * int(size))
|
|
return int(random.Int63n(max-min+1) + min)
|
|
}
|