- big refactor for scheduler.
This commit is contained in:
@@ -48,13 +48,16 @@ func (c *OrderController) LoadPendingOrders() []*model.GoodsOrder {
|
||||
// OnOrderAdjust也类似,而OrderStatus要记录的是消息,所以添加这个
|
||||
func (c *OrderController) OnOrderNew(order *model.GoodsOrder, msgVendorStatus string) (err error) {
|
||||
db := orm.NewOrm()
|
||||
if order.Status == model.OrderStatusUnknown {
|
||||
order.Status = model.OrderStatusNew
|
||||
}
|
||||
status := model.Order2Status(order)
|
||||
status.Status = model.OrderStatusNew
|
||||
status.VendorStatus = msgVendorStatus
|
||||
isDuplicated, err := addOrderOrWaybillStatus(status, db)
|
||||
if err == nil && !isDuplicated {
|
||||
if err = c.saveOrder(order, false, db); err == nil {
|
||||
err = scheduler.CurrentScheduler.OnOrderNew(order)
|
||||
err = scheduler.CurrentScheduler.OnOrderNew(order, false)
|
||||
weixinmsg.NotifyNewOrder(order)
|
||||
}
|
||||
}
|
||||
@@ -64,6 +67,9 @@ func (c *OrderController) OnOrderNew(order *model.GoodsOrder, msgVendorStatus st
|
||||
// todo 调整单的处理可能还需要再细化一点,当前只是简单的删除重建
|
||||
func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder, msgVendorStatus string) (err error) {
|
||||
db := orm.NewOrm()
|
||||
if order.Status == model.OrderStatusUnknown {
|
||||
order.Status = model.OrderStatusNew
|
||||
}
|
||||
status := model.Order2Status(order)
|
||||
status.Status = model.OrderStatusAdjust
|
||||
status.VendorStatus = msgVendorStatus
|
||||
@@ -85,7 +91,9 @@ func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder, msgVendorStatus
|
||||
}
|
||||
if err = c.saveOrder(order, true, db); err == nil {
|
||||
// 因为订单调度器需要的是真实状态,所以用order的状态
|
||||
err = scheduler.CurrentScheduler.OnOrderStatusChanged(model.Order2Status(order))
|
||||
err = scheduler.CurrentScheduler.OnOrderNew(order, false)
|
||||
err = scheduler.CurrentScheduler.OnOrderStatusChanged(model.Order2Status(order), false)
|
||||
weixinmsg.NotifyNewOrder(order)
|
||||
}
|
||||
}
|
||||
return err
|
||||
@@ -94,7 +102,7 @@ func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder, msgVendorStatus
|
||||
func (c *OrderController) OnOrderStatusChanged(orderStatus *model.OrderStatus) (err error) {
|
||||
isDuplicated, err := c.addOrderStatus(orderStatus, nil)
|
||||
if err == nil && !isDuplicated {
|
||||
err = scheduler.CurrentScheduler.OnOrderStatusChanged(orderStatus)
|
||||
err = scheduler.CurrentScheduler.OnOrderStatusChanged(orderStatus, false)
|
||||
if globals.GenerateLegacyJxOrder {
|
||||
c.legacyJxOrderStatusChanged(orderStatus, nil)
|
||||
}
|
||||
@@ -258,14 +266,14 @@ func (c *OrderController) LoadOrder(vendorOrderID string, vendorID int) (order *
|
||||
}
|
||||
|
||||
//Waybill
|
||||
func (c *OrderController) UpdateWaybillVendorID(bill *model.Waybill) (err error) {
|
||||
func (c *OrderController) UpdateWaybillVendorID(bill *model.Waybill, revertStatus bool) (err error) {
|
||||
globals.SugarLogger.Debugf("UpdateWaybillVendorID bill:%v", bill)
|
||||
db := orm.NewOrm()
|
||||
params := orm.Params{
|
||||
"waybill_vendor_id": bill.WaybillVendorID,
|
||||
}
|
||||
// 如果运单被取消,则要保持在已拣货状态
|
||||
if bill.WaybillVendorID == model.VendorIDUnknown {
|
||||
if revertStatus && bill.WaybillVendorID == model.VendorIDUnknown {
|
||||
params["status"] = model.OrderStatusFinishedPickup
|
||||
}
|
||||
utils.CallFuncLogError(func() error {
|
||||
|
||||
Reference in New Issue
Block a user