diff --git a/business/controller/controller.go b/business/controller/controller.go index c27e99971..5cb1b7552 100644 --- a/business/controller/controller.go +++ b/business/controller/controller.go @@ -75,6 +75,7 @@ func addOrderOrWaybillStatus(status *model.OrderStatus, db orm.Ormer) (isDuplica return isDuplicated, err } +// todo 最好还是改成全事件回放算了 func LoadPendingOrders() { orders := OrderManager.LoadPendingOrders() globals.SugarLogger.Infof("LoadPendingOrders orders count:%d", len(orders)) diff --git a/business/controller/order_legacy.go b/business/controller/order_legacy.go index 73935e175..7503976d0 100644 --- a/business/controller/order_legacy.go +++ b/business/controller/order_legacy.go @@ -143,14 +143,17 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm db.Raw("DELETE FROM "+globals.JxorderTableName+" WHERE order_id = ?", utils.Str2Int64(order.VendorOrderID)).Exec() db.Raw("DELETE FROM "+globals.JxorderskuTableName+" WHERE order_id = ?", utils.Str2Int64(order.VendorOrderID)).Exec() } - + orderStatus := legacyMapOrderStatus(order.Status) + if orderStatus < JX_ORDER_STATUS_PICKING { + orderStatus = JX_ORDER_STATUS_PICKING + } jxorder := &legacymodel.Jxorder2{ VenderId: int8(order.VendorID), OrderId: utils.Str2Int64(order.VendorOrderID), JxStoreId: utils.Int2Str(jxutils.GetJxStoreIDFromOrder(order)), JxStoreName: order.StoreName, OrderNum: order.OrderSeq, - OrderStatus: legacyMapOrderStatus(order.Status), + OrderStatus: orderStatus, OrderStatusTime: utils.Time2Str(order.StatusTime), BusinessTag: businessTags, SkuCount: order.SkuCount, diff --git a/business/scheduler/defsch/defsch.go b/business/scheduler/defsch/defsch.go index dbcd37565..91bd906a0 100644 --- a/business/scheduler/defsch/defsch.go +++ b/business/scheduler/defsch/defsch.go @@ -360,11 +360,11 @@ func (s *DefScheduler) resetTimer(savedOrderInfo *WatchOrderInfo, statusType, st case scheduler.TimerTypeBaseStatusTime: timeout = order.StatusTime.Sub(time.Now()) + config.Timeout case scheduler.TimerTypeBaseExpectedDeliveredTime: - expectedDeliveredTime := order.ExpectedDeliveredTime - if expectedDeliveredTime == utils.DefaultTimeValue { // 如果没有期望送达时间,则以订单创建时间加DefaultTimeValue来表示 - expectedDeliveredTime = order.OrderCreatedAt.Add(time2Delivered) + statusTime := order.StatusTime + if order.BusinessType == model.BusinessTypeDingshida && order.ExpectedDeliveredTime != utils.DefaultTimeValue { + statusTime = order.ExpectedDeliveredTime.Add(-time2Delivered) } - timeout = expectedDeliveredTime.Add(-config.Timeout).Sub(time.Now()) + timeout = statusTime.Sub(time.Now()) + config.Timeout default: panic("TimerType is wrong!!!") } diff --git a/business/scheduler/scheduler.go b/business/scheduler/scheduler.go index e39aa575b..68b1c3519 100644 --- a/business/scheduler/scheduler.go +++ b/business/scheduler/scheduler.go @@ -21,7 +21,7 @@ const ( TimerTypeByPass = 1 TimerTypeBaseNow = 2 TimerTypeBaseStatusTime = 3 - TimerTypeBaseExpectedDeliveredTime = 4 // 以expected delivery time倒推的时间(减去StatusActionConfig.Timeout) + TimerTypeBaseExpectedDeliveredTime = 4 // 如果是定时达,以expected delivery time倒推的时间当成statusTime(之后与TimerTypeBaseStatusTime一样),否则与TimerTypeBaseStatusTime相同 ) var (