- pending order use real status when calling scheduler.OnOrderNew.

- set the order status to the proper value when there is a early message camme(saveOrder).
This commit is contained in:
gazebo
2018-07-25 22:58:19 +08:00
parent c0770e9ab5
commit a8c2e9991b
4 changed files with 31 additions and 15 deletions

View File

@@ -114,12 +114,26 @@ func (c *OrderController) OnOrderStatusChanged(orderStatus *model.OrderStatus) (
func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db orm.Ormer) (err error) {
// 忽略查找JX信息错误
c.updateOrderOtherInfo(order, db)
db.Begin()
order.ID = 0
order.WaybillVendorID = model.VendorIDUnknown
order.OrderFinishedAt = utils.DefaultTimeValue
order.OrderCreatedAt = order.StatusTime
// hardcode 兼容京东消息错序问题
orderStatus := &model.OrderStatus{
VendorOrderID: order.VendorOrderID,
VendorID: order.VendorID,
OrderType: model.OrderTypeOrder,
}
if db.Read(orderStatus, "VendorOrderID", "VendorID", "OrderType") == nil {
globals.SugarLogger.Debugf("saveOrder orderID:%s get previous status:%d", order.VendorOrderID, orderStatus.Status)
order.Status = orderStatus.Status
order.VendorStatus = orderStatus.VendorStatus
order.StatusTime = orderStatus.StatusTime
}
globals.SugarLogger.Debugf("saveOrder isAdjust:%t, order:%v", isAdjust, order)
db.Begin()
created, _, err2 := db.ReadOrCreate(order, "VendorOrderID", "VendorID")
if err = err2; err == nil {
if created {
@@ -260,7 +274,7 @@ func (c *OrderController) LoadOrder(vendorOrderID string, vendorID int) (order *
}, "LoadOrder orderID:%s", vendorOrderID)
}
if err != nil {
globals.SugarLogger.Warnf("LoadOrder orderID:%s failed with error:%v", vendorOrderID, err)
globals.SugarLogger.Infof("LoadOrder orderID:%s failed with error:%v", vendorOrderID, err)
}
return order, err
}