🎨 新增兑换码功能,新增vip过期检测定时任务

This commit is contained in:
2025-09-09 22:25:27 +08:00
parent a30ab925d1
commit c588e9efe7
19 changed files with 914 additions and 56 deletions

View File

@@ -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
}