From fa9bc1fd164919e00c238824acc51408f734d41b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 4 Dec 2020 10:07:07 +0800 Subject: [PATCH] jdshop --- business/jxstore/cms/sync_store_sku.go | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index acb68758b..b7abb412d 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -357,6 +357,37 @@ func sku2Update(vendorID int, sku *dao.StoreSkuSyncInfo, syncStatus int8) (item return item } +func bindSkuAllStore(v *dao.StoreSkuSyncInfo) (err error) { + var ( + db = dao.GetDB() + ) + storeMaps, _ := dao.GetStoresMapList(db, []int{model.VendorIDJDShop}, nil, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "", "2") + task := tasksch.NewParallelTask("京东商城门店建商品", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), jxcontext.AdminCtx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + storeMap := batchItemList[0].(*model.StoreMap) + if err = api.JdShop2API.StoreSkuBindStore(false, []string{utils.Int64ToStr(v.JdsID)}, []string{storeMap.VendorStoreID}); err == nil { + storeSkus2, _ := dao.GetStoresSkusInfo(db, []int{storeMap.StoreID}, []int{v.SkuID}) + if len(storeSkus2) > 0 { + status := storeSkus2[0].Status + stock := storeSkus2[0].Stock + price := storeSkus2[0].Price + if status == model.StoreSkuBindStatusNormal { + api.JdShop2API.StoreWareDoUpdate(status, v.JdsID, storeMap.VendorStoreID) + } + if stock != 0 { + api.JdShop2API.StoreUpdateStock(stock, v.JdsID, storeMap.VendorStoreID) + } + api.JdShop2API.StoreUpdatePrice(utils.Float64ToStr(jxutils.IntPrice2Standard(int64(price))), v.JdsID, storeMap.VendorStoreID) + } else { + return retVal, err + } + } + return retVal, err + }, storeMaps) + tasksch.HandleTask(task, nil, true).Run() + _, err = task.GetResult(0) +} + func updateStoreSku(db *dao.DaoDB, vendorID int, storeSkuList []*dao.StoreSkuSyncInfo, syncStatus int8) (num int64, err error) { if len(storeSkuList) > 0 { // defer func() { @@ -372,6 +403,9 @@ func updateStoreSku(db *dao.DaoDB, vendorID int, storeSkuList []*dao.StoreSkuSyn for k, vv := range v.StoreSkuSyncInfoJds { updateItemList[k] = sku2Update(vendorID, vv, syncStatus) err = updateJdsWareID(db, vv) + if v.VendorOrgCode == "2" { + err = bindSkuAllStore(vv) + } } num, err = dao.BatchUpdateEntityByKV(db, updateItemList) }