Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop
This commit is contained in:
@@ -154,20 +154,25 @@ func (d DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee i
|
||||
}
|
||||
delivery.OnWaybillCreated(bill)
|
||||
//todo 模拟新运单回调
|
||||
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 _, err = partner.CurOrderManager.LoadWaybill(sfOrderID, model.VendorIDSFPS); fmt.Sprintf("%s", err) == "找不到相应运单" {
|
||||
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
|
||||
}
|
||||
|
||||
@@ -301,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 {
|
||||
@@ -424,7 +439,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 +481,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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user