Files
order/model/dto/order.go

295 lines
12 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 dto
import (
"time"
"github.com/gogf/gf/v2/frame/g"
)
// CreateOrderReq 创建订单请求
type CreateOrderReq struct {
g.Meta `path:"/create" method:"post" tags:"订单管理" summary:"创建订单" dc:"创建新订单"`
TenantID interface{} `json:"tenant_id" binding:"required"` // 租户ID
UserID int64 `json:"user_id" binding:"required"` // 用户ID
OrderType string `json:"order_type" binding:"required"` // 订单类型
Subject string `json:"subject" binding:"required"` // 订单标题
Description string `json:"description"` // 订单描述
OrderItems []OrderItemReq `json:"order_items" binding:"required"` // 订单商品
ShippingInfo ShippingInfoReq `json:"shipping_info"` // 收货信息
}
// OrderItemReq 创建订单商品项请求
type OrderItemReq struct {
AssetID string `json:"asset_id" binding:"required"` // 资产ID
AssetName string `json:"asset_name" binding:"required"` // 资产名称
AssetType string `json:"asset_type" binding:"required"` // 资产类型product-商品型service-服务型software-软件型
ImageURL string `json:"image_url"` // 资产图片
Stocks []OrderItemStockReq `json:"stocks" binding:"required"` // 库存项列表
}
// OrderItemStockReq 创建订单商品项库存明细请求
type OrderItemStockReq struct {
// 库存ID明细模式必填批次模式为空
StockID string `json:"stock_id,omitempty"` // 库存ID
// 批次信息(批次模式必填,明细模式为空)
BatchID string `json:"batch_id,omitempty"` // 批次ID
BatchNo string `json:"batch_no,omitempty"` // 批次号
// 数量
Quantity int `json:"quantity" binding:"required,min=1"` // 使用数量
// 价格信息
Price int64 `json:"price" binding:"required,min=1"` // 单价(分)
// 库存管理模式
StockMode int `json:"stock_mode" binding:"required"` // 库存管理模式1-明细模式2-批次模式
// 库存项属性
StockAttrs map[string]interface{} `json:"stock_attrs"` // 库存项属性(动态字段)
}
// ShippingInfoReq 收货信息请求
type ShippingInfoReq struct {
Consignee string `json:"consignee" binding:"required"` // 收货人
Phone string `json:"phone" binding:"required"` // 手机号
Province string `json:"province" binding:"required"` // 省份
City string `json:"city" binding:"required"` // 城市
District string `json:"district" binding:"required"` // 区县
Address string `json:"address" binding:"required"` // 详细地址
PostalCode string `json:"postal_code"` // 邮编
}
// CreateOrderResp 创建订单响应
type CreateOrderResp struct {
OrderNo string `json:"order_no"` // 订单号
TotalAmount int64 `json:"total_amount"` // 订单总金额
PayAmount int64 `json:"pay_amount"` // 实付金额
ExpiredAt string `json:"expired_at"` // 过期时间
}
// PayOrderReq 支付订单请求
type PayOrderReq struct {
g.Meta `path:"/pay" method:"post" tags:"订单管理" summary:"支付订单" dc:"发起订单支付"`
TenantID string `json:"tenant_id" binding:"required"` // 租户ID
OrderNo string `json:"order_no" binding:"required"` // 订单号
PayMethod string `json:"pay_method" binding:"required"` // 支付方式wechat/alipay
PayType string `json:"pay_type" binding:"required"` // 支付类型native/jsapi/app/h5
ClientIP string `json:"client_ip"` // 客户端IP
OpenID string `json:"openid"` // 用户OpenIDJSAPI支付
AuthCode string `json:"auth_code"` // 授权码(付款码支付)
ReturnURL string `json:"return_url"` // 支付完成跳转URL
}
// PayOrderResp 支付订单响应
type PayOrderResp struct {
OrderNo string `json:"order_no"` // 订单号
QRCode string `json:"qrcode"` // 支付二维码Native支付
PayURL string `json:"pay_url"` // 支付链接H5支付
PrepayID string `json:"prepay_id"` // 预支付ID微信
JSAPIParams string `json:"jsapi_params"` // JSAPI参数微信
APPParams string `json:"app_params"` // APP参数
}
// QueryOrderReq 查询订单请求
type QueryOrderReq struct {
g.Meta `path:"/query" method:"get" tags:"订单管理" summary:"查询订单详情" dc:"根据订单号查询订单详情"`
TenantID string `json:"tenant_id" binding:"required"` // 租户ID
OrderNo string `json:"order_no" binding:"required"` // 订单号
}
// QueryOrderResp 查询订单响应
type QueryOrderResp struct {
Order OrderDetail `json:"order"` // 订单详情
}
// OrderDetail 订单详情
type OrderDetail struct {
ID string `json:"id"` // 订单ID
TenantID interface{} `json:"tenant_id"` // 租户ID
OrderNo string `json:"order_no"` // 订单号
UserID int64 `json:"user_id"` // 用户ID
TotalAmount int64 `json:"total_amount"` // 订单总金额
PayAmount int64 `json:"pay_amount"` // 实付金额
Status string `json:"status"` // 订单状态
PayMethod string `json:"pay_method"` // 支付方式
PayStatus string `json:"pay_status"` // 支付状态
OrderType string `json:"order_type"` // 订单类型
Subject string `json:"subject"` // 订单标题
Description string `json:"description"` // 订单描述
OrderItems []OrderItem `json:"order_items"` // 订单商品
ShippingInfo ShippingInfo `json:"shipping_info"` // 收货信息
PayInfo PayInfo `json:"pay_info"` // 支付信息
CreatedAt time.Time `json:"created_at"` // 创建时间
UpdatedAt time.Time `json:"updated_at"` // 更新时间
PaidAt *time.Time `json:"paid_at"` // 支付时间
ExpiredAt *time.Time `json:"expired_at"` // 过期时间
}
// OrderItem 订单商品项(响应)
type OrderItem struct {
AssetID string `json:"asset_id"` // 资产ID
AssetName string `json:"asset_name"` // 资产名称
AssetType string `json:"asset_type"` // 资产类型product-商品型service-服务型software-软件型
ImageURL string `json:"image_url"` // 资产图片
Quantity int `json:"quantity"` // 总数量
TotalPrice int64 `json:"total_price"` // 小计(分)
Stocks []OrderItemStock `json:"stocks"` // 库存项列表
}
// OrderItemStock 订单商品项库存明细(响应)
type OrderItemStock struct {
// 库存ID明细模式
StockID string `json:"stock_id,omitempty"` // 库存ID
// 批次信息(批次模式)
BatchID string `json:"batch_id,omitempty"` // 批次ID
BatchNo string `json:"batch_no,omitempty"` // 批次号
// 数量
Quantity int `json:"quantity"` // 使用数量
// 价格信息
Price int64 `json:"price"` // 单价(分)
// 库存管理模式
StockMode int `json:"stock_mode"` // 库存管理模式1-明细模式2-批次模式
// 库存项属性
StockAttrs map[string]interface{} `json:"stock_attrs"` // 库存项属性(动态字段)
}
// ShippingInfo 收货信息(响应)
type ShippingInfo struct {
Consignee string `json:"consignee"` // 收货人
Phone string `json:"phone"` // 手机号
Province string `json:"province"` // 省份
City string `json:"city"` // 城市
District string `json:"district"` // 区县
Address string `json:"address"` // 详细地址
PostalCode string `json:"postal_code"` // 邮编
}
// PayInfo 支付信息(响应)
type PayInfo struct {
TransactionID string `json:"transaction_id"` // 支付平台交易号
OutTradeNo string `json:"out_trade_no"` // 商户订单号
PrepayID string `json:"prepay_id"` // 预支付ID
QRCode string `json:"qrcode"` // 支付二维码
PayURL string `json:"pay_url"` // 支付链接
}
// CancelOrderReq 取消订单请求
type CancelOrderReq struct {
g.Meta `path:"/cancel" method:"post" tags:"订单管理" summary:"取消订单" dc:"取消指定订单"`
TenantID string `json:"tenant_id" binding:"required"` // 租户ID
OrderNo string `json:"order_no" binding:"required"` // 订单号
Reason string `json:"reason"` // 取消原因
}
// CancelOrderResp 取消订单响应
type CancelOrderResp struct {
OrderNo string `json:"order_no"` // 订单号
Status string `json:"status"` // 新状态
}
// RefundOrderReq 退款请求
type RefundOrderReq struct {
g.Meta `path:"/refund" method:"post" tags:"订单管理" summary:"订单退款" dc:"发起订单退款"`
TenantID string `json:"tenant_id" binding:"required"` // 租户ID
OrderNo string `json:"order_no" binding:"required"` // 订单号
RefundAmount int64 `json:"refund_amount" binding:"required"` // 退款金额(分)
Reason string `json:"reason"` // 退款原因
}
// RefundOrderResp 退款响应
type RefundOrderResp struct {
RefundNo string `json:"refund_no"` // 退款单号
RefundID string `json:"refund_id"` // 退款ID
RefundAmount int64 `json:"refund_amount"` // 退款金额
}
// ListOrdersReq 订单列表请求
type ListOrdersReq struct {
g.Meta `path:"/orders" method:"get" tags:"订单管理" summary:"订单列表" dc:"分页查询订单列表"`
TenantID string `json:"tenant_id" binding:"required"` // 租户ID
UserID string `json:"user_id"` // 用户ID可选
Status string `json:"status"` // 订单状态(可选)
Page int `json:"page"` // 页码
PageSize int `json:"page_size"` // 每页大小
}
// ListOrdersResp 订单列表响应
type ListOrdersResp struct {
Orders []OrderSummary `json:"orders"` // 订单列表
Total int64 `json:"total"` // 总记录数
Page int `json:"page"` // 当前页码
PageSize int `json:"page_size"` // 每页大小
}
// OrderSummary 订单摘要(用于列表)
type OrderSummary struct {
ID string `json:"id"` // 订单ID
OrderNo string `json:"order_no"` // 订单号
TotalAmount int64 `json:"total_amount"` // 订单总金额
PayAmount int64 `json:"pay_amount"` // 实付金额
Status string `json:"status"` // 订单状态
Subject string `json:"subject"` // 订单标题
CreatedAt time.Time `json:"created_at"` // 创建时间
PaidAt *time.Time `json:"paid_at"` // 支付时间
}
// PaymentNotifyReq 支付回调请求
type PaymentNotifyReq struct {
g.Meta `path:"/paymentNotify" method:"post" tags:"支付管理" summary:"支付回调" dc:"处理支付平台回调通知"`
TenantID string `json:"tenant_id"` // 租户ID
OrderNo string `json:"order_no"` // 订单号
PayMethod string `json:"pay_method"` // 支付方式
Status string `json:"status"` // 支付状态
TransactionID string `json:"transaction_id"` // 交易号
TradeNo string `json:"trade_no"` // 交易号
Sign string `json:"sign"` // 签名
}
// PaymentNotifyResp 支付回调响应
type PaymentNotifyResp struct {
Success bool `json:"success"` // 是否成功
}
// RefundNotifyReq 退款回调请求
type RefundNotifyReq struct {
g.Meta `path:"/refundNotify" method:"post" tags:"退款管理" summary:"退款回调" dc:"处理退款平台回调通知"`
TenantID string `json:"tenant_id"` // 租户ID
RefundNo string `json:"refund_no"` // 退款单号
Status string `json:"status"` // 退款状态
RefundID string `json:"refund_id"` // 退款ID
Sign string `json:"sign"` // 签名
}
// RefundNotifyResp 退款回调响应
type RefundNotifyResp struct {
Success bool `json:"success"` // 是否成功
}
// CommonResp 通用响应
type CommonResp struct {
Success bool `json:"success"` // 是否成功
Message string `json:"message"` // 消息
}