提交 508f6397 authored 作者: zhanglibo's avatar zhanglibo

京东订单

上级 5628fbca
package jingdong
import (
"context"
"github.com/gogf/gf/encoding/gjson"
"github.com/gogf/gf/frame/g"
)
type deliveryJD struct {
}
var Delivery = deliveryJD{}
//DeliveryDetailRes 物流轨迹
type DeliveryDetailRes struct {
*CommonRes
Result struct {
OrderTrack []struct {
Content string `json:"content"` //操作内容明细
MsgTime string `json:"msgTime"` //操作时间。日期格式为“yyyy-MM-dd hh:mm:ss”
Operator string `json:"operator"` //操作员名称
} `json:"orderTrack"`
WaybillCode []struct {
OrderID string `json:"orderId"` //订单号
ParentID string `json:"parentId"` //父订单号。 此字段为0 未拆单
Carrier string `json:"carrier"` //承运商
DeliveryOrderID string `json:"deliveryOrderId"` //运单号
} `json:"waybillCode"`
JdOrderID int `json:"jdOrderId"`
} `json:"result"`
}
// Detail 物流信息
func (*deliveryJD) Detail(ctx context.Context, OrderID string) (res *DeliveryDetailRes, err error) {
method := "order/orderTrack"
param := g.Map{
"jdOrderId": OrderID,
"waybillCode": "1",
}
result, err := server.requestApi(ctx, method, param)
if err != nil {
return
}
err = gjson.New(result).Scan(&res)
return
}
...@@ -12,33 +12,14 @@ type orderJD struct { ...@@ -12,33 +12,14 @@ type orderJD struct {
//Order 订单 //Order 订单
var Order = orderJD{} var Order = orderJD{}
//GetDeliveryRes 物流轨迹
type GetDeliveryRes struct {
*CommonRes
Result struct {
OrderTrack []struct {
Content string `json:"content"` //操作内容明细
MsgTime string `json:"msgTime"` //操作时间。日期格式为“yyyy-MM-dd hh:mm:ss”
Operator string `json:"operator"` //操作员名称
} `json:"orderTrack"`
WaybillCode []struct {
OrderID string `json:"orderId"` //订单号
ParentID string `json:"parentId"` //父订单号。 此字段为0 未拆单
Carrier string `json:"carrier"` //承运商
DeliveryOrderID string `json:"deliveryOrderId"` //运单号
} `json:"waybillCode"`
JdOrderID int `json:"jdOrderId"`
} `json:"result"`
}
//PriceSnap 商品价格 //PriceSnap 商品价格
type PriceSnap struct { type PriceSnap struct {
SkuID int `json:"skuId"` //商品编号 SkuID int `json:"skuId"` //商品编号
Price float64 `json:"price"` //商品价格 格式:21.30 Price float64 `json:"price"` //商品价格 格式:21.30
} }
//PlaceOrderReq 下单 //OrderCreateReq 下单
type PlaceOrderReq struct { type OrderCreateReq struct {
OrderSn string //订单单号 OrderSn string //订单单号
SkuNums []*SkuNums SkuNums []*SkuNums
Consignee string //收货人姓名,最多20个字符 Consignee string //收货人姓名,最多20个字符
...@@ -57,8 +38,8 @@ type PlaceOrderAddress struct { ...@@ -57,8 +38,8 @@ type PlaceOrderAddress struct {
Desc string //收货人详细地址,最多100个字符 Desc string //收货人详细地址,最多100个字符
} }
//PlaceOrderRes 下单 //OrderCreateRes 下单
type PlaceOrderRes struct { type OrderCreateRes struct {
*CommonRes *CommonRes
Result struct { Result struct {
JdOrderID int64 `json:"jdOrderId"` //京东订单号 JdOrderID int64 `json:"jdOrderId"` //京东订单号
...@@ -78,45 +59,62 @@ type OrderSkuItem struct { ...@@ -78,45 +59,62 @@ type OrderSkuItem struct {
NakedPrice float64 `json:"nakedPrice"` //商品未税价 NakedPrice float64 `json:"nakedPrice"` //商品未税价
} }
//ReflectOrderRes 反查订单 //OrderReflectRes 反查订单
type ReflectOrderRes struct { type OrderReflectRes struct {
*CommonRes *CommonRes
Result string `json:"result"` //第三方订单号(非京东订单号) Result string `json:"result"` //第三方订单号(非京东订单号)
} }
//GetOrderRes 订单详情 type OrderDetailBase struct {
type GetOrderRes struct {
*CommonRes *CommonRes
Result struct { Result struct {
JdOrderID int64 `json:"jdOrderId"` //京东订单编号 JdOrderID int64 `json:"jdOrderId"` //京东订单编号
Type int `json:"type"` //订单类型。1是父订单 2是子订单 Type int `json:"type"` //订单类型。1是父订单 2是子订单
Freight float64 `json:"freight"` //运费 }
OrderPrice float64 `json:"orderPrice"` //订单总金额 }
OrderNakedPrice float64 `json:"orderNakedPrice"` //订单未含税金额
OrderTaxPrice float64 `json:"orderTaxPrice"` //订单税额 //OrderDetailRes 订单详情
Sku []*OrderSkuItem `json:"sku"` //商品列表 type OrderDetailRes struct {
OrderState int `json:"orderState"` //订单状态。0为取消订单 1为有效 CommonRes
State int `json:"state"` //物流状态。0 是新建 1是妥投 2是拒收 Result struct {
POrder struct { SubmitState int `json:"submitState"` //预占确认状态。0没确认预占。 1已确认预占。
JdOrderID int64 `json:"jdOrderId"` //京东订单编号 Type int `json:"type"` //订单类型。1是父订单 2是子订单
Freight float64 `json:"freight"` //运费 OrderState int `json:"orderState"` //订单状态。0为取消订单 1为有效
OrderPrice float64 `json:"orderPrice"` //订单总金额 POrder OrderDetailPOrder `json:"pOrder"`
OrderNakedPrice float64 `json:"orderNakedPrice"` //订单未含税金额 COrder []OrderDetailCOrder `json:"cOrder"`
Sku []*OrderSkuItem `json:"sku"` //商品列表
} `json:"pOrder"`
COrder []struct {
POrder string `json:"pOrder"` //父订单号。为0时,此订单为父单。
JdOrderID int `json:"jdOrderId"` //京东订单编号
Freight float64 `json:"freight"` //运费
OrderPrice float64 `json:"orderPrice"` //订单总金额
OrderNakedPrice float64 `json:"orderNakedPrice"` //订单未含税金额
Sku []OrderSkuItem `json:"sku"` //商品列表
} `json:"cOrder"`
} `json:"result"` } `json:"result"`
} }
//GetFreightRes 运费 type OrderDetailPOrder struct {
type GetFreightRes struct { JdOrderId int64 `json:"jdOrderId"` //京东主订单编号
Freight float64 `json:"freight"` //运费
OrderPrice float64 `json:"orderPrice"` //订单总金额
OrderNakedPrice float64 `json:"orderNakedPrice"` //订单未含税金额
Sku []OrderSkuItem `json:"sku"` //商品列表
OrderTaxPrice float64 `json:"orderTaxPrice"` //订单税额
}
type OrderDetailCOrder struct {
POrder int64 `json:"pOrder"` //京东主订单编号
OrderState int `json:"orderState"`
JdOrderId int64 `json:"jdOrderId"` //京东子订单编号
State int `json:"state"`
Freight float64 `json:"freight"`
SubmitState int `json:"submitState"`
OrderPrice float64 `json:"orderPrice"`
OrderNakedPrice float64 `json:"orderNakedPrice"`
Type int `json:"type"` //商品类型。 0 普通、1 附件、2 赠品、3延保
Sku []OrderSkuItem `json:"sku"`
OrderTaxPrice float64 `json:"orderTaxPrice"`
}
type OrderDetailChild struct {
CommonRes
Result OrderDetailCOrder `json:"result"`
}
//OrderFreightRes 运费
type OrderFreightRes struct {
*CommonRes *CommonRes
Result struct { Result struct {
Freight float64 `json:"freight"` //总运费 Freight float64 `json:"freight"` //总运费
...@@ -131,23 +129,8 @@ type SkuNums struct { ...@@ -131,23 +129,8 @@ type SkuNums struct {
Num int `json:"num"` //商品数量 Num int `json:"num"` //商品数量
} }
// GetDelivery 物流信息 // Create 下单
func (*orderJD) GetDelivery(ctx context.Context, OrderID string) (res *GetDeliveryRes, err error) { func (*orderJD) Create(ctx context.Context, req *OrderCreateReq) (res *OrderCreateRes, err error) {
method := "order/orderTrack"
param := g.Map{
"jdOrderId": OrderID,
"waybillCode": "1",
}
result, err := server.requestApi(ctx, method, param)
if err != nil {
return
}
err = gjson.New(result).Scan(&res)
return
}
// PlaceOrder 下单
func (*orderJD) PlaceOrder(ctx context.Context, req *PlaceOrderReq) (res *PlaceOrderRes, err error) {
method := "order/submitOrder" method := "order/submitOrder"
var param = g.Map{ var param = g.Map{
"thirdOrder": req.OrderSn, "thirdOrder": req.OrderSn,
...@@ -180,8 +163,8 @@ func (*orderJD) PlaceOrder(ctx context.Context, req *PlaceOrderReq) (res *PlaceO ...@@ -180,8 +163,8 @@ func (*orderJD) PlaceOrder(ctx context.Context, req *PlaceOrderReq) (res *PlaceO
return return
} }
// ReflectOrder 反查订单 // Reflect 反查订单
func (*orderJD) ReflectOrder(ctx context.Context, thirdOrder string) (res *ReflectOrderRes, err error) { func (*orderJD) Reflect(ctx context.Context, thirdOrder string) (res *OrderReflectRes, err error) {
method := "order/selectJdOrderIdByThirdOrder" method := "order/selectJdOrderIdByThirdOrder"
param := g.Map{ param := g.Map{
"thirdOrder": thirdOrder, "thirdOrder": thirdOrder,
...@@ -194,22 +177,47 @@ func (*orderJD) ReflectOrder(ctx context.Context, thirdOrder string) (res *Refle ...@@ -194,22 +177,47 @@ func (*orderJD) ReflectOrder(ctx context.Context, thirdOrder string) (res *Refle
return return
} }
// GetOrderInfo 订单详情 //Detail 订单详情
func (*orderJD) GetOrderInfo(ctx context.Context, OrderID string) (res *GetOrderRes, err error) { func (*orderJD) Detail(ctx context.Context, OrderID string) (res *OrderDetailRes, err error) {
method := "order/selectJdOrder" method := "order/selectJdOrder"
param := g.Map{ param := g.Map{
"jdOrderId": OrderID, "jdOrderId": OrderID,
} }
result, err := server.requestApi(ctx, method, param) result, err := server.requestApi(ctx, method, param)
if err != nil { if err != nil {
return return
} }
_ = gjson.New(result).Scan(&res)
var base *OrderDetailBase
_ = gjson.New(result).Scan(&base)
if base.Result.Type == 1 {
_ = gjson.New(result).Scan(&res)
return
} else {
var child *OrderDetailChild
_ = gjson.New(result).Scan(&child)
res = &OrderDetailRes{}
res.CommonRes = child.CommonRes
res.Result.Type = child.Result.Type
res.Result.SubmitState = child.Result.SubmitState
res.Result.OrderState = child.Result.OrderState
res.Result.POrder = OrderDetailPOrder{
JdOrderId: child.Result.JdOrderId,
Freight: child.Result.Freight,
OrderPrice: child.Result.OrderPrice,
OrderNakedPrice: child.Result.OrderNakedPrice,
OrderTaxPrice: child.Result.OrderTaxPrice,
Sku: child.Result.Sku,
}
res.Result.COrder = append(res.Result.COrder, child.Result)
}
return return
} }
// GetFreight 查询运费 //Freight 查询运费
func (*orderJD) GetFreight(ctx context.Context, sku []*SkuNums, province, city, county, town string) (res *GetFreightRes, err error) { func (*orderJD) Freight(ctx context.Context, sku []*SkuNums, province, city, county, town string) (res *OrderFreightRes, err error) {
method := "order/getFreight" method := "order/getFreight"
param := g.Map{ param := g.Map{
"sku": gjson.New(sku).MustToJsonString(), "sku": gjson.New(sku).MustToJsonString(),
...@@ -227,8 +235,8 @@ func (*orderJD) GetFreight(ctx context.Context, sku []*SkuNums, province, city, ...@@ -227,8 +235,8 @@ func (*orderJD) GetFreight(ctx context.Context, sku []*SkuNums, province, city,
return return
} }
// ConfirmReceived 确认收货 // Confirm 确认收货
func (*orderJD) ConfirmReceived(ctx context.Context, OrderID string) (res *CommonRes, err error) { func (*orderJD) Confirm(ctx context.Context, OrderID string) (res *CommonRes, err error) {
method := "order/confirmReceived" method := "order/confirmReceived"
param := g.Map{ param := g.Map{
"jdOrderId": OrderID, "jdOrderId": OrderID,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论