diff --git a/business/controller/order_legacy.go b/business/controller/order_legacy.go index 3937732f1..53fbde1ef 100644 --- a/business/controller/order_legacy.go +++ b/business/controller/order_legacy.go @@ -94,6 +94,8 @@ func legacyMapOrderStatus(orderStatus int) (retVal int8) { retVal = JX_ORDER_STATUS_EXCEPTION_APPLY case model.OrderStatusCanceled: retVal = JX_ORDER_STATUS_CANCEL + case model.OrderStatusFinishedPickup: + retVal = JX_ORDER_STATUS_WAIT_FOR_DELIVERY default: retVal = JX_STATUS_UNKNOWN } @@ -166,7 +168,9 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm OrderDiscountMoney: int(order.SalePrice - order.ActualPayPrice), // DeliveryPackageWeight: float64(order.Weight) / 1000, } - + if order.VendorID == model.VendorIDELM { + order.Status = model.OrderStatusFinishedPickup + } if order.ExpectedDeliveredTime.Sub(utils.DefaultTimeValue) > 0 { jxorder.OrderPreEndDelivTime = utils.Time2Str(order.ExpectedDeliveredTime) } @@ -218,6 +222,11 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm func (c *OrderController) legacyJxOrderStatusChanged(status *model.OrderStatus, db orm.Ormer) (err error) { orderStatus := legacyMapOrderStatus(status.Status) if orderStatus != JX_STATUS_UNKNOWN { + if status.VendorID == model.VendorIDELM { + if orderStatus < JX_ORDER_STATUS_WAIT_FOR_DELIVERY { + orderStatus = JX_ORDER_STATUS_WAIT_FOR_DELIVERY + } + } if db == nil { db = orm.NewOrm() } diff --git a/business/scheduler/defsch/defsch.go b/business/scheduler/defsch/defsch.go index 9d6fa940c..dbcd37565 100644 --- a/business/scheduler/defsch/defsch.go +++ b/business/scheduler/defsch/defsch.go @@ -187,10 +187,9 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo s.removeWaybillFromMap(savedOrderInfo, bill) if order.WaybillVendorID == bill.WaybillVendorID && order.VendorWaybillID == bill.VendorWaybillID { globals.SugarLogger.Infof("OnWaybillStatusChanged WaybillStatusFailed, bill:%v", bill) - if order.WaybillVendorID == bill.WaybillVendorID { - bill.WaybillVendorID = model.VendorIDUnknown - s.updateOrderByBill(order, bill, true) - } + bill.WaybillVendorID = model.VendorIDUnknown + s.updateOrderByBill(order, bill, true) + s.resetTimer(savedOrderInfo, scheduler.TimerStatusTypeWaybill, bill.Status, false) } else { globals.SugarLogger.Warnf("OnWaybillStatusChanged Failed bill:%v shouldn't got here", bill) @@ -339,6 +338,7 @@ func (s *DefScheduler) stopTimer(savedOrderInfo *WatchOrderInfo) { globals.SugarLogger.Debugf("stopTimer orderID:%s", savedOrderInfo.order.VendorOrderID) savedOrderInfo.timer.Stop() savedOrderInfo.timerStatus = 0 + savedOrderInfo.timerStatusType = scheduler.TimerStatusTypeUnknown savedOrderInfo.timer = nil } }