🎨 新增兑换码功能,新增vip过期检测定时任务
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
|
||||
const charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
|
||||
// GenerateInviteCode 生成邀请码,基于用户ID和随机数的MD5哈希
|
||||
func GenerateInviteCode(userID uint) string {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
// 拼接用户ID和随机数
|
||||
@@ -34,3 +35,28 @@ func GenerateRandomString(length int) string {
|
||||
}
|
||||
return code
|
||||
}
|
||||
|
||||
// GenerateRedeemCode 生成单个兑换码,格式为N7DY4kcf5z37hwz,随机大小写字母+数字
|
||||
func GenerateRedeemCode() string {
|
||||
const codeCharset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
codeLen := 15
|
||||
b := make([]byte, codeLen)
|
||||
for i := range b {
|
||||
b[i] = codeCharset[rand.Intn(len(codeCharset))]
|
||||
}
|
||||
return string(b)
|
||||
}
|
||||
|
||||
// GenerateRedeemCodes 批量生成唯一兑换码,number为生成数量
|
||||
func GenerateRedeemCodes(number int) []string {
|
||||
codesMap := make(map[string]struct{}, number)
|
||||
for len(codesMap) < number {
|
||||
code := GenerateRedeemCode()
|
||||
codesMap[code] = struct{}{}
|
||||
}
|
||||
codes := make([]string, 0, number)
|
||||
for code := range codesMap {
|
||||
codes = append(codes, code)
|
||||
}
|
||||
return codes
|
||||
}
|
||||
|
Reference in New Issue
Block a user