Build and Publish Server / build (push) Successful in 4m30s
- 新增商业化模块:Stripe/Binance Pay 支付、邮箱登录、订单管理 - 新增数据模型:ReportProduct, ReportEntitlement, ReportSnapshot, PaymentEvent, EmailLoginCode - 新增 API:/api/commerce/checkout, /api/commerce/webhooks/*, /api/commerce/orders/* - 新增管理后台:订单列表、统计图表、统一 AdminHeader 组件 - 新增中间件测试:RateLimit, Auth, CORS 共 7 个测试用例 - 新增 AGENTS.md 项目代理指令文件 - 新增 REMINDER.md 商业化功能开发规范 - 修复 JWT 解析:添加 WithValidMethods 限制 HS256 - 修复 GetPayStatus:增加用户权限校验 - 更新 .gitignore 和 README.md
42 lines
2.0 KiB
Go
42 lines
2.0 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// Order 订单模型
|
|
type Order struct {
|
|
ID uint `gorm:"primaryKey" json:"id"`
|
|
OrderNo string `gorm:"uniqueIndex;size:32" json:"orderNo"` // 订单号
|
|
UserID uint `gorm:"index" json:"userId"`
|
|
Type string `gorm:"size:20" json:"type"` // wish:许愿 vip:会员
|
|
ProductID uint `json:"productId"`
|
|
ProductName string `gorm:"size:100" json:"productName"`
|
|
Amount int `json:"amount"` // 金额(分)
|
|
Currency string `gorm:"size:10;default:'CNY'" json:"currency"`
|
|
Provider string `gorm:"size:30;index" json:"provider"`
|
|
ProviderAmount string `gorm:"size:32" json:"providerAmount"`
|
|
ProviderOrderID string `gorm:"size:128;index" json:"providerOrderId"`
|
|
ProviderTransactionID string `gorm:"size:128;index" json:"providerTransactionId"`
|
|
CustomerEmail string `gorm:"size:254;index" json:"customerEmail"`
|
|
ReportID string `gorm:"size:64;index" json:"reportId"`
|
|
AccessCode *string `gorm:"size:20;uniqueIndex" json:"accessCode,omitempty"`
|
|
CheckoutURL string `gorm:"size:1024" json:"checkoutUrl"`
|
|
Status string `gorm:"size:20;default:'pending'" json:"status"` // pending:待支付 paid:已支付 cancelled:已取消 refunded:已退款
|
|
PayTime *time.Time `json:"payTime"`
|
|
ExpireTime *time.Time `json:"expireTime"`
|
|
Remark string `gorm:"size:255" json:"remark"`
|
|
CreatedAt time.Time `json:"createdAt"`
|
|
UpdatedAt time.Time `json:"updatedAt"`
|
|
}
|
|
|
|
// OrderItem 订单项
|
|
type OrderItem struct {
|
|
ID uint `gorm:"primaryKey" json:"id"`
|
|
OrderID uint `gorm:"index" json:"orderId"`
|
|
ProductID uint `json:"productId"`
|
|
Name string `gorm:"size:100" json:"name"`
|
|
Price int `json:"price"` // 单价(分)
|
|
Quantity int `json:"quantity"` // 数量
|
|
}
|