处理饿百订单有时取不到一些字段的情况
This commit is contained in:
@@ -88,11 +88,18 @@ func (p *PurchaseHandler) GetOrderStatus(vendorOrgCode, vendorOrderID string) (s
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) getOrder(vendorOrderID string) (order *model.GoodsOrder, orderMap map[string]interface{}, err error) {
|
func (p *PurchaseHandler) getOrder(vendorOrderID string) (order *model.GoodsOrder, orderMap map[string]interface{}, err error) {
|
||||||
result, err := api.EbaiAPI.OrderGet(vendorOrderID)
|
for i := 0; i < 2; i++ {
|
||||||
|
orderMap, err = api.EbaiAPI.OrderGet(vendorOrderID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
order = p.Map2Order(result)
|
order = p.Map2Order(orderMap)
|
||||||
|
// 饿百订单有时会出现取不到baidu_shop_id的情况,返回错误让服务器重试
|
||||||
|
if order.VendorStoreID != "" {
|
||||||
|
break
|
||||||
}
|
}
|
||||||
return order, result, err
|
}
|
||||||
|
time.Sleep(100 * time.Millisecond)
|
||||||
|
}
|
||||||
|
return order, orderMap, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) GetOrder4PartRefund(vendorOrderID string) (order *model.GoodsOrder, err error) {
|
func (p *PurchaseHandler) GetOrder4PartRefund(vendorOrderID string) (order *model.GoodsOrder, err error) {
|
||||||
@@ -187,15 +194,15 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
|
|||||||
vendorOrderID := orderMap["order_id"].(string)
|
vendorOrderID := orderMap["order_id"].(string)
|
||||||
order = &model.GoodsOrder{
|
order = &model.GoodsOrder{
|
||||||
VendorOrderID: vendorOrderID,
|
VendorOrderID: vendorOrderID,
|
||||||
VendorOrderID2: orderMap["eleme_order_id"].(string),
|
VendorOrderID2: utils.Interface2String(orderMap["eleme_order_id"]),
|
||||||
VendorID: model.VendorIDEBAI,
|
VendorID: model.VendorIDEBAI,
|
||||||
VendorStoreID: shopMap["baidu_shop_id"].(string),
|
VendorStoreID: utils.Interface2String(shopMap["baidu_shop_id"]),
|
||||||
StoreID: int(utils.Str2Int64WithDefault(utils.Interface2String(shopMap["id"]), 0)),
|
StoreID: int(utils.Str2Int64WithDefault(utils.Interface2String(shopMap["id"]), 0)),
|
||||||
StoreName: shopMap["name"].(string),
|
StoreName: utils.Interface2String(shopMap["name"]),
|
||||||
VendorUserID: utils.Interface2String(userMap["user_id"]),
|
VendorUserID: utils.Interface2String(userMap["user_id"]),
|
||||||
ConsigneeName: userMap["name"].(string),
|
ConsigneeName: utils.Interface2String(userMap["name"]),
|
||||||
ConsigneeMobile: jxutils.FormalizeMobile(userMap["phone"].(string)),
|
ConsigneeMobile: jxutils.FormalizeMobile(utils.Interface2String(userMap["phone"])),
|
||||||
ConsigneeAddress: userMap["address"].(string),
|
ConsigneeAddress: utils.Interface2String(userMap["address"]),
|
||||||
CoordinateType: model.CoordinateTypeBaiDu,
|
CoordinateType: model.CoordinateTypeBaiDu,
|
||||||
BuyerComment: utils.TrimBlankChar(utils.Interface2String(orderMap["remark"])),
|
BuyerComment: utils.TrimBlankChar(utils.Interface2String(orderMap["remark"])),
|
||||||
ExpectedDeliveredTime: getTimeFromInterface(orderMap["send_time"]),
|
ExpectedDeliveredTime: getTimeFromInterface(orderMap["send_time"]),
|
||||||
@@ -453,6 +460,10 @@ func (c *PurchaseHandler) onOrderNew(msg *ebaiapi.CallbackMsg, orderStatus *mode
|
|||||||
vendorOrderID := GetOrderIDFromMsg(msg)
|
vendorOrderID := GetOrderIDFromMsg(msg)
|
||||||
order, orderMap, err := c.getOrder(vendorOrderID)
|
order, orderMap, err := c.getOrder(vendorOrderID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
// 饿百订单有时会出现取不到baidu_shop_id的情况,返回错误让服务器重试
|
||||||
|
if order.VendorStoreID == "" {
|
||||||
|
return api.EbaiAPI.Err2CallbackResponse(msg.Cmd, fmt.Errorf("订单%s的baidu_shop_id为空", order.VendorOrderID), "")
|
||||||
|
}
|
||||||
if err = partner.CurOrderManager.OnOrderNew(order, orderStatus); err == nil {
|
if err = partner.CurOrderManager.OnOrderNew(order, orderStatus); err == nil {
|
||||||
utils.CallFuncAsync(func() {
|
utils.CallFuncAsync(func() {
|
||||||
c.OnOrderDetail(orderMap, partner.CreatedPeration)
|
c.OnOrderDetail(orderMap, partner.CreatedPeration)
|
||||||
|
|||||||
Reference in New Issue
Block a user