refactor: 调整项目结构为单向依赖
This commit is contained in:
41
backend/internal/service/redeem_code.go
Normal file
41
backend/internal/service/redeem_code.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"crypto/rand"
|
||||
"encoding/hex"
|
||||
"time"
|
||||
)
|
||||
|
||||
type RedeemCode struct {
|
||||
ID int64
|
||||
Code string
|
||||
Type string
|
||||
Value float64
|
||||
Status string
|
||||
UsedBy *int64
|
||||
UsedAt *time.Time
|
||||
Notes string
|
||||
CreatedAt time.Time
|
||||
|
||||
GroupID *int64
|
||||
ValidityDays int
|
||||
|
||||
User *User
|
||||
Group *Group
|
||||
}
|
||||
|
||||
func (r *RedeemCode) IsUsed() bool {
|
||||
return r.Status == StatusUsed
|
||||
}
|
||||
|
||||
func (r *RedeemCode) CanUse() bool {
|
||||
return r.Status == StatusUnused
|
||||
}
|
||||
|
||||
func GenerateRedeemCode() (string, error) {
|
||||
b := make([]byte, 16)
|
||||
if _, err := rand.Read(b); err != nil {
|
||||
return "", err
|
||||
}
|
||||
return hex.EncodeToString(b), nil
|
||||
}
|
||||
Reference in New Issue
Block a user