Files
order/model/dto/order.go

275 lines
11 KiB
Go
Raw Normal View History

2025-12-10 09:02:41 +08:00
package dto
import (
"time"
2025-12-12 18:16:28 +08:00
"github.com/gogf/gf/v2/frame/g"
2025-12-10 09:02:41 +08:00
)
// CreateOrderReq 创建订单请求
type CreateOrderReq struct {
2025-12-12 18:16:28 +08:00
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
2025-12-10 09:02:41 +08:00
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 {
2025-12-12 11:03:05 +08:00
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 {
StockID string `json:"stock_id" binding:"required"` // 库存ID
Price int64 `json:"price" binding:"required,min=1"` // 单价(分)
StockAttrs map[string]interface{} `json:"stock_attrs"` // 库存项属性(动态字段)
2025-12-10 09:02:41 +08:00
}
// 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 {
2025-12-12 18:16:28 +08:00
g.Meta `path:"/pay" method:"post" tags:"订单管理" summary:"支付订单" dc:"发起订单支付"`
2025-12-10 09:02:41 +08:00
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 {
2025-12-12 18:16:28 +08:00
g.Meta `path:"/query" method:"get" tags:"订单管理" summary:"查询订单详情" dc:"根据订单号查询订单详情"`
2025-12-10 09:02:41 +08:00
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
2025-12-12 18:16:28 +08:00
TenantID interface{} `json:"tenant_id"` // 租户ID
2025-12-10 09:02:41 +08:00
OrderNo string `json:"order_no"` // 订单号
2025-12-12 16:20:47 +08:00
UserID int64 `json:"user_id"` // 用户ID
2025-12-10 09:02:41 +08:00
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 {
2025-12-12 11:03:05 +08:00
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 {
StockID string `json:"stock_id"` // 库存ID
Price int64 `json:"price"` // 单价(分)
StockAttrs map[string]interface{} `json:"stock_attrs"` // 库存项属性(动态字段)
2025-12-10 09:02:41 +08:00
}
// 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 {
2025-12-12 18:16:28 +08:00
g.Meta `path:"/cancel" method:"post" tags:"订单管理" summary:"取消订单" dc:"取消指定订单"`
2025-12-10 09:02:41 +08:00
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 {
2025-12-12 18:16:28 +08:00
g.Meta `path:"/refund" method:"post" tags:"订单管理" summary:"订单退款" dc:"发起订单退款"`
2025-12-10 09:02:41 +08:00
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 {
2025-12-12 18:16:28 +08:00
g.Meta `path:"/orders" method:"get" tags:"订单管理" summary:"订单列表" dc:"分页查询订单列表"`
2025-12-10 09:02:41 +08:00
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"` // 支付时间
}
2025-12-10 13:51:09 +08:00
// PaymentNotifyReq 支付回调请求
type PaymentNotifyReq struct {
2025-12-12 18:16:28 +08:00
g.Meta `path:"/paymentNotify" method:"post" tags:"支付管理" summary:"支付回调" dc:"处理支付平台回调通知"`
2025-12-10 13:51:09 +08:00
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 {
2025-12-12 18:16:28 +08:00
g.Meta `path:"/refundNotify" method:"post" tags:"退款管理" summary:"退款回调" dc:"处理退款平台回调通知"`
2025-12-10 13:51:09 +08:00
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"` // 是否成功
}
2025-12-12 18:16:28 +08:00
// CommonResp 通用响应
2025-12-10 13:51:09 +08:00
2025-12-12 18:16:28 +08:00
type CommonResp struct {
Success bool `json:"success"` // 是否成功
Message string `json:"message"` // 消息
2025-12-10 13:51:09 +08:00
}