This commit is contained in:
邹宗楠
2025-02-19 14:19:18 +08:00
parent e6153738c9
commit 902ce6e150
4 changed files with 70 additions and 50 deletions

View File

@@ -7,6 +7,7 @@ import (
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"git.rosy.net.cn/baseapi/platformapi/tao_vegetable"
"git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
"git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm"
"math"
"strconv"
@@ -456,7 +457,7 @@ func (c *OrderManager) SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao
// 宠物会出现美团多门店对应京西一个门店的库存数,即同一老板开多家店,单只有一个库存门店,
// 所以不同门店同一品牌,最终商品库存只扣除门店ID最小的商品库存(最早创建门店,主店)
// 最好商品由主店创建,复制到分店,分店本地同步状态不在打开
err = ModifyOrderSkusStock(db, order, false)
err = ModifyPetOrderSkusStock(db, order, false)
}
}
if err == nil {
@@ -520,38 +521,57 @@ func ModifyPetOrderSkusStock(db *dao.DaoDB, order *model.GoodsOrder, isAdd bool)
globals.SugarLogger.Errorf("根据品牌获取门店信息异常,未获取到门店列表[storeID:%d,brandID:%d]", store.ID, store.BrandID)
return nil
}
storeIdList := make([]int, 0, len(storeList))
for _, v := range storeList {
storeIdList = append(storeIdList, v.ID)
}
skus := order.Skus
skuIDList := make([]int, 0, len(skus))
for _, sku := range skus {
storeSkus, _ := dao.GetStoresSkusInfo(db, []int{storeList[0].ID}, []int{sku.SkuID})
storeSkus, _ := dao.GetStoresSkusInfo(db, storeIdList, []int{sku.SkuID})
if len(storeSkus) == 0 {
continue
}
storeSku, stock := storeSkus[0], 0
if storeSku.Stock == 0 {
continue
for _, ss := range storeSkus {
if ss.StoreID == storeList[0].ID {
storeSku = ss
stock = ss.Stock
break
}
}
if isAdd {
stock = storeSku.Stock + sku.Count
} else {
stock = storeSku.Stock - sku.Count
//如果是进货的订单,进货方门店对应商品要加上这么多库存
if order.OrderType == model.OrderTypeSupplyGoods {
storeSkus2, _ := dao.GetStoresSkusInfo(db, []int{order.FromStoreID}, []int{sku.SkuID})
if len(storeSkus2) > 0 {
storeSku3 := storeSkus2[0]
storeSku3.Stock = storeSku3.Stock + sku.Count
db.Db.Update(storeSku3, "Stock")
}
}
realStock := checkPriceDefendOrderByStock(db, jxutils.GetSaleStoreIDFromOrder(order), sku.SkuID, stock, storeSku.JxPrice)
if realStock != -1 {
stock = realStock
}
}
storeSku.Stock = stock
db.Db.Update(storeSku, "Stock")
//if isAdd {
// stock = storeSku.Stock + sku.Count
//} else {
// stock = storeSku.Stock - sku.Count
// //如果是进货的订单,进货方门店对应商品要加上这么多库存
// //if order.OrderType == model.OrderTypeSupplyGoods {
// // storeSkus2, _ := dao.GetStoresSkusInfo(db, []int{order.FromStoreID}, []int{sku.SkuID})
// // if len(storeSkus2) > 0 {
// // storeSku3 := storeSkus2[0]
// // storeSku3.Stock = storeSku3.Stock + sku.Count
// // db.Db.Update(storeSku3, "Stock")
// // }
// //}
// //realStock := checkPriceDefendOrderByStock(db, jxutils.GetSaleStoreIDFromOrder(order), sku.SkuID, stock, storeSku.JxPrice)
// //if realStock != -1 {
// // stock = realStock
// //}
//}
if stock <= model.NO {
stock = 0
}
skuIDList = append(skuIDList, sku.SkuID)
dao.ExecuteSQL(db, `UPDATE thing_map SET sync_status = 1 WHERE vendor_thing_id = ?`, sku.SkuID)
}
_, err = cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, nil, storeIdList, false, skuIDList, nil, model.SyncFlagStoreSkuModifiedMask, true, true)
_, err = cms.SyncSkus(jxcontext.AdminCtx, nil, nil, []string{"309558"}, nil, skuIDList, true)
return err
}