diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index fb4790d23..01573b88e 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -313,7 +313,7 @@ func (c *OrderManager) SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao } //修改商品库存 if err == nil { - err = modifySkusStock(order, true) + err = modifyOrderSkusStock(db, order, false) } } else { globals.SugarLogger.Warnf("saveOrder create order:%v, error:%v", order, err) @@ -324,7 +324,24 @@ func (c *OrderManager) SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao return isDuplicated, err } -func modifySkusStock(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}) + if len(storeSkus) == 0 { + globals.SugarLogger.Warnf("此订单商品没得storsku,%v,%v", order.VendorOrderID, sku.SkuID) + continue + } + storeSku, stock := storeSkus[0], 0 + if isAdd { + stock = storeSku.Stock + 1 + } else { + stock = storeSku.Stock - 1 + } + storeSku.Stock = stock + dao.UpdateEntity(db, storeSku, "Stock") + dao.SetStoreSkuSyncStatus(db, order.VendorID, []int{}, []int{}, model.SyncFlagStockMask) + } return err } diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 1da32c89d..623ed0be7 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4789,3 +4789,5 @@ func StoreSkuPriceAudit(ctx *jxcontext.Context, storeSkuAudits []*model.StoreSku } return nil, hint, err } + +