获取jds订单状态
This commit is contained in:
@@ -1,8 +1,13 @@
|
||||
package jdshop
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi"
|
||||
"git.rosy.net.cn/baseapi/platformapi"
|
||||
"git.rosy.net.cn/baseapi/platformapi/jdshopapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
@@ -41,17 +46,11 @@ func (p *PurchaseHandler) GetOrder(vendorOrgCode, vendorOrderID string) (order *
|
||||
return p.Map2Order(utils.Struct2FlatMap(resultOrders)), err
|
||||
}
|
||||
func (p *PurchaseHandler) GetOrderStatus(vendorOrgCode, vendorOrderID string) (status int, err error) {
|
||||
// orderResult, err := api.JdShopAPI.AllOrders(&jdshopapi.AllOrdersParam{
|
||||
// OrderID: vendorOrderID,
|
||||
// Current: 1,
|
||||
// PageSize: 1,
|
||||
// })
|
||||
// if err != nil {
|
||||
// return 0, err
|
||||
// }
|
||||
// return status2Jxstatus(orderResult.OrderList[0].OrderStatus), err
|
||||
order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDJDShop)
|
||||
return order.Status, err
|
||||
params := make(map[string]interface{})
|
||||
params["orderID"] = vendorOrderID
|
||||
params["token"] = "JxCaIsHiGetJdsOrderTmpToken_20200731"
|
||||
result, err := apiToYd("order/GetJdsOrder", params)
|
||||
return status2Jxstatus(result["orderState"].(string)), err
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) {
|
||||
@@ -64,14 +63,14 @@ func (p *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
|
||||
return ChangeOrderStatus(order.VendorOrderID, status, "")
|
||||
}
|
||||
func (p *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) {
|
||||
// status, err := p.GetOrderStatus("", order.VendorOrderID2)
|
||||
// //说明此时该订单在平台上已经取消了
|
||||
// if order.Status == model.OrderStatusCanceled {
|
||||
// err = ChangeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, "订单状态发生了改变")
|
||||
// } else {
|
||||
// err =
|
||||
// }
|
||||
return ChangeOrderStatus(order.VendorOrderID, model.OrderStatusFinishedPickup, "自动拣货完成")
|
||||
status, err := p.GetOrderStatus("", order.VendorOrderID2)
|
||||
//说明此时该订单在平台上已经取消了
|
||||
if status == model.OrderStatusCanceled {
|
||||
err = ChangeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, "订单在京东商城已被取消!")
|
||||
} else {
|
||||
err = ChangeOrderStatus(order.VendorOrderID, model.OrderStatusFinishedPickup, "自动拣货完成")
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) CallCourier(ctx *jxcontext.Context, order *model.GoodsOrder) (err error) {
|
||||
@@ -164,15 +163,43 @@ func (p *PurchaseHandler) OrderTransfer(ctx *jxcontext.Context, vendorOrderID, v
|
||||
return err
|
||||
}
|
||||
|
||||
func status2Jxstatus(status int) (statusJx int) {
|
||||
if status == jdshopapi.JdsOrderStatusWaittingPay {
|
||||
statusJx = model.OrderStatusWait4Pay
|
||||
} else if status == jdshopapi.JdsOrderStatusWaittingPayDel {
|
||||
statusJx = model.OrderStatusApplyCancel
|
||||
} else if status == jdshopapi.JdsOrderStatusWaittingExport {
|
||||
statusJx = model.OrderStatusAccepted
|
||||
} else if status == jdshopapi.JdsOrderStatusPause {
|
||||
func status2Jxstatus(status string) (statusJx int) {
|
||||
if status == jdshopapi.OrderStatusPopPause || status == jdshopapi.OrderStatusPause {
|
||||
statusJx = model.OrderStatusNew
|
||||
} else if status == jdshopapi.OrderStatusWait {
|
||||
statusJx = model.OrderStatusAccepted
|
||||
} else if status == jdshopapi.OrderStatusCancel {
|
||||
statusJx = model.OrderStatusCanceled
|
||||
}
|
||||
return statusJx
|
||||
}
|
||||
|
||||
const (
|
||||
ProdURL = "http://116.196.82.188:8080/v2/"
|
||||
)
|
||||
|
||||
func apiToYd(url string, params map[string]interface{}) (retVal map[string]interface{}, err error) {
|
||||
cl := &http.Client{}
|
||||
err = platformapi.AccessPlatformAPIWithRetry(cl,
|
||||
func() *http.Request {
|
||||
request, _ := http.NewRequest(http.MethodPost, ProdURL+url, strings.NewReader(utils.Map2URLValues(params).Encode()))
|
||||
request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
||||
return request
|
||||
},
|
||||
nil,
|
||||
func(response *http.Response, bodyStr string, jsonResult1 map[string]interface{}) (errLevel string, err error) {
|
||||
if jsonResult1 == nil {
|
||||
return platformapi.ErrLevelRecoverableErr, fmt.Errorf("mapData is nil")
|
||||
}
|
||||
if err == nil {
|
||||
if jsonResult1["code"] != nil {
|
||||
errLevel = platformapi.ErrLevelGeneralFail
|
||||
err = utils.NewErrorCode(jsonResult1["desc"].(string), jsonResult1["code"].(string))
|
||||
baseapi.SugarLogger.Debugf("yd AccessAPI failed, jsonResult1:%s", utils.Format4Output(jsonResult1, true))
|
||||
}
|
||||
retVal = jsonResult1
|
||||
}
|
||||
return errLevel, err
|
||||
})
|
||||
return retVal, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user