mirror of
https://github.com/bufanyun/hotgo.git
synced 2025-08-28 06:56:10 +08:00
模块化上传驱动,使用泛型优化工具库降低冗余
This commit is contained in:
@@ -9,41 +9,11 @@ import (
|
||||
"crypto/rand"
|
||||
"github.com/gogf/gf/v2/errors/gerror"
|
||||
"github.com/gogf/gf/v2/text/gstr"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
"hotgo/utility/convert"
|
||||
r "math/rand"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
// SplitMemberIds 从截取字串符中读取用户ID
|
||||
func SplitMemberIds(str, pos string) (memberIds []int64) {
|
||||
receiver := strings.Split(strings.TrimSpace(str), pos)
|
||||
if len(receiver) == 0 {
|
||||
return memberIds
|
||||
}
|
||||
if len(receiver) == 1 && strings.TrimSpace(receiver[0]) == "" {
|
||||
return memberIds
|
||||
}
|
||||
|
||||
for _, memberId := range receiver {
|
||||
memberIds = append(memberIds, gconv.Int64(strings.TrimSpace(memberId)))
|
||||
}
|
||||
return convert.UniqueSliceInt64(memberIds)
|
||||
}
|
||||
|
||||
// GetMapKeysByString 获取map的所有key,字串符类型
|
||||
func GetMapKeysByString(m map[string]string) []string {
|
||||
// 数组默认长度为map长度,后面append时,不需要重新申请内存和拷贝,效率很高
|
||||
j := 0
|
||||
keys := make([]string, len(m))
|
||||
for k := range m {
|
||||
keys[j] = k
|
||||
j++
|
||||
}
|
||||
return keys
|
||||
}
|
||||
|
||||
// RandomCreateBytes 生成随机字串符
|
||||
func RandomCreateBytes(n int, alphabets ...byte) []byte {
|
||||
if len(alphabets) == 0 {
|
||||
@@ -51,13 +21,12 @@ func RandomCreateBytes(n int, alphabets ...byte) []byte {
|
||||
}
|
||||
var bytes = make([]byte, n)
|
||||
var randBy bool
|
||||
r.Seed(time.Now().UnixNano())
|
||||
if num, err := rand.Read(bytes); num != n || err != nil {
|
||||
randBy = true
|
||||
}
|
||||
for i, b := range bytes {
|
||||
if randBy {
|
||||
bytes[i] = alphabets[r.Intn(len(alphabets))]
|
||||
bytes[i] = alphabets[r.New(r.NewSource(time.Now().UnixNano())).Intn(len(alphabets))]
|
||||
} else {
|
||||
bytes[i] = alphabets[b%byte(len(alphabets))]
|
||||
}
|
||||
|
Reference in New Issue
Block a user