diff --git a/business/partner/delivery/sfps/waybill.go b/business/partner/delivery/sfps/waybill.go index 090afb0b9..78306ba6d 100644 --- a/business/partner/delivery/sfps/waybill.go +++ b/business/partner/delivery/sfps/waybill.go @@ -154,7 +154,7 @@ func (d DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee i } delivery.OnWaybillCreated(bill) //todo 模拟新运单回调 - OnWaybillMsg(sfps2.UrlIndexRiderStatus, sfps2.RiderStatus{ + resp := OnWaybillMsg(sfps2.UrlIndexRiderStatus, sfps2.RiderStatus{ ShopId: utils.Str2Float64(sfps2.SFShopStoreID), SFOrderID: sfOrderID, ShopOrderID: order.VendorOrderID, @@ -168,6 +168,9 @@ func (d DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee i SFUCode: "", PushTime: int(time.Now().Unix()), }) + if resp.ErrorCode != sfps2.SuccessCode { + err = fmt.Errorf("%v,%s", err, resp.ErrorMsg) + } return bill, err } @@ -424,7 +427,7 @@ func OnWaybillExceptSF(msg *sfps2.RiderException) (retVal *sfps2.CallbackRespons func GetWaybillByStatus(urlIndex string, msg interface{}) *model.Waybill { waybill := &model.Waybill{} switch urlIndex { - case sfps2.UrlIndexRiderStatus, sfps2.UrlIndexSFCancel: + case sfps2.UrlIndexRiderStatus: retVal := msg.(sfps2.RiderStatus) waybill = &model.Waybill{ VendorWaybillID: retVal.SFOrderID, @@ -466,6 +469,20 @@ func GetWaybillByStatus(urlIndex string, msg interface{}) *model.Waybill { if retVal.PushTime == 0 { waybill.StatusTime = time.Now() } + case sfps2.UrlIndexSFCancel: + retVal := msg.(sfps2.SFCancel) + waybill = &model.Waybill{ + VendorWaybillID: retVal.SFOrderID, + WaybillVendorID: model.VendorIDSFPS, + VendorOrderID: retVal.ShopOrderID, + CourierName: retVal.OperatorName, + VendorStatus: utils.Float64ToStr(retVal.OrderStatus), + StatusTime: utils.Timestamp2Time(int64(retVal.PushTime)), + Remark: retVal.StatusDesc, + } + if retVal.PushTime == 0 { + waybill.StatusTime = time.Now() + } default: return nil }