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
}