35 lines
		
	
	
		
			603 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			603 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package snowflakehelper
 | |
| 
 | |
| // 雪花算法用于生成订单号
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"go-admin/config"
 | |
| 
 | |
| 	"github.com/bwmarrin/snowflake"
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	snowNode *snowflake.Node
 | |
| )
 | |
| 
 | |
| func init() {
 | |
| 	snowflake.Epoch = 1649212361224 // time.Now().UnixMilli()
 | |
| 	// nodeId := utility.StringAsInt64()
 | |
| 	node, err := snowflake.NewNode(config.ExtConfig.ServiceId)
 | |
| 	if err != nil {
 | |
| 		fmt.Println("snowflake.NewNode err:", err)
 | |
| 		return
 | |
| 	}
 | |
| 	snowNode = node
 | |
| }
 | |
| 
 | |
| // GetOrderId 生成int64订单id
 | |
| func GetOrderId() int64 {
 | |
| 	return snowNode.Generate().Int64()
 | |
| }
 | |
| 
 | |
| func GetOrderNo() string {
 | |
| 	return fmt.Sprintf("%d", GetOrderId())
 | |
| }
 |