- 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:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user