mirror of
https://github.com/coaidev/coai.git
synced 2025-05-19 21:10:18 +09:00
68 lines
1.2 KiB
Go
68 lines
1.2 KiB
Go
package utils
|
|
|
|
import (
|
|
"encoding/json"
|
|
"math/rand"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
func GenerateCode(length int) string {
|
|
var code string
|
|
for i := 0; i < length; i++ {
|
|
code += strconv.Itoa(rand.Intn(10))
|
|
}
|
|
return code
|
|
}
|
|
|
|
func GenerateChar(length int) string {
|
|
const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
|
result := make([]byte, length)
|
|
for i := 0; i < length; i++ {
|
|
result[i] = charset[rand.Intn(len(charset))]
|
|
}
|
|
return string(result)
|
|
}
|
|
|
|
func ConvertTime(t []uint8) *time.Time {
|
|
val, err := time.Parse("2006-01-02 15:04:05", string(t))
|
|
if err != nil {
|
|
return nil
|
|
}
|
|
return &val
|
|
}
|
|
|
|
func Unmarshal[T interface{}](data []byte) (form T, err error) {
|
|
err = json.Unmarshal(data, &form)
|
|
return form, err
|
|
}
|
|
|
|
func Marshal[T interface{}](data T) string {
|
|
res, err := json.Marshal(data)
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
return string(res)
|
|
}
|
|
|
|
func MapToStruct[T any](data interface{}) *T {
|
|
val := Marshal(data)
|
|
if form, err := Unmarshal[T]([]byte(val)); err == nil {
|
|
return &form
|
|
} else {
|
|
return nil
|
|
}
|
|
}
|
|
|
|
func ToInt(value string) int {
|
|
if res, err := strconv.Atoi(value); err == nil {
|
|
return res
|
|
} else {
|
|
return 0
|
|
}
|
|
}
|
|
|
|
func ConvertSqlTime(t time.Time) string {
|
|
return t.Format("2006-01-02 15:04:05")
|
|
}
|