- don't unrolling order status.

This commit is contained in:
gazebo
2018-08-03 09:22:11 +08:00
parent fbef61c768
commit aedf0c7eeb
3 changed files with 28 additions and 14 deletions

View File

@@ -249,18 +249,32 @@ func (c *OrderController) addOrderStatus(orderStatus *model.OrderStatus, db orm.
}
isDuplicated, err = addOrderOrWaybillStatus(orderStatus, db)
if err == nil && !isDuplicated && orderStatus.Status > model.OrderStatusUnknown {
params := orm.Params{
"status": orderStatus.Status,
"vendor_status": orderStatus.VendorStatus,
"status_time": orderStatus.StatusTime,
order := &model.GoodsOrder{
VendorOrderID: orderStatus.VendorOrderID,
VendorID: orderStatus.VendorID,
}
if orderStatus.Status >= model.OrderStatusEndBegin {
params["order_finished_at"] = orderStatus.StatusTime
if err = db.ReadForUpdate(order); err == nil {
if orderStatus.Status >= order.Status { // todo 要求status不能回绕
order.Status = orderStatus.Status
order.VendorStatus = orderStatus.VendorStatus
order.StatusTime = orderStatus.StatusTime
order.OrderFinishedAt = orderStatus.StatusTime
updateFields := []string{
"status", "vendor_status", "status_time",
}
if orderStatus.Status >= model.OrderStatusEndBegin {
updateFields = append(updateFields, "order_finished_at")
}
utils.CallFuncLogError(func() error {
_, err = db.Update(order, updateFields...)
return err
}, "addOrderStatus update order, status:%v", orderStatus)
} else {
isDuplicated = true
}
} else {
globals.SugarLogger.Warnf("addOrderStatus orderID:%s read failed with error:%v", err)
}
utils.CallFuncLogError(func() error {
_, err = db.QueryTable("goods_order").Filter("vendor_order_id", orderStatus.VendorOrderID).Filter("vendor_id", orderStatus.VendorID).Update(params)
return err
}, "addOrderStatus update order, status:%v", orderStatus)
}
return isDuplicated, err
}