52 lines
959 B
Go
52 lines
959 B
Go
package utils
|
|
|
|
import (
|
|
"io"
|
|
"math/rand/v2"
|
|
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/os/gctx"
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
func GetFirstNotEmptyString(strs ...string) string {
|
|
for _, str := range strs {
|
|
if str != "" {
|
|
return str
|
|
}
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func GenerateRandomString(length int) string {
|
|
const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
|
var result []byte
|
|
for i := 0; i < length; i++ {
|
|
index := rand.IntN(len(charset))
|
|
result = append(result, charset[index])
|
|
}
|
|
return string(result)
|
|
}
|
|
|
|
func ReadString(reader io.Reader) string {
|
|
defer func() {
|
|
if closer, ok := reader.(io.Closer); ok {
|
|
e := closer.Close()
|
|
if e != nil {
|
|
g.Log().Errorf(gctx.GetInitCtx(), "关闭Reader失败: %v", e)
|
|
}
|
|
}
|
|
}()
|
|
bytes, err := io.ReadAll(reader)
|
|
OkOrPanic(err)
|
|
return string(bytes)
|
|
}
|
|
|
|
func UUID() string {
|
|
v6, err := uuid.NewV6()
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
return v6.String()
|
|
}
|