diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index bd86fc91a..383e76223 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -195,6 +195,11 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m } } } + } else if orderStatus.Status == model.OrderStatusCanceled { + //如果取消订单则要把库存加回去 + if order, err2 := c.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID); err2 == nil { + ModifyOrderSkusStock(db, order, true) + } } if !isDuplicated { if order != nil { @@ -313,7 +318,7 @@ func (c *OrderManager) SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao } //修改商品库存 if err == nil { - err = modifyOrderSkusStock(db, order, false) + err = ModifyOrderSkusStock(db, order, false) } } else { globals.SugarLogger.Warnf("saveOrder create order:%v, error:%v", order, err) @@ -324,7 +329,7 @@ func (c *OrderManager) SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao return isDuplicated, err } -func modifyOrderSkusStock(db *dao.DaoDB, order *model.GoodsOrder, isAdd bool) (err error) { +func ModifyOrderSkusStock(db *dao.DaoDB, order *model.GoodsOrder, isAdd bool) (err error) { skus := order.Skus for _, sku := range skus { storeSkus, _ := dao.GetStoresSkusInfo(db, []int{jxutils.GetSaleStoreIDFromOrder(order)}, []int{sku.SkuID})