This commit is contained in:
richboo111
2023-06-02 16:23:17 +08:00
parent 674ce417d0
commit 80fdd232c3
2 changed files with 39 additions and 21 deletions

View File

@@ -154,22 +154,24 @@ func (d DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee i
}
delivery.OnWaybillCreated(bill)
//todo 模拟新运单回调
resp := OnWaybillMsg(sfps2.UrlIndexRiderStatus, sfps2.RiderStatus{
ShopId: utils.Str2Float64(sfps2.SFShopStoreID),
SFOrderID: sfOrderID,
ShopOrderID: order.VendorOrderID,
UrlIndex: sfps2.UrlIndexRiderStatus,
OperatorName: "",
OperatorPhone: "",
RiderLng: 0,
RiderLat: 0,
OrderStatus: sfps2.OrderStatusNewOrder,
StatusDesc: sfps2.OrderStatusNewOrderDesc,
SFUCode: "",
PushTime: int(time.Now().Unix()),
})
if resp.ErrorCode != sfps2.SuccessCode {
err = fmt.Errorf("%v,%s", err, resp.ErrorMsg)
if _, err = partner.CurOrderManager.LoadWaybill(sfOrderID, model.VendorIDSFPS); err == errors.New("找不到相应运单") {
resp := OnWaybillMsg(sfps2.UrlIndexRiderStatus, sfps2.RiderStatus{
ShopId: utils.Str2Float64(sfps2.SFShopStoreID),
SFOrderID: sfOrderID,
ShopOrderID: order.VendorOrderID,
UrlIndex: sfps2.UrlIndexRiderStatus,
OperatorName: "",
OperatorPhone: "",
RiderLng: 0,
RiderLat: 0,
OrderStatus: sfps2.OrderStatusNewOrder,
StatusDesc: sfps2.OrderStatusNewOrderDesc,
SFUCode: "",
PushTime: int(time.Now().Unix()),
})
if resp.ErrorCode != sfps2.SuccessCode {
err = fmt.Errorf("%v,%s", err, resp.ErrorMsg)
}
}
return bill, err
}
@@ -304,7 +306,17 @@ func (c *DeliveryHandler) UpdateWaybillTip(ctx *jxcontext.Context, vendorOrgCode
// OnWaybillMsg 配送状态更改回调
func OnWaybillMsg(urlIndex string, msg interface{}) (resp *sfps2.CallbackResponse) {
order := GetWaybillByStatus(urlIndex, msg)
//多次取消回调只取第一次
tempStatus := utils.Str2Int(order.VendorStatus)
if tempStatus == sfps2.OrderStatusOrderCancel || tempStatus == sfps2.OrderStatusRiderCancel {
bill, err := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, model.VendorIDSFPS)
if err != nil {
return sfps2.Err2CallbackResponse(err)
}
if bill.Status == model.OrderStatusCanceled {
return sfps2.Err2CallbackResponse(nil)
}
}
//获取实时订单信息
sfOrder, err := api.SfPsAPI.GetOrderStatus(order.VendorWaybillID)
if err != nil {