micro-bundle/pkg/utils/orderNo.go
2026-06-10 17:55:37 +08:00

30 lines
690 B
Go

package utils
import (
"math/rand"
"micro-bundle/internal/model"
"time"
)
const source = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
// 生成订单号 模版 BD20250220104501+6位随机数 避免 订单号重复
func GetOrderNo(orderType int32) string {
if orderType == model.OrderTypeBundle {
return "BD" + GetRandomString(20)
} else if orderType == model.OrderTypeValueAdd {
return "BNPL" + GetRandomString(20)
}
return ""
}
// 生成随机字符串
func GetRandomString(length int) string {
rand.Seed(time.Now().UnixNano())
bytes := make([]byte, length)
for i := 0; i < length; i++ {
bytes[i] = source[rand.Intn(62)]
}
return string(bytes)
}