修复处理投递失败的BUG
This commit is contained in:
@@ -406,8 +406,15 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod
|
||||
}
|
||||
if !isPending {
|
||||
if status.Status == model.OrderStatusAgreeFailedGetGoods || status.Status == model.OrderStatusDeliverFailed {
|
||||
s.updateOrderByBill(order, nil, status.Status != model.OrderStatusAgreeFailedGetGoods)
|
||||
s.updateOrderByBill(order, nil, false) //status.Status != model.OrderStatusAgreeFailedGetGoods)
|
||||
s.removeWaybillFromMap(savedOrderInfo, order.VendorID)
|
||||
clearFlag := 0
|
||||
if status.Status == model.OrderStatusAgreeFailedGetGoods {
|
||||
clearFlag = model.OrderFlagMaskFailedGetGoods
|
||||
} else if status.Status == model.OrderFlagMaskFailedDeliver {
|
||||
clearFlag = model.OrderFlagMaskFailedDeliver
|
||||
}
|
||||
dao.ClearOrderFlag(dao.GetDB(), model.AdminName, order.VendorOrderID, order.VendorID, clearFlag)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -427,7 +434,7 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod
|
||||
status.Status == model.OrderStatusAgreeFailedGetGoods ||
|
||||
status.Status == model.OrderStatusDeliverFailed {
|
||||
if status.Status == model.OrderStatusApplyFailedGetGoods {
|
||||
dao.ClearOrderFlag(dao.GetDB(), model.AdminName, order.VendorOrderID, order.VendorID, ^(model.OrderFlagMaskFailedGetGoods | model.OrderFlagMaskCallPMCourier))
|
||||
dao.ClearOrderFlag(dao.GetDB(), model.AdminName, order.VendorOrderID, order.VendorID, model.OrderFlagMaskFailedGetGoods|model.OrderFlagMaskCallPMCourier)
|
||||
}
|
||||
if status.Status == model.OrderStatusApplyCancel {
|
||||
s.notifyUserApplyCancel(savedOrderInfo.order, status.Remark)
|
||||
@@ -1166,7 +1173,8 @@ func isNeedWatchWaybillTip(order *model.GoodsOrder) bool {
|
||||
func isNeedWatch3rdWaybill(order *model.GoodsOrder) bool {
|
||||
return (order.Status >= model.OrderStatusFinishedPickup && order.Status < model.OrderStatusDelivering) && // 订单状态
|
||||
order.DeliveryFlag&model.OrderDeliveryFlagMaskScheduleDisabled == 0 && // 没有禁止调度
|
||||
!model.IsOrderHaveWaybill(order) // 没有有效运单
|
||||
!model.IsOrderHaveWaybill(order) && // 没有有效运单
|
||||
order.LockStatus == model.OrderStatusUnknown
|
||||
}
|
||||
|
||||
func (s *DefScheduler) setWatchOrderWaybills(savedOrderInfo *WatchOrderInfo, duration time.Duration) {
|
||||
@@ -1219,27 +1227,28 @@ func (s *DefScheduler) watchOrderWaybills(savedOrderInfo *WatchOrderInfo) {
|
||||
// }
|
||||
// partner.CurOrderManager.OnOrderMsg(order, vendorStatus, remark)
|
||||
// }
|
||||
if handler, ok := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).(partner.IAddWaybillTip); ok && handler != nil {
|
||||
var remark string
|
||||
tipFee := getWaybillTip(order)
|
||||
vendorStatus := fmt.Sprintf("设置小费:%s", jxutils.IntPrice2StandardCurrencyString(tipFee))
|
||||
tipFee2Add := tipFee - order.WaybillTipMoney
|
||||
vendorStatus += fmt.Sprintf(", 本次添加:%s", jxutils.IntPrice2StandardCurrencyString(tipFee2Add))
|
||||
if false { //tipFee2Add > 0 {
|
||||
err := handler.UpdateWaybillTip(jxcontext.AdminCtx, order.VendorOrgCode, order.VendorStoreID, order.VendorOrderID, order.VendorOrderID, "", "", tipFee)
|
||||
if err == nil {
|
||||
vendorStatus += "成功"
|
||||
order.WaybillTipMoney = tipFee
|
||||
partner.CurOrderManager.UpdateOrderFields(order, []string{"WaybillTipMoney"})
|
||||
} else {
|
||||
vendorStatus += "失败"
|
||||
remark = fmt.Sprint(err)
|
||||
}
|
||||
} else {
|
||||
vendorStatus += "空操作"
|
||||
}
|
||||
partner.CurOrderManager.OnOrderMsg(order, vendorStatus, remark)
|
||||
}
|
||||
|
||||
// if handler, ok := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).(partner.IAddWaybillTip); ok && handler != nil {
|
||||
// var remark string
|
||||
// tipFee := getWaybillTip(order)
|
||||
// vendorStatus := fmt.Sprintf("设置小费:%s", jxutils.IntPrice2StandardCurrencyString(tipFee))
|
||||
// tipFee2Add := tipFee - order.WaybillTipMoney
|
||||
// vendorStatus += fmt.Sprintf(", 本次添加:%s", jxutils.IntPrice2StandardCurrencyString(tipFee2Add))
|
||||
// if false { //tipFee2Add > 0 {
|
||||
// err := handler.UpdateWaybillTip(jxcontext.AdminCtx, order.VendorOrgCode, order.VendorStoreID, order.VendorOrderID, order.VendorOrderID, "", "", tipFee)
|
||||
// if err == nil {
|
||||
// vendorStatus += "成功"
|
||||
// order.WaybillTipMoney = tipFee
|
||||
// partner.CurOrderManager.UpdateOrderFields(order, []string{"WaybillTipMoney"})
|
||||
// } else {
|
||||
// vendorStatus += "失败"
|
||||
// remark = fmt.Sprint(err)
|
||||
// }
|
||||
// } else {
|
||||
// vendorStatus += "空操作"
|
||||
// }
|
||||
// partner.CurOrderManager.OnOrderMsg(order, vendorStatus, remark)
|
||||
// }
|
||||
}
|
||||
if savedOrderInfo.isNeedCreate3rdWaybill {
|
||||
s.createWaybillOn3rdProviders(savedOrderInfo, 0, nil)
|
||||
|
||||
Reference in New Issue
Block a user