提交 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 {
//Order 订单
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 商品价格
type PriceSnap struct {
SkuID int `json:"skuId"` //商品编号
Price float64 `json:"price"` //商品价格 格式:21.30
}
//PlaceOrderReq 下单
type PlaceOrderReq struct {
//OrderCreateReq 下单
type OrderCreateReq struct {
OrderSn string //订单单号
SkuNums []*SkuNums
Consignee string //收货人姓名,最多20个字符
......@@ -57,8 +38,8 @@ type PlaceOrderAddress struct {
Desc string //收货人详细地址,最多100个字符
}
//PlaceOrderRes 下单
type PlaceOrderRes struct {
//OrderCreateRes 下单
type OrderCreateRes struct {
*CommonRes
Result struct {
JdOrderID int64 `json:"jdOrderId"` //京东订单号
......@@ -78,45 +59,62 @@ type OrderSkuItem struct {
NakedPrice float64 `json:"nakedPrice"` //商品未税价
}
//ReflectOrderRes 反查订单
type ReflectOrderRes struct {
//OrderReflectRes 反查订单
type OrderReflectRes struct {
*CommonRes
Result string `json:"result"` //第三方订单号(非京东订单号)
}
//GetOrderRes 订单详情
type GetOrderRes struct {
type OrderDetailBase struct {
*CommonRes
Result struct {
JdOrderID int64 `json:"jdOrderId"` //京东订单编号
Type int `json:"type"` //订单类型。1是父订单 2是子订单
Freight float64 `json:"freight"` //运费
OrderPrice float64 `json:"orderPrice"` //订单总金额
OrderNakedPrice float64 `json:"orderNakedPrice"` //订单未含税金额
OrderTaxPrice float64 `json:"orderTaxPrice"` //订单税额
Sku []*OrderSkuItem `json:"sku"` //商品列表
OrderState int `json:"orderState"` //订单状态。0为取消订单 1为有效
State int `json:"state"` //物流状态。0 是新建 1是妥投 2是拒收
POrder struct {
JdOrderID int64 `json:"jdOrderId"` //京东订单编号
Freight float64 `json:"freight"` //运费
OrderPrice float64 `json:"orderPrice"` //订单总金额
OrderNakedPrice float64 `json:"orderNakedPrice"` //订单未含税金额
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"`
JdOrderID int64 `json:"jdOrderId"` //京东订单编号
Type int `json:"type"` //订单类型。1是父订单 2是子订单
}
}
//OrderDetailRes 订单详情
type OrderDetailRes struct {
CommonRes
Result struct {
SubmitState int `json:"submitState"` //预占确认状态。0没确认预占。 1已确认预占。
Type int `json:"type"` //订单类型。1是父订单 2是子订单
OrderState int `json:"orderState"` //订单状态。0为取消订单 1为有效
POrder OrderDetailPOrder `json:"pOrder"`
COrder []OrderDetailCOrder `json:"cOrder"`
} `json:"result"`
}
//GetFreightRes 运费
type GetFreightRes struct {
type OrderDetailPOrder 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
Result struct {
Freight float64 `json:"freight"` //总运费
......@@ -131,23 +129,8 @@ type SkuNums struct {
Num int `json:"num"` //商品数量
}
// GetDelivery 物流信息
func (*orderJD) GetDelivery(ctx context.Context, OrderID string) (res *GetDeliveryRes, 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) {
// Create 下单
func (*orderJD) Create(ctx context.Context, req *OrderCreateReq) (res *OrderCreateRes, err error) {
method := "order/submitOrder"
var param = g.Map{
"thirdOrder": req.OrderSn,
......@@ -180,8 +163,8 @@ func (*orderJD) PlaceOrder(ctx context.Context, req *PlaceOrderReq) (res *PlaceO
return
}
// ReflectOrder 反查订单
func (*orderJD) ReflectOrder(ctx context.Context, thirdOrder string) (res *ReflectOrderRes, err error) {
// Reflect 反查订单
func (*orderJD) Reflect(ctx context.Context, thirdOrder string) (res *OrderReflectRes, err error) {
method := "order/selectJdOrderIdByThirdOrder"
param := g.Map{
"thirdOrder": thirdOrder,
......@@ -194,22 +177,47 @@ func (*orderJD) ReflectOrder(ctx context.Context, thirdOrder string) (res *Refle
return
}
// GetOrderInfo 订单详情
func (*orderJD) GetOrderInfo(ctx context.Context, OrderID string) (res *GetOrderRes, err error) {
//Detail 订单详情
func (*orderJD) Detail(ctx context.Context, OrderID string) (res *OrderDetailRes, err error) {
method := "order/selectJdOrder"
param := g.Map{
"jdOrderId": OrderID,
}
result, err := server.requestApi(ctx, method, param)
if err != nil {
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
}
// GetFreight 查询运费
func (*orderJD) GetFreight(ctx context.Context, sku []*SkuNums, province, city, county, town string) (res *GetFreightRes, err error) {
//Freight 查询运费
func (*orderJD) Freight(ctx context.Context, sku []*SkuNums, province, city, county, town string) (res *OrderFreightRes, err error) {
method := "order/getFreight"
param := g.Map{
"sku": gjson.New(sku).MustToJsonString(),
......@@ -227,8 +235,8 @@ func (*orderJD) GetFreight(ctx context.Context, sku []*SkuNums, province, city,
return
}
// ConfirmReceived 确认收货
func (*orderJD) ConfirmReceived(ctx context.Context, OrderID string) (res *CommonRes, err error) {
// Confirm 确认收货
func (*orderJD) Confirm(ctx context.Context, OrderID string) (res *CommonRes, err error) {
method := "order/confirmReceived"
param := g.Map{
"jdOrderId": OrderID,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论