addOrderStatus中,修改订单状态更新逻辑:

1,只有终止状态,或解锁事件才会解锁
This commit is contained in:
gazebo
2019-11-27 21:15:09 +08:00
parent d836376ac3
commit b91163cb18

View File

@@ -474,20 +474,25 @@ func (c *OrderManager) addOrderStatus(orderStatus *model.OrderStatus, db *dao.Da
order.VendorStatus = orderStatus.VendorStatus order.VendorStatus = orderStatus.VendorStatus
updateFields := []string{ updateFields := []string{
"VendorStatus", "VendorStatus",
"UpdatedAt",
} }
if model.IsOrderMainStatus(orderStatus.Status) { if model.IsOrderMainStatus(orderStatus.Status) {
order.Status = orderStatus.Status order.Status = orderStatus.Status
order.StatusTime = orderStatus.StatusTime order.StatusTime = orderStatus.StatusTime
updateFields = append(updateFields, "Status", "StatusTime") updateFields = append(updateFields, "Status", "StatusTime")
if order.LockStatus != model.OrderStatusUnknown { if model.IsOrderFinalStatus(orderStatus.Status) {
order.LockStatus = model.OrderStatusUnknown order.OrderFinishedAt = orderStatus.StatusTime
updateFields = append(updateFields, "LockStatus") updateFields = append(updateFields, "OrderFinishedAt")
if order.LockStatus != model.OrderStatusUnknown {
order.LockStatus = model.OrderStatusUnknown
updateFields = append(updateFields, "LockStatus")
}
} }
} else { } else {
if model.IsOrderUnlockStatus(orderStatus.Status) { if model.IsOrderUnlockStatus(orderStatus.Status) {
order.LockStatus = model.OrderStatusUnknown order.LockStatus = model.OrderStatusUnknown
updateFields = append(updateFields, "LockStatus") updateFields = append(updateFields, "LockStatus")
} else if !model.IsOrderFinalStatus(orderStatus.Status) { } else if model.IsOrderLockStatus(orderStatus.Status) {
if order.LockStatus != model.OrderStatusUnknown { if order.LockStatus != model.OrderStatusUnknown {
globals.SugarLogger.Warnf("addOrderStatus refOrderID:%s, orderID:%s, order.LockStatus:%d, status.LockStatus:%d", orderStatus.RefVendorOrderID, orderStatus.VendorOrderID, order.LockStatus, orderStatus.Status) globals.SugarLogger.Warnf("addOrderStatus refOrderID:%s, orderID:%s, order.LockStatus:%d, status.LockStatus:%d", orderStatus.RefVendorOrderID, orderStatus.VendorOrderID, order.LockStatus, orderStatus.Status)
} }
@@ -497,10 +502,6 @@ func (c *OrderManager) addOrderStatus(orderStatus *model.OrderStatus, db *dao.Da
updateFields = append(updateFields, "LockStatus", "LockStatusTime", "Flag") updateFields = append(updateFields, "LockStatus", "LockStatusTime", "Flag")
} }
} }
if model.IsOrderFinalStatus(orderStatus.Status) {
order.OrderFinishedAt = orderStatus.StatusTime
updateFields = append(updateFields, "OrderFinishedAt")
}
utils.CallFuncLogError(func() error { utils.CallFuncLogError(func() error {
_, err = db.Db.Update(order, updateFields...) _, err = db.Db.Update(order, updateFields...)
return err return err