generateID.go
585 字节
package utils
import (
"encoding/hex"
"fmt"
"strconv"
uuid "github.com/satori/go.uuid"
"github.com/sony/sonyflake"
)
var sf = sonyflake.NewSonyflake(sonyflake.Settings{})
//GenerateIDBySonyflake 18位雪花id
func GenerateIDBySonyflake() int64 {
num, _ := sf.NextID()
return int64(num)
}
func GenerateIDByUUID() string {
ubyte := uuid.NewV4().Bytes()
s := hex.EncodeToString(ubyte)
return s
}
func GenerateID14() int64 {
num := GenerateIDBySonyflake()
s := fmt.Sprintf("%d", num)
if len(s) < 4 {
return 0
}
i, _ := strconv.ParseInt(s[4:], 10, 64)
return i
}