fusenapi/model/gmodel/fs_order_logic.go
2023-09-20 15:07:12 +08:00

159 lines
7.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package gmodel
import (
"fusenapi/constants"
"time"
)
// TODO: 使用model的属性做你想做的
type NewFsOrder struct {
Id int64 `gorm:"primary_key;default:0;auto_increment;" json:"id"` // 订单ID
UserId *int64 `gorm:"index;default:0;" json:"user_id"` // 用户ID
DeliveryMethod *int64 `gorm:"index;default:0;" json:"delivery_method"` // 物流类型
OrderSn *string `gorm:"index;default:'';" json:"order_sn"` //
OrderSource *string `gorm:"default:'';" json:"order_source"` //
Status *int64 `gorm:"index;default:0;" json:"status"` // 订单状态
PayStatus *int64 `gorm:"default:0;" json:"pay_status"` // 支付状态
Metadata *OrderDetail `gorm:"metadata,type:json" json:"metadata"` //
Ctime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"ctime"` //
Utime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"utime"` //
IsDel *int64 `gorm:"default:0;" json:"is_del"` // 是否删除0=否1=是
}
// 订单详情
type OrderDetail struct {
DeliveryAddress *OrderAddress `json:"delivery_address"` // 收货地址
OrderAmount OrderAmount `json:"order_amount"` // 订单金额
OrderInfo OrderInfo `json:"order_info"` // 订单信息
OrderProduct []OrderProduct `json:"order_product"` // 订单商品
PayStatus constants.OrderPayStatusCode `json:"pay_status"` // 支付状态
}
// 收货地址
type OrderAddress struct {
Address string `json:"address"` // 详细地址
Mobile string `json:"mobile"` // 手机
Name string `json:"name"` // 姓名
}
// 订单金额
type OrderAmount struct {
Deposit PayInfo `json:"deposit"` // 定金
RemainingBalance PayInfo `json:"remaining_balance"` // 尾款
Discount AmountInfo `json:"discount"` // 折扣
ShippingFee AmountInfo `json:"shipping_fee"` // 邮费
Tax AmountInfo `json:"tax"` // 税费
Subtotal AmountInfo `json:"subtotal"` // 商品总金额
Total AmountInfo `json:"total"` // 订单总金额
}
// 支付明细
type PayInfo struct {
Metadata map[string]interface{} `json:"metadata"` // 额外参数
PayAmount AmountInfo `json:"pay_amount"` // 金额明细
PayMethod string `json:"pay_method"` // 交易方式
PayTime time.Time `json:"pay_time"` // 支付时间
Status PayStatus `json:"status"` // 当前状态
StatusLink []PayStatus `json:"status_link"` // 状态链路
TradeNo string `json:"trade_no"` // 支付交易号
}
// 金额明细
type AmountInfo struct {
Change AmountCurrency `json:"change,omitempty"` // 变动金额
ChangeRemark string `json:"change_remark,omitempty"` // 变动备注
Current AmountCurrency `json:"current"` // 当前金额
Initiate AmountCurrency `json:"initiate"` // 初始金额
Metadata map[string]interface{} `json:"metadata"` // 额外明细
}
// 金额货币
type AmountCurrency struct {
ExchangeRate constants.ExchangeRateUnit `json:"exchange_rate"` // 换算汇率
CurrentCurrency string `json:"current_currency"` // 当前货币
CurrentAmount constants.AmountUnit `json:"current_amount"` // 当前金额
OriginalCurrency string `json:"original_currency"` // 原始货币
OriginalAmount constants.AmountUnit `json:"original_amount"` // 原始金额
}
// 支付状态
type PayStatus struct {
Metadata map[string]interface{} `json:"metadata"` // 额外参数
StatusCode int64 `json:"status_code"` // 状态编码
StatusTitle string `json:"status_title"` // 状态名称
}
// 订单信息
type OrderInfo struct {
Ctime time.Time `json:"ctime"` // 创建日期
DeliveryMethod int64 `json:"delivery_method"` // 物流类型
Metadata map[string]interface{} `json:"metadata"` // 额外参数
OrderSn string `json:"order_sn"` // 订单编号
Status OrderStatus `json:"status"` // 当前状态
StatusLink []OrderStatus `json:"status_link"` // 状态链路
Utime time.Time `json:"utime"` // 更新时间
}
// 订单状态--用户
type OrderStatus struct {
Children []*OrderStatus `json:"children"` // 子状态,管理人员的处理状态, 用户不可见
Ctime time.Time `json:"ctime"` // 创建时间
ExpectedTime time.Time `json:"expected_time"` // 预计时间
Metadata map[string]interface{} `json:"metadata"` // 额外参数
StatusCode constants.OrderStatusCode `json:"status_code"` // 状态编码
StatusTitle string `json:"status_title"` // 状态名称
Utime time.Time `json:"utime"` // 更新时间
}
// 订单商品
type OrderProduct struct {
TotalPrice AmountInfo `json:"amount"` // 商品总价
ExpectedDeliveryTime time.Time `json:"expected_delivery_time"` // 预计到货时间
PurchaseQuantity int64 `json:"purchase_quantity"` // 购买数量
ProductID int64 `json:"product_id"` // 商品ID
ProductName string `json:"product_name"` // 商品名称
ItemPrice AmountInfo `json:"product_price"` // 商品单价
ProductSnapshot map[string]interface{} `json:"product_snapshot"` // 商品快照
ShoppingCartSnapshot *FsShoppingCart `json:"shopping_cart_snapshot"` // 购物车快照
DiyInformation *DiyInformation `json:"diy_information"`
FittingInfo *FittingInfo `json:"fitting_info"`
ProductCover string `json:"product_cover"` // 商品封面
ProductCoverMetadata map[string]interface{} `json:"product_cover_metadata"` // 商品封面
ProductSn string `json:"product_sn"` // 商品编码
SizeInfo *SizeInfo `json:"size_info"`
StepNum []int `json:"step_num"` // 阶梯数量
}
type SizeInfo struct {
SizeID int64 `json:"size_id"`
Capacity string `json:"capacity"`
Title TitleInfo `json:"title"`
}
type TitleInfo struct {
CM string `json:"cm"`
Inch string `json:"inch"`
}
// 缩略图结构
type ProductCoverMetadata struct {
Height int64 `json:"height"` // 高度
ResourceID string `json:"resource_id"` // 资源ID
ResourceURL string `json:"resource_url"` // 资源链接
Width int64 `json:"width"` // 宽度
}
// DIY数据
type DiyInformation struct {
Address string `json:"address"` // 地址
Phone string `json:"phone"` // 电话
Qrcode string `json:"qrcode"` // 二维码
Slogan string `json:"slogan"` // slogan
Website string `json:"website"` // 网站
}
// 配件信息
type FittingInfo struct {
FittingID int64 `json:"fitting_id"` // 配件id
FittingName string `json:"fitting_name"` // 配件名称
}