micro-bundle/pkg/snowf/snowflake.go
2025-02-20 20:40:39 +08:00

39 lines
746 B
Go

package snowf
import (
"strconv"
"time"
"github.com/bwmarrin/snowflake"
"github.com/google/wire"
bundleConfig "micro-bundle/config"
"micro-bundle/pkg/app"
)
var Provider = wire.NewSet(NewSf)
func NewSf() *snowflake.Node {
var err error
var st time.Time
nodeNum, _ := strconv.Atoi(bundleConfig.Data.SnowFlake.NodeNum)
st, err = time.Parse("2006-01-02", bundleConfig.Data.SnowFlake.StartTime)
if err != nil {
panic(err)
}
snowflake.Epoch = st.UnixNano() / 1000000
node, errS := snowflake.NewNode(int64(nodeNum))
if errS != nil {
panic(errS)
}
return node
}
func GenIDInt64() int64 {
return app.ModuleClients.SfNode.Generate().Int64()
}
func GetIDBase64() string {
return app.ModuleClients.SfNode.Generate().Base64()
}