- Add ExportOrder RPC method to camel_oil API and service interfaces - Implement service logic to query orders and generate Excel file with order data - Include card number and password fields in order export - Create HTTP handler to stream Excel file with proper headers for download - Handle token status update on frequent error ban (oneDay case) - Fix order processing query to filter by status and pay status correctly - Add new error code for one-day ban in camel_oil_api and handle in client logic - Update order model and response to include card number and password - Remove redundant logging of SendCaptcha request data in camel_oil_api client - Add access control checks on ExportOrder endpoint for authorized users only
205 lines
12 KiB
Go
205 lines
12 KiB
Go
package v1
|
||
|
||
import (
|
||
"kami/api/commonApi"
|
||
"kami/internal/consts"
|
||
|
||
"github.com/gogf/gf/v2/frame/g"
|
||
"github.com/gogf/gf/v2/os/gtime"
|
||
)
|
||
|
||
// SubmitOrderReq 提交订单
|
||
type SubmitOrderReq struct {
|
||
g.Meta `path:"/jd-v2/order/submit" tags:"JD V2 Order" method:"post" summary:"提交订单"`
|
||
Amount float64 `json:"amount" v:"required|min:0.01#订单金额不能为空|订单金额必须大于0" description:"订单金额"`
|
||
MerchantOrderId string `json:"merchantOrderId" v:"required#商户订单号不能为空" description:"商户订单号"`
|
||
Attach string `json:"attach" description:"附加信息"`
|
||
}
|
||
|
||
type SubmitOrderRes struct {
|
||
OrderNo string `json:"orderNo" description:"系统订单号"`
|
||
AlipayUrl string `json:"alipayUrl" description:"支付宝支付链接"`
|
||
Amount float64 `json:"amount" description:"订单金额"`
|
||
CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"`
|
||
}
|
||
|
||
// ListOrderReq 订单列表查询
|
||
type ListOrderReq struct {
|
||
g.Meta `path:"/jd-v2/order/list" tags:"JD V2 Order" method:"get" summary:"订单列表"`
|
||
commonApi.CommonPageReq
|
||
MerchantOrderId string `json:"merchantOrderId" description:"商户订单号"`
|
||
OrderNo string `json:"orderNo" description:"系统订单号"`
|
||
AccountId int64 `json:"accountId" description:"账号ID"`
|
||
Status consts.CamelOilOrderStatus `json:"status" description:"订单状态"`
|
||
PayStatus consts.CamelOilPayStatus `json:"payStatus" description:"支付状态"`
|
||
DateRange []*gtime.Time `json:"dateRange" description:"时间范围"`
|
||
}
|
||
|
||
type OrderListItem struct {
|
||
OrderNo string `json:"orderNo" description:"系统订单号"`
|
||
MerchantOrderId string `json:"merchantOrderId" description:"商户订单号"`
|
||
AccountId int64 `json:"accountId" description:"账号ID"`
|
||
AccountName string `json:"accountName" description:"账号名称"`
|
||
Amount float64 `json:"amount" description:"订单金额"`
|
||
AlipayUrl string `json:"alipayUrl" description:"支付宝支付链接"`
|
||
CardNumber string `json:"cardNumber" description:"提取的卡号"`
|
||
CardPassword string `json:"cardPassword" description:"提取的卡密"`
|
||
Status consts.CamelOilOrderStatus `json:"status" description:"订单状态"`
|
||
PayStatus consts.CamelOilPayStatus `json:"payStatus" description:"支付状态"`
|
||
NotifyStatus consts.CamelOilNotifyStatus `json:"notifyStatus" description:"回调状态"`
|
||
NotifyCount int `json:"notifyCount" description:"回调次数"`
|
||
PaidAt *gtime.Time `json:"paidAt" description:"支付完成时间"`
|
||
LastCheckAt *gtime.Time `json:"lastCheckAt" description:"最后检测支付时间"`
|
||
FailureReason string `json:"failureReason" description:"失败原因"`
|
||
CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"`
|
||
UpdatedAt *gtime.Time `json:"updatedAt" description:"更新时间"`
|
||
}
|
||
|
||
type ListOrderRes struct {
|
||
commonApi.CommonPageRes[OrderListItem]
|
||
}
|
||
|
||
// OrderDetailReq 订单详情查询
|
||
type OrderDetailReq struct {
|
||
g.Meta `path:"/jd-v2/order/detail" tags:"JD V2 Order" method:"get" summary:"订单详情"`
|
||
OrderNo string `json:"orderNo" v:"required#订单号不能为空" description:"订单号"`
|
||
}
|
||
|
||
type OrderDetailRes struct {
|
||
OrderInfo struct {
|
||
OrderNo string `json:"orderNo" description:"系统订单号"`
|
||
MerchantOrderId string `json:"merchantOrderId" description:"商户订单号"`
|
||
AccountId int64 `json:"accountId" description:"账号ID"`
|
||
AccountName string `json:"accountName" description:"账号名称"`
|
||
Amount float64 `json:"amount" description:"订单金额"`
|
||
AlipayUrl string `json:"alipayUrl" description:"支付宝支付链接"`
|
||
Status consts.CamelOilOrderStatus `json:"status" description:"订单状态"`
|
||
PayStatus consts.CamelOilPayStatus `json:"payStatus" description:"支付状态"`
|
||
NotifyStatus consts.CamelOilNotifyStatus `json:"notifyStatus" description:"回调状态"`
|
||
NotifyCount int `json:"notifyCount" description:"回调次数"`
|
||
PaidAt *gtime.Time `json:"paidAt" description:"支付完成时间"`
|
||
LastCheckAt *gtime.Time `json:"lastCheckAt" description:"最后检测支付时间"`
|
||
Attach string `json:"attach" description:"附加信息"`
|
||
FailureReason string `json:"failureReason" description:"失败原因"`
|
||
CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"`
|
||
UpdatedAt *gtime.Time `json:"updatedAt" description:"更新时间"`
|
||
} `json:"orderInfo" description:"订单信息"`
|
||
|
||
AccountInfo struct {
|
||
AccountId int64 `json:"accountId" description:"账号ID"`
|
||
AccountName string `json:"accountName" description:"账号名称"`
|
||
Phone string `json:"phone" description:"手机号(脱敦)"`
|
||
Status consts.CamelOilAccountStatus `json:"status" description:"状态"`
|
||
LastUsedAt *gtime.Time `json:"lastUsedAt" description:"最后使用时间"`
|
||
} `json:"accountInfo" description:"账号信息"`
|
||
}
|
||
|
||
// OrderHistoryReq 订单历史记录查询
|
||
type OrderHistoryReq struct {
|
||
g.Meta `path:"/jd-v2/order/history" tags:"JD V2 Order" method:"get" summary:"订单历史记录"`
|
||
commonApi.CommonPageReq
|
||
OrderNo string `json:"orderNo" v:"required#订单号不能为空" description:"订单号"`
|
||
}
|
||
|
||
type OrderHistoryItem struct {
|
||
OrderNo string `json:"orderNo" description:"订单号"`
|
||
ChangeType consts.CamelOilOrderChangeType `json:"changeType" description:"变更类型"`
|
||
ChangeText string `json:"changeText" description:"变更类型文本"`
|
||
AccountId int64 `json:"accountId" description:"关联账号ID"`
|
||
AccountName string `json:"accountName" description:"账号名称"`
|
||
RawData string `json:"rawData" description:"原始响应数据"`
|
||
Remark string `json:"remark" description:"备注"`
|
||
CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"`
|
||
}
|
||
|
||
type OrderHistoryRes struct {
|
||
commonApi.CommonPageRes[OrderHistoryItem]
|
||
}
|
||
|
||
// AccountOrderListReq 查询账号绑定的历史订单
|
||
type AccountOrderListReq struct {
|
||
g.Meta `path:"/jd-v2/order/accountOrders" tags:"JD V2 Order" method:"get" summary:"账号历史订单"`
|
||
commonApi.CommonPageReq
|
||
AccountId int64 `json:"accountId" v:"required#账号ID不能为空" description:"账号ID"`
|
||
Status consts.CamelOilOrderStatus `json:"status" description:"订单状态筛选"`
|
||
PayStatus consts.CamelOilPayStatus `json:"payStatus" description:"支付状态筛选"`
|
||
DateRange []*gtime.Time `json:"dateRange" description:"时间范围"`
|
||
}
|
||
|
||
type AccountOrderListRes struct {
|
||
AccountInfo struct {
|
||
AccountId int64 `json:"accountId" description:"账号ID"`
|
||
AccountName string `json:"accountName" description:"账号名称"`
|
||
Phone string `json:"phone" description:"手机号(脱敦)"`
|
||
Status consts.CamelOilAccountStatus `json:"status" description:"状态"`
|
||
} `json:"accountInfo" description:"账号基本信息"`
|
||
|
||
OrderStats struct {
|
||
TotalOrders int `json:"totalOrders" description:"总订单数"`
|
||
PaidOrders int `json:"paidOrders" description:"已支付订单数"`
|
||
PendingOrders int `json:"pendingOrders" description:"待支付订单数"`
|
||
TimeoutOrders int `json:"timeoutOrders" description:"超时订单数"`
|
||
} `json:"orderStats" description:"订单统计"`
|
||
|
||
// OrderList commonApi.CommonPageRes[OrderListItem] `json:"orderList" description:"订单分页列表"`
|
||
}
|
||
|
||
// OrderCallbackReq 手动触发订单回调(管理接口)
|
||
type OrderCallbackReq struct {
|
||
g.Meta `path:"/jd-v2/order/callback" tags:"JD V2 Order" method:"post" summary:"手动回调"`
|
||
OrderNo string `json:"orderNo" v:"required#订单号不能为空" description:"订单号"`
|
||
}
|
||
|
||
type OrderCallbackRes struct {
|
||
Success bool `json:"success" description:"回调是否成功"`
|
||
Message string `json:"message" description:"回调结果消息"`
|
||
}
|
||
|
||
// ListPrefetchOrderReq 获取预拉取订单列表
|
||
type ListPrefetchOrderReq struct {
|
||
g.Meta `path:"/jd-v2/prefetch/orders" tags:"JD V2 Prefetch" method:"get" summary:"获取预拉取订单列表"`
|
||
commonApi.CommonPageReq
|
||
AccountId int64 `json:"accountId" description:"账号ID"`
|
||
AccountName string `json:"accountName" description:"账号名称"`
|
||
Amount float64 `json:"amount" description:"订单金额"`
|
||
PlatformOrderNo string `json:"platformOrderNo" description:"平台订单号"`
|
||
Status consts.CamelOilPrefetchOrderStatus `json:"status" description:"状态:1待匹配 2已匹配 3已过期 4已失效"`
|
||
DateRange []*gtime.Time `json:"dateRange" description:"时间范围"`
|
||
}
|
||
|
||
type PrefetchOrderListItem struct {
|
||
Id int64 `json:"id" description:"主键ID"`
|
||
AccountId int64 `json:"accountId" description:"拉取时使用的账号ID"`
|
||
AccountName string `json:"accountName" description:"账号名称"`
|
||
Amount float64 `json:"amount" description:"预拉取订单金额"`
|
||
PlatformOrderNo string `json:"platformOrderNo" description:"骆驼平台订单号"`
|
||
AlipayUrl string `json:"alipayUrl" description:"支付宝支付链接"`
|
||
Status consts.CamelOilPrefetchOrderStatus `json:"status" description:"预拉取订单状态:1待匹配 2已匹配 3已过期 4已失效"`
|
||
OrderNo string `json:"orderNo" description:"匹配后的订单号"`
|
||
MatchedAt *gtime.Time `json:"matchedAt" description:"匹配时间"`
|
||
ExpireAt *gtime.Time `json:"expireAt" description:"预拉取订单过期时间"`
|
||
FailureReason string `json:"failureReason" description:"失败原因"`
|
||
Remark string `json:"remark" description:"备注信息"`
|
||
CreatedAt *gtime.Time `json:"createdAt" description:"创建时间"`
|
||
UpdatedAt *gtime.Time `json:"updatedAt" description:"更新时间"`
|
||
}
|
||
|
||
type ListPrefetchOrderRes struct {
|
||
commonApi.CommonPageRes[PrefetchOrderListItem]
|
||
}
|
||
|
||
// ExportOrderReq 导出订单数据
|
||
type ExportOrderReq struct {
|
||
g.Meta `path:"/jd-v2/order/export" tags:"JD V2 Order" method:"get" summary:"导出订单数据"`
|
||
commonApi.CommonPageReq
|
||
MerchantOrderId string `json:"merchantOrderId" description:"商户订单号"`
|
||
OrderNo string `json:"orderNo" description:"系统订单号"`
|
||
AccountId int64 `json:"accountId" description:"账号ID"`
|
||
Status consts.CamelOilOrderStatus `json:"status" description:"订单状态"`
|
||
PayStatus consts.CamelOilPayStatus `json:"payStatus" description:"支付状态"`
|
||
DateRange []*gtime.Time `json:"dateRange" description:"时间范围"`
|
||
}
|
||
|
||
type ExportOrderRes struct {
|
||
}
|