支付功能动态化扩展

This commit is contained in:
2026-03-18 13:07:06 +08:00
parent 99853b8514
commit 9d996acf5f
16 changed files with 1402 additions and 195 deletions

19
web/models/product_sku.go Normal file
View File

@@ -0,0 +1,19 @@
package models
import (
"platform/web/core"
"github.com/shopspring/decimal"
)
// ProductSku 产品SKU表
type ProductSku struct {
core.Model
ProductID int32 `json:"product_id" gorm:"column:product_id"` // 产品ID
Code string `json:"code" gorm:"column:code"` // SSKU 代码:格式为 key=value,key=value,...其中key:value 是 SKU 的属性,多个属性用逗号分隔
Name string `json:"name" gorm:"column:name"` // SKU 可读名称
Price decimal.Decimal `json:"price" gorm:"column:price"` // 定价
Discount float32 `json:"discount" gorm:"column:discount"` // 折扣0 - 1 的小数,表示 xx 折
Product *Product `json:"product,omitempty" gorm:"foreignKey:ProductID"`
}

View File

@@ -0,0 +1,21 @@
package models
import (
"time"
"github.com/shopspring/decimal"
)
// ProductSkuUser 用户产品SKU表
type ProductSkuUser struct {
ID int32 `json:"id" gorm:"column:id;primaryKey"`
UserID int32 `json:"user_id" gorm:"column:user_id"` // 用户ID
ProductSkuID int32 `json:"product_sku_id" gorm:"column:product_sku_id"` // 产品SKU ID
Price *decimal.Decimal `json:"price,omitempty" gorm:"column:price"` // 定价覆盖SKU定价
Discount *float32 `json:"discount,omitempty" gorm:"column:discount"` // 折扣覆盖SKU折扣
CreatedAt time.Time `json:"created_at" gorm:"column:created_at"`
UpdatedAt time.Time `json:"updated_at" gorm:"column:updated_at"`
User *User `json:"user,omitempty" gorm:"foreignKey:UserID"`
ProductSku *ProductSku `json:"product_sku,omitempty" gorm:"foreignKey:ProductSkuID"`
}

View File

@@ -32,3 +32,14 @@ const (
ResourceModeTime ResourceMode = 1 // 包时
ResourceModeQuota ResourceMode = 2 // 包量
)
func (m ResourceMode) Code() string {
switch m {
case ResourceModeTime:
return "time"
case ResourceModeQuota:
return "quota"
default:
return "unknown"
}
}