Feat: vas redeem

This commit is contained in:
HFO4
2020-02-17 10:26:31 +08:00
parent ca0f244109
commit 41f9f3497f
7 changed files with 249 additions and 87 deletions

View File

@@ -30,7 +30,7 @@ func migration() {
DB = DB.Set("gorm:table_options", "ENGINE=InnoDB")
}
DB.AutoMigrate(&User{}, &Setting{}, &Group{}, &Policy{}, &Folder{}, &File{}, &StoragePack{}, &Share{},
&Task{}, &Download{}, &Tag{}, &Webdav{}, &Order{})
&Task{}, &Download{}, &Tag{}, &Webdav{}, &Order{}, &Redeem{})
// 创建初始存储策略
addDefaultPolicy()

View File

@@ -27,7 +27,7 @@ const (
type Order struct {
gorm.Model
UserID uint // 创建者ID
OrderNo string // 商户自定义订单编号
OrderNo string `gorm:"index:order_number"` // 商户自定义订单编号
Type int // 订单类型
Method string // 支付类型
ProductID int64 // 商品ID

27
models/redeem.go Normal file
View File

@@ -0,0 +1,27 @@
package model
import "github.com/jinzhu/gorm"
// Redeem 兑换码
type Redeem struct {
gorm.Model
Type int // 订单类型
ProductID int64 // 商品ID
Num int // 商品数量
Code string `gorm:"size:64,index:redeem_code"` // 兑换码
Used bool // 是否已被使用
}
// GetAvailableRedeem 根据code查找可用兑换码
func GetAvailableRedeem(code string) (*Redeem, error) {
redeem := &Redeem{}
result := DB.Where("code = ? and used = ?", code, false).First(redeem)
return redeem, result.Error
}
// Use 设定为已使用状态
func (redeem *Redeem) Use() {
DB.Model(redeem).Updates(map[string]interface{}{
"used": true,
})
}