- 新增OrderStatusUndoApplyCancel

This commit is contained in:
gazebo
2019-04-19 17:29:37 +08:00
parent b065c79ec3
commit 892cbd365a
5 changed files with 65 additions and 43 deletions

View File

@@ -350,36 +350,34 @@ func (c *OrderManager) addOrderStatus(orderStatus *model.OrderStatus, db *dao.Da
db = dao.GetDB()
}
isDuplicated, err = addOrderOrWaybillStatus(orderStatus, db)
if err == nil && !isDuplicated &&
(orderStatus.Status > model.OrderStatusUnknown ||
(orderStatus.Status == model.OrderStatusUnlocked || orderStatus.Status == model.OrderStatusLocked || orderStatus.Status == model.OrderStatusApplyCancel)) {
if err == nil && !isDuplicated && model.IsOrderImportantStatus(orderStatus.Status) {
order := &model.GoodsOrder{
VendorOrderID: orderStatus.VendorOrderID,
VendorID: orderStatus.VendorID,
}
if err = db.Db.ReadForUpdate(order, "VendorOrderID", "VendorID"); err == nil {
if (orderStatus.Status == model.OrderStatusUnlocked || orderStatus.Status == model.OrderStatusLocked || orderStatus.Status == model.OrderStatusApplyCancel) ||
(orderStatus.Status > model.OrderStatusUnknown && orderStatus.Status >= order.Status) { // todo 要求status不能回绕
if (model.IsOrderLockStatus(orderStatus.Status) || model.IsOrderUnlockStatus(orderStatus.Status)) ||
(model.IsOrderMainStatus(orderStatus.Status) && orderStatus.Status >= order.Status) { // todo 要求status不能回绕
order.VendorStatus = orderStatus.VendorStatus
order.StatusTime = orderStatus.StatusTime
updateFields := []string{
"VendorStatus", "StatusTime",
}
if orderStatus.Status > model.OrderStatusUnknown {
if model.IsOrderMainStatus(orderStatus.Status) {
order.LockStatus = model.OrderStatusUnknown
order.Status = orderStatus.Status
updateFields = append(updateFields, "Status", "LockStatus")
} else {
if orderStatus.Status == model.OrderStatusUnlocked {
if model.IsOrderUnlockStatus(orderStatus.Status) {
order.LockStatus = model.OrderStatusUnknown
updateFields = append(updateFields, "LockStatus")
} else if orderStatus.Status == model.OrderStatusLocked || orderStatus.Status == model.OrderStatusApplyCancel {
} else if model.IsOrderLockStatus(orderStatus.Status) {
order.LockStatus = orderStatus.Status
updateFields = append(updateFields, "LockStatus")
}
}
orderStatus.LockStatus = order.LockStatus
if orderStatus.Status >= model.OrderStatusEndBegin {
if model.IsOrderFinalStatus(orderStatus.Status) {
order.OrderFinishedAt = orderStatus.StatusTime
updateFields = append(updateFields, "OrderFinishedAt")
}