Files
order/model/entity/order_base.go

63 lines
3.3 KiB
Go
Raw Normal View History

2025-12-10 09:02:41 +08:00
package entity
import (
"time"
2025-12-12 16:20:47 +08:00
"gitee.com/red-future---jilin-g/common/do"
2025-12-10 09:02:41 +08:00
)
// OrderBase 订单基础信息
// 所有订单状态共有的字段
// 按状态拆分的订单表会继承这个基础结构
// 每个状态对应一个独立的MongoDB集合
// 例如orders_pending, orders_paid, orders_shipped, orders_completed, orders_cancelled
type OrderBase struct {
2025-12-12 16:20:47 +08:00
do.MongoBaseDO `bson:",inline"`
OrderNo string `bson:"order_no" json:"order_no"` // 订单号
UserID int64 `bson:"user_id" json:"user_id"` // 用户ID
TotalAmount int64 `bson:"total_amount" json:"total_amount"` // 订单总金额(分)
PayAmount int64 `bson:"pay_amount" json:"pay_amount"` // 实付金额(分)
OrderType string `bson:"order_type" json:"order_type"` // 订单类型normal-普通订单
Subject string `bson:"subject" json:"subject"` // 订单标题
Description string `bson:"description" json:"description"` // 订单描述
OrderItems []OrderItem `bson:"order_items" json:"order_items"` // 订单商品项
ExpiredAt *time.Time `bson:"expired_at,omitempty" json:"expired_at"` // 过期时间
2025-12-10 09:02:41 +08:00
}
// OrderItem 订单商品项
// 所有订单状态共有的商品信息
// 按状态拆分的订单表会包含这个结构
type OrderItem struct {
2025-12-12 11:03:05 +08:00
AssetID string `bson:"asset_id" json:"asset_id"` // 资产ID
AssetName string `bson:"asset_name" json:"asset_name"` // 资产名称
AssetType string `bson:"asset_type" json:"asset_type"` // 资产类型product-商品型service-服务型software-软件型
ImageURL string `bson:"image_url,omitempty" json:"image_url"` // 资产图片
Quantity int `bson:"quantity" json:"quantity"` // 总数量
TotalPrice int64 `bson:"total_price" json:"total_price"` // 小计(分)
Stocks []OrderItemStock `bson:"stocks" json:"stocks"` // 库存项列表
}
// OrderItemStock 订单商品项库存明细
// 用于追溯具体使用了哪些库存项,一个库存项只会有一个实例
type OrderItemStock struct {
StockID string `bson:"stock_id" json:"stock_id"` // 库存ID
Price int64 `bson:"price" json:"price"` // 该库存项的单价(分)
StockAttrs map[string]interface{} `bson:"stock_attrs,omitempty" json:"stock_attrs"` // 库存项属性(动态字段,存储该库存项的具体规格属性)
2025-12-10 09:02:41 +08:00
}
// ShippingInfo 收货信息
// 所有订单状态共有的收货信息
// 按状态拆分的订单表会包含这个结构
type ShippingInfo struct {
Consignee string `bson:"consignee" json:"consignee"` // 收货人
Phone string `bson:"phone" json:"phone"` // 手机号
Province string `bson:"province" json:"province"` // 省份
City string `bson:"city" json:"city"` // 城市
District string `bson:"district" json:"district"` // 区县
Address string `bson:"address" json:"address"` // 详细地址
PostalCode string `bson:"postal_code,omitempty" json:"postal_code"` // 邮编
}