- 新增用户订单号字段以区分内部订单号 - 修改订单表结构添加 user_order_id 字段及索引 - 更新 CreateOrder 接口支持用户订单号参数-重构 CreateOrder 和 GetPaymentUrl 方法返回统一结果对象 - 新增模型定义用于封装订单创建与支付结果 - 调整相关逻辑方法签名与调用方式适配新结构- 优化订单创建流程增加内部订单号生成逻辑 - 完善订单查询逻辑确保正确关联用户订单号- 更新控制器层对接新版服务接口- 升级 Cookie 状态及订单状态管理枚举类型使用
192 lines
9.8 KiB
Go
192 lines
9.8 KiB
Go
package v1
|
||
|
||
import (
|
||
"kami/internal/consts"
|
||
|
||
"github.com/gogf/gf/v2/frame/g"
|
||
)
|
||
|
||
// ====================================================================================
|
||
// Order Processing API
|
||
// ====================================================================================
|
||
|
||
type JdCookieOrderApi struct {
|
||
CreateOrderReq *CreateOrderReq `path:"/jd-cookie/order/create" method:"post" summary:"Create Order" tags:"JD Order Management"`
|
||
GetPaymentUrlReq *GetPaymentUrlReq `path:"/jd-cookie/order/payment-url" method:"post" summary:"Get Payment URL" tags:"JD Order Management"`
|
||
GetOrderStatusReq *GetOrderStatusReq `path:"/jd-cookie/order/status" method:"get" summary:"Query Order Status" tags:"JD Order Management"`
|
||
GetOrderReq *GetOrderReq `path:"/jd-cookie/order/get" method:"get" summary:"Get Single Order" tags:"JD Order Management"`
|
||
GetJdOrderReq *GetJdOrderReq `path:"/jd-cookie/order/jd-order" method:"get" summary:"Get Single JD Order" tags:"JD Order Management"`
|
||
ListOrderReq *ListOrderReq `path:"/jd-cookie/order/list" method:"get" summary:"Order List Query" tags:"JD Order Management"`
|
||
ListJdOrderReq *ListJdOrderReq `path:"/jd-cookie/order/jd-list" method:"get" summary:"JD Order List Query" tags:"JD Order Management"`
|
||
CheckJdOrderPaymentReq *CheckJdOrderPaymentReq `path:"/jd-cookie/order/jd-payment-status" method:"post" summary:"Check JD Order Payment Status" tags:"JD Order Management"`
|
||
GetJdOrderHistoryReq *GetJdOrderHistoryReq `path:"/jd-cookie/order/jd-order-history" method:"get" summary:"Get JD Order History" tags:"JD Order Management"`
|
||
}
|
||
|
||
// ====================================================================================
|
||
// Order Processing Request/Response Structures
|
||
// ====================================================================================
|
||
|
||
// CreateOrderReq Create Order Request
|
||
type CreateOrderReq struct {
|
||
g.Meta `path:"/jd-cookie/order/create" method:"post" summary:"Create Order" tags:"JD Order Management"`
|
||
UserOrderId string `json:"userOrderId" v:"required#用户订单号不能为空" dc:"用户订单号"`
|
||
Amount float64 `json:"amount" v:"required|min:0.01#订单金额不能为空|订单金额必须大于0" dc:"订单金额"`
|
||
Category consts.RedeemOrderCardCategory `json:"category" v:"required#商品品类不能为空" dc:"商品品类"`
|
||
}
|
||
|
||
type CreateOrderRes struct {
|
||
g.Meta `mime:"application/json"`
|
||
WxPayUrl string `json:"wxPayUrl" dc:"微信支付链接"`
|
||
JdOrderId string `json:"jdOrderId" dc:"京东订单号"`
|
||
OrderId string `json:"orderId" dc:"内部订单号"`
|
||
}
|
||
|
||
// GetPaymentUrlReq Get Payment URL Request
|
||
type GetPaymentUrlReq struct {
|
||
g.Meta `path:"/jd-cookie/order/payment-url" method:"post" summary:"Get Payment URL" tags:"JD Order Management"`
|
||
OrderId string `json:"orderId" v:"required#订单号不能为空" dc:"订单号"`
|
||
}
|
||
|
||
type GetPaymentUrlRes struct {
|
||
g.Meta `mime:"application/json"`
|
||
WxPayUrl string `json:"wxPayUrl" dc:"微信支付链接"`
|
||
JdOrderId string `json:"jdOrderId" dc:"京东订单号"`
|
||
OrderId string `json:"orderId" dc:"内部订单号"`
|
||
}
|
||
|
||
// GetOrderStatusReq Query Order Status Request
|
||
type GetOrderStatusReq struct {
|
||
g.Meta `path:"/jd-cookie/order/status" method:"get" summary:"Query Order Status" tags:"JD Order Management"`
|
||
OrderId string `json:"orderId" v:"required#订单号不能为空" dc:"订单号"`
|
||
}
|
||
|
||
type GetOrderStatusRes struct {
|
||
g.Meta `mime:"application/json"`
|
||
Order *OrderInfo `json:"order" dc:"订单信息"`
|
||
}
|
||
|
||
// GetOrderReq Get Single Order Request
|
||
type GetOrderReq struct {
|
||
g.Meta `path:"/jd-cookie/order/get" method:"get" summary:"Get Single Order" tags:"JD Order Management"`
|
||
OrderId string `json:"orderId" v:"required#订单号不能为空" dc:"订单号"`
|
||
}
|
||
|
||
type GetOrderRes struct {
|
||
g.Meta `mime:"application/json"`
|
||
Order *OrderInfo `json:"order" dc:"订单详情"`
|
||
}
|
||
|
||
// GetJdOrderReq Get Single JD Order Request
|
||
type GetJdOrderReq struct {
|
||
g.Meta `path:"/jd-cookie/order/jd-order" method:"get" summary:"Get Single JD Order" tags:"JD Order Management"`
|
||
JdOrderId string `json:"jdOrderId" v:"required#京东订单号不能为空" dc:"京东订单号"`
|
||
}
|
||
|
||
type GetJdOrderRes struct {
|
||
g.Meta `mime:"application/json"`
|
||
Order *JdOrderInfo `json:"order" dc:"京东订单详情"`
|
||
}
|
||
|
||
type OrderInfo struct {
|
||
OrderId string `json:"orderId" dc:"订单号"`
|
||
Amount float64 `json:"amount" dc:"订单金额"`
|
||
Category string `json:"category" dc:"商品品类"`
|
||
JdOrderId string `json:"jdOrderId" dc:"关联的京东订单号"`
|
||
Status consts.OrderStatus `json:"status" dc:"状态:1待支付 2已支付 3已过期 4已取消"`
|
||
WxPayUrl string `json:"wxPayUrl" dc:"当前有效的微信支付链接"`
|
||
LastRequest string `json:"lastRequestAt" dc:"最后请求时间"`
|
||
CreatedAt string `json:"createdAt" dc:"创建时间"`
|
||
}
|
||
|
||
type JdOrderInfo struct {
|
||
Id int64 `json:"id" dc:"主键ID"`
|
||
JdOrderId string `json:"jdOrderId" dc:"京东订单号"`
|
||
PayId string `json:"payId" dc:"支付ID"`
|
||
Amount float64 `json:"amount" dc:"订单金额"`
|
||
Category string `json:"category" dc:"商品品类"`
|
||
CookieId string `json:"cookieId" dc:"使用的Cookie ID"`
|
||
Status consts.JdOrderStatus `json:"status" dc:"状态:1待支付 2已支付 3已过期 4已取消"`
|
||
WxPayUrl string `json:"wxPayUrl" dc:"微信支付链接"`
|
||
WxPayExpireAt *string `json:"wxPayExpireAt" dc:"微信支付链接过期时间"`
|
||
OrderExpireAt *string `json:"orderExpireAt" dc:"订单过期时间(默认24小时)"`
|
||
CurrentOrderId int64 `json:"currentOrderId" dc:"当前关联的订单ID"`
|
||
PaidAt *string `json:"paidAt" dc:"支付完成时间"`
|
||
CardNo string `json:"cardNo" dc:"卡号"`
|
||
CardPassword string `json:"cardPassword" dc:"卡密"`
|
||
CardExtractedAt *string `json:"cardExtractedAt" dc:"卡密提取时间"`
|
||
CreatedAt *string `json:"createdAt" dc:"创建时间"`
|
||
UpdatedAt *string `json:"updatedAt" dc:"更新时间"`
|
||
DeletedAt *string `json:"deletedAt" dc:"删除时间"`
|
||
}
|
||
|
||
// ListOrderReq Order List Query Request
|
||
type ListOrderReq struct {
|
||
g.Meta `path:"/jd-cookie/order/list" method:"get" summary:"Order List Query" tags:"JD Order Management"`
|
||
Page int `json:"page" d:"1" dc:"页码"`
|
||
Size int `json:"size" d:"20" dc:"每页大小"`
|
||
Status consts.OrderStatus `json:"status" dc:"状态筛选"`
|
||
StartTime string `json:"startTime" dc:"开始时间"`
|
||
EndTime string `json:"endTime" dc:"结束时间"`
|
||
}
|
||
|
||
type ListOrderRes struct {
|
||
g.Meta `mime:"application/json"`
|
||
List []*OrderInfo `json:"list" dc:"订单列表"`
|
||
Total int `json:"total" dc:"总数"`
|
||
}
|
||
|
||
// ListJdOrderReq JD Order List Query Request
|
||
type ListJdOrderReq struct {
|
||
g.Meta `path:"/jd-cookie/order/jd-list" method:"get" summary:"JD Order List Query" tags:"JD Order Management"`
|
||
Page int `json:"page" d:"1" dc:"页码"`
|
||
Size int `json:"size" d:"20" dc:"每页大小"`
|
||
Status consts.JdOrderStatus `json:"status" dc:"状态筛选"`
|
||
StartTime string `json:"startTime" dc:"开始时间"`
|
||
EndTime string `json:"endTime" dc:"结束时间"`
|
||
OrderId string `json:"orderId" dc:"关联的内部订单号筛选"`
|
||
}
|
||
|
||
type ListJdOrderRes struct {
|
||
g.Meta `mime:"application/json"`
|
||
List []*JdOrderInfo `json:"list" dc:"京东订单列表"`
|
||
Total int `json:"total" dc:"总数"`
|
||
}
|
||
|
||
// CheckJdOrderPaymentReq Check JD Order Payment Status Request
|
||
type CheckJdOrderPaymentReq struct {
|
||
g.Meta `path:"/jd-cookie/order/jd-payment-status" method:"post" summary:"Check JD Order Payment Status" tags:"JD Order Management"`
|
||
JdOrderId string `json:"jd_order_id" v:"required#京东订单号不能为空" dc:"京东订单号"`
|
||
}
|
||
|
||
type CheckJdOrderPaymentRes struct {
|
||
g.Meta `mime:"application/json"`
|
||
JdOrderId string `json:"jd_order_id" dc:"京东订单号"`
|
||
IsPaid bool `json:"is_paid" dc:"是否已支付"`
|
||
PaymentStatus consts.JdOrderStatus `json:"payment_status" dc:"支付状态:1待支付 2已支付 3已过期 4已取消"`
|
||
Message string `json:"message" dc:"状态描述"`
|
||
CanReuse bool `json:"can_reuse" dc:"是否可以复用"`
|
||
}
|
||
|
||
// GetJdOrderHistoryReq Get JD Order History Request
|
||
type GetJdOrderHistoryReq struct {
|
||
g.Meta `path:"/jd-cookie/order/jd-order-history" method:"get" summary:"Get JD Order History" tags:"JD Order Management"`
|
||
OrderId string `json:"orderId" v:"required#订单号不能为空" dc:"订单号"`
|
||
Page int `json:"page" d:"1" dc:"页码"`
|
||
Size int `json:"size" d:"20" dc:"每页大小"`
|
||
}
|
||
|
||
type GetJdOrderHistoryRes struct {
|
||
g.Meta `mime:"application/json"`
|
||
List []*JdOrderHistoryInfo `json:"list" dc:"京东订单历史列表"`
|
||
Total int `json:"total" dc:"总数"`
|
||
}
|
||
|
||
type JdOrderHistoryInfo struct {
|
||
HistoryUuid string `json:"historyUuid" dc:"历史记录唯一标识"`
|
||
JdOrderId string `json:"jdOrderId" dc:"京东订单号"`
|
||
ChangeType consts.JdOrderChangeType `json:"changeType" dc:"变更类型:create,bind,unbind,pay,expire,invalid,replace"`
|
||
OrderId string `json:"orderId" dc:"关联的订单号"`
|
||
WxPayUrl string `json:"wxPayUrl" dc:"微信支付链接"`
|
||
CreatedAt string `json:"createdAt" dc:"创建时间"`
|
||
}
|