You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
770 B
Go

package snowf
import (
exhibitionConfig "exhibition-register/config"
"exhibition-register/pkg/app"
"github.com/bwmarrin/snowflake"
"github.com/google/wire"
"strconv"
"time"
)
var Provider = wire.NewSet(NewSf)
func NewSf() *snowflake.Node {
var err error
var st time.Time
nodeNum, _ := strconv.Atoi(exhibitionConfig.Data.SnowFlake.NodeNum)
st, err = time.Parse("2006-01-02", exhibitionConfig.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()
}