From 4492f9990fdad9c9ce176811979d2874594d4c07 Mon Sep 17 00:00:00 2001 From: gazebo Date: Sun, 21 Jul 2019 16:20:23 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E9=80=82=E9=85=8D=E6=96=B0=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0API=E5=AF=B9=E4=BA=8E=E9=97=A8=E5=BA=97=E5=95=86?= =?UTF-8?q?=E5=93=81=E6=93=8D=E4=BD=9C=E9=83=A8=E5=88=86=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E6=97=B6=E8=BF=94=E5=9B=9E=E8=AF=A6=E6=83=85=E7=9A=84=E6=94=B9?= =?UTF-8?q?=E5=8A=A8=EF=BC=88=E6=B2=A1=E6=9C=89=E5=AE=9E=E7=8E=B0=E5=A4=84?= =?UTF-8?q?=E7=90=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 1 - business/partner/purchase/ebai/order_test.go | 2 +- business/partner/purchase/ebai/store_sku.go | 2 +- business/partner/purchase/ebai/store_sku2.go | 54 +++++++-------- business/partner/purchase/jd/store_sku2.go | 1 - business/partner/purchase/mtwm/mtwm.go | 6 +- business/partner/purchase/mtwm/store_sku.go | 11 ++- business/partner/purchase/mtwm/store_sku2.go | 70 ++++++++++---------- 8 files changed, 78 insertions(+), 69 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 27bb8517c..e1e3afab8 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -328,7 +328,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo case 1: if len(createList) > 0 { _, err = putils.FreeBatchStoreSkuSyncInfo(func(batchedStoreSkuList []*dao.StoreSkuSyncInfo) (result interface{}, err error) { - globals.SugarLogger.Debug(utils.Format4Output(batchedStoreSkuList, false)) if err = singleStoreHandler.CreateStoreSkus(ctx, storeID, vendorStoreID, batchedStoreSkuList); err == nil { _, err = updateStoreSku(dao.GetDB(), vendorID, batchedStoreSkuList, model.SyncFlagNewMask) } diff --git a/business/partner/purchase/ebai/order_test.go b/business/partner/purchase/ebai/order_test.go index d5081c08d..2349cfadc 100644 --- a/business/partner/purchase/ebai/order_test.go +++ b/business/partner/purchase/ebai/order_test.go @@ -18,7 +18,7 @@ func TestGetOrder4PartRefund(t *testing.T) { } func TestListOrders(t *testing.T) { - order, err := CurPurchaseHandler.ListOrders(jxcontext.AdminCtx, nil, utils.GetCurDate(), utils.DefaultTimeValue, "") + order, err := CurPurchaseHandler.ListOrders(jxcontext.AdminCtx, nil, utils.GetCurDate(), "") if err != nil { t.Fatal(err.Error()) } else { diff --git a/business/partner/purchase/ebai/store_sku.go b/business/partner/purchase/ebai/store_sku.go index 84192876f..1030b4cb8 100644 --- a/business/partner/purchase/ebai/store_sku.go +++ b/business/partner/purchase/ebai/store_sku.go @@ -241,7 +241,7 @@ func (p *PurchaseHandler) syncStoreSkus(ctx *jxcontext.Context, parentTask tasks if storeSku.NameID == 0 || storeSku.EbaiSyncStatus&model.SyncFlagDeletedMask != 0 { if storeSku.EbaiSyncStatus&model.SyncFlagNewMask == 0 && !jxutils.IsEmptyID(storeSku.EbaiID) { if globals.EnableEbaiStoreWrite { - if err = api.EbaiAPI.SkuDelete(strStoreID, utils.Int64ToStr(storeSku.EbaiID)); ebaiapi.IsErrSkuNotExist(err) { + if _, err = api.EbaiAPI.SkuDelete(strStoreID, []int64{storeSku.EbaiID}, nil); ebaiapi.IsErrSkuNotExist(err) { err = nil } } diff --git a/business/partner/purchase/ebai/store_sku2.go b/business/partner/purchase/ebai/store_sku2.go index a655ddbe7..39c680a4c 100644 --- a/business/partner/purchase/ebai/store_sku2.go +++ b/business/partner/purchase/ebai/store_sku2.go @@ -1,9 +1,6 @@ package ebai import ( - "fmt" - "strings" - "git.rosy.net.cn/baseapi/platformapi/ebaiapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" @@ -104,62 +101,67 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (err error) { if globals.EnableEbaiStoreWrite { - err = api.EbaiAPI.SkuDelete(utils.Int2Str(storeID), strings.Join(partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDList(), ",")) + _, err = api.EbaiAPI.SkuDelete(utils.Int2Str(storeID), partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDIntList(), nil) } return err } func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (err error) { - var validSkus, invalidSkus []string + var validSkus, invalidSkus []int64 for _, storeSku := range storeSkuList { if storeSku.Status == model.SkuStatusNormal { - validSkus = append(validSkus, storeSku.VendorSkuID) + validSkus = append(validSkus, utils.Str2Int64(storeSku.VendorSkuID)) } else { - invalidSkus = append(invalidSkus, storeSku.VendorSkuID) + invalidSkus = append(invalidSkus, utils.Str2Int64(storeSku.VendorSkuID)) } } if globals.EnableEbaiStoreWrite { if len(invalidSkus) > 1 { - err = api.EbaiAPI.SkuOffline(utils.Int2Str(storeID), strings.Join(invalidSkus, ",")) + _, err = api.EbaiAPI.SkuOffline(utils.Int2Str(storeID), invalidSkus, nil, nil) } else if len(invalidSkus) == 1 { - err = api.EbaiAPI.SkuOfflineOne(utils.Int2Str(storeID), utils.Str2Int64(invalidSkus[0]), "", "") + err = api.EbaiAPI.SkuOfflineOne(utils.Int2Str(storeID), invalidSkus[0], "", "") } if err == nil { if len(validSkus) > 1 { - err = api.EbaiAPI.SkuOnline(utils.Int2Str(storeID), strings.Join(validSkus, ",")) + _, err = api.EbaiAPI.SkuOnline(utils.Int2Str(storeID), validSkus, nil, nil) } else if len(validSkus) == 1 { - err = api.EbaiAPI.SkuOnlineOne(utils.Int2Str(storeID), utils.Str2Int64(validSkus[0]), "", "") + err = api.EbaiAPI.SkuOnlineOne(utils.Int2Str(storeID), validSkus[0], "", "") } } } return err } -func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (err error) { - skuPriceList := make([]string, len(storeSkuList)) +func StoreSkuInfoList2Ebai(storeSkuList []*partner.StoreSkuInfo) (outList ebaiapi.ShopSkuInfoList) { + outList = make(ebaiapi.ShopSkuInfoList, len(storeSkuList)) for k, v := range storeSkuList { - skuPriceList[k] = fmt.Sprintf("%s:%d", v.VendorSkuID, v.VendorPrice) + outList[k] = &ebaiapi.ShopSkuInfo{ + SkuID: utils.Str2Int64WithDefault(v.VendorSkuID, 0), + // CustomSkuID: utils.Int2Str(v.SkuID), + SalePrice: v.VendorPrice, + Stock: v.Stock, + } } + return outList +} + +func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (err error) { if globals.EnableEbaiStoreWrite { - if len(skuPriceList) > 1 { - err = api.EbaiAPI.SkuPriceUpdateBatch(utils.Int2Str(storeID), strings.Join(skuPriceList, ";"), "", "") - } else if len(skuPriceList) == 1 { - err = api.EbaiAPI.SkuPriceUpdateOne(utils.Int2Str(storeID), skuPriceList[0], "", "") + if len(storeSkuList) > 1 { + _, err = api.EbaiAPI.SkuPriceUpdateBatch(utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList), ebaiapi.SkuIDTypeSkuID) + } else if len(storeSkuList) == 1 { + err = api.EbaiAPI.SkuPriceUpdateOne(utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList)[0]) } } return err } func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (err error) { - skuStockList := make([]string, len(storeSkuList)) - for k, v := range storeSkuList { - skuStockList[k] = fmt.Sprintf("%s:%d", v.VendorSkuID, v.Stock) - } if globals.EnableEbaiStoreWrite { - if len(skuStockList) > 1 { - err = api.EbaiAPI.SkuStockUpdateBatch(utils.Int2Str(storeID), strings.Join(skuStockList, ";"), "", "") - } else if len(skuStockList) == 1 { - err = api.EbaiAPI.SkuStockUpdateOne(utils.Int2Str(storeID), skuStockList[0], "", "") + if len(storeSkuList) > 1 { + _, err = api.EbaiAPI.SkuStockUpdateBatch(utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList), ebaiapi.SkuIDTypeSkuID) + } else if len(storeSkuList) == 1 { + err = api.EbaiAPI.SkuStockUpdateOne(utils.Int2Str(storeID), StoreSkuInfoList2Ebai(storeSkuList)[0]) } } return err diff --git a/business/partner/purchase/jd/store_sku2.go b/business/partner/purchase/jd/store_sku2.go index fb458e0dc..254c321e9 100644 --- a/business/partner/purchase/jd/store_sku2.go +++ b/business/partner/purchase/jd/store_sku2.go @@ -41,7 +41,6 @@ func (p *PurchaseHandler) GetStoreSkusBareInfo(ctx *jxcontext.Context, parentTas stockInfo, err = api.JdAPI.QueryOpenUseable(batchSkuInfoList) } else { priceInfo, err = api.JdAPI.GetStationInfoList(vendorStoreID, batchSkuList) - // globals.SugarLogger.Debug(utils.Format4Output(priceInfo, false)) } return nil, err }, []int{0, 1}) diff --git a/business/partner/purchase/mtwm/mtwm.go b/business/partner/purchase/mtwm/mtwm.go index 4f7b0f314..36184dc7c 100644 --- a/business/partner/purchase/mtwm/mtwm.go +++ b/business/partner/purchase/mtwm/mtwm.go @@ -153,10 +153,10 @@ func bizStatusJX2Mtwm(status int) (openLevel, online int) { } func skuStatusJX2Mtwm(status int) int { - if status == 1 { - return 0 + if status == model.SkuStatusNormal { + return mtwmapi.SellStatusOnline } - return 1 + return mtwmapi.SellStatusOffline } func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error) { diff --git a/business/partner/purchase/mtwm/store_sku.go b/business/partner/purchase/mtwm/store_sku.go index 1bacfc1ec..351394694 100644 --- a/business/partner/purchase/mtwm/store_sku.go +++ b/business/partner/purchase/mtwm/store_sku.go @@ -361,7 +361,16 @@ func (p *PurchaseHandler) syncStoreSkus(ctx *jxcontext.Context, parentTask tasks globals.SugarLogger.Debugf("mtwm SyncStoreSkus4 skuID:%d, SkuSyncStatus:%d", skuItem.SkuID, skuItem.StoreSkuSyncStatus) sellStatus := skuStatusJX2Mtwm(jxutils.MergeSkuStatus(skuItem.Status, skuItem.StoreSkuStatus)) if globals.EnableMtwmStoreWrite { - if err2 := api.MtwmAPI.RetailSkuSellStatus(vendorStoreID, foodDataList, sellStatus); err2 != nil { + if _, err2 := api.MtwmAPI.RetailSkuSellStatus(vendorStoreID, []*mtwmapi.BareStoreFoodInfo{ + &mtwmapi.BareStoreFoodInfo{ + AppFoodCode: utils.Int2Str(skuItem.SkuID), + Skus: []*mtwmapi.BareStoreSkuInfo{ + &mtwmapi.BareStoreSkuInfo{ + SkuID: utils.Int2Str(skuItem.SkuID), + }, + }, + }, + }, sellStatus); err2 != nil { err = err2 } } diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index 01d5aecca..ca797a8c7 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -13,6 +13,12 @@ import ( "git.rosy.net.cn/jx-callback/globals/api" ) +const ( + updateTypeStock = iota + updateTypeStatus + updateTypePrice +) + func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) { switch funcID { case partner.FuncUpdateStoreSkusStock, partner.FuncUpdateStoreSkusStatus, partner.FuncUpdateStoreSkusPrice: @@ -145,7 +151,12 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v } } if globals.EnableMtwmStoreWrite { - err = api.MtwmAPI.RetailBatchInitData(vendorStoreID, foodDataList) + if len(foodDataList) == 1 { + foodDataList[0]["skus"] = string(utils.MustMarshal(foodDataList[0]["skus"])) + err = api.MtwmAPI.RetailInitData(vendorStoreID, utils.Int2Str(storeSkuList[0].SkuID), foodDataList[0]) + } else if len(foodDataList) > 0 { + _, err = api.MtwmAPI.RetailBatchInitData(vendorStoreID, foodDataList) + } } if err == nil { for _, storeSku := range storeSkuList { @@ -169,8 +180,7 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v return err } -func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (err error) { - var validSkus, invalidSkus []*mtwmapi.BareStoreFoodInfo +func storeSku2Mtwm(storeSkuList []*partner.StoreSkuInfo, updateType int) (validSkus, invalidSkus []*mtwmapi.BareStoreFoodInfo) { for _, storeSku := range storeSkuList { skuInfo := &mtwmapi.BareStoreFoodInfo{ AppFoodCode: storeSku.VendorSkuID, @@ -180,65 +190,55 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, storeID }, }, } - if storeSku.Status == model.SkuStatusNormal { + if updateType == updateTypeStock { + if storeSku.Stock == model.MaxStoreSkuStockQty { + skuInfo.Skus[0].Stock = "*" + } else { + skuInfo.Skus[0].Stock = utils.Int2Str(storeSku.Stock) + } + } else if updateType == updateTypePrice { + skuInfo.Skus[0].Price = jxutils.IntPrice2StandardString(storeSku.VendorPrice) + } + if updateType != updateTypeStatus || storeSku.Status == model.SkuStatusNormal { validSkus = append(validSkus, skuInfo) } else { invalidSkus = append(invalidSkus, skuInfo) } } + return validSkus, invalidSkus +} + +func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (err error) { + validSkus, invalidSkus := storeSku2Mtwm(storeSkuList, updateTypeStatus) if globals.EnableMtwmStoreWrite { if len(invalidSkus) > 0 { - err = api.MtwmAPI.RetailSkuSellStatus2(vendorStoreID, invalidSkus, 1) + _, err = api.MtwmAPI.RetailSkuSellStatus(vendorStoreID, invalidSkus, mtwmapi.SellStatusOffline) } if err == nil && len(validSkus) > 0 { - err = api.MtwmAPI.RetailSkuSellStatus2(vendorStoreID, validSkus, 0) + _, err = api.MtwmAPI.RetailSkuSellStatus(vendorStoreID, validSkus, mtwmapi.SellStatusOnline) } } return err } func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (err error) { - var priceList []*mtwmapi.BareStoreFoodInfo - for _, storeSku := range storeSkuList { - skuInfo := &mtwmapi.BareStoreFoodInfo{ - AppFoodCode: storeSku.VendorSkuID, - Skus: []*mtwmapi.BareStoreSkuInfo{ - &mtwmapi.BareStoreSkuInfo{ - SkuID: storeSku.VendorSkuID, - Price: jxutils.IntPrice2StandardString(storeSku.VendorPrice), - }, - }, - } - priceList = append(priceList, skuInfo) - } + priceList, _ := storeSku2Mtwm(storeSkuList, updateTypePrice) if globals.EnableMtwmStoreWrite { - err = api.MtwmAPI.RetailSkuPrice(vendorStoreID, priceList) + _, err = api.MtwmAPI.RetailSkuPrice(vendorStoreID, priceList) } return err } func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (err error) { - var stockList []*mtwmapi.BareStoreFoodInfo - for _, storeSku := range storeSkuList { - skuInfo := &mtwmapi.BareStoreFoodInfo{ - AppFoodCode: storeSku.VendorSkuID, - Skus: []*mtwmapi.BareStoreSkuInfo{ - &mtwmapi.BareStoreSkuInfo{ - SkuID: storeSku.VendorSkuID, - Stock: utils.Int2Str(storeSku.Stock), - }, - }, - } - stockList = append(stockList, skuInfo) - } + stockList, _ := storeSku2Mtwm(storeSkuList, updateTypeStock) if globals.EnableMtwmStoreWrite { - err = api.MtwmAPI.RetailSkuStock(vendorStoreID, stockList) + _, err = api.MtwmAPI.RetailSkuStock(vendorStoreID, stockList) } return err } func mtwmSkuStatus2Jx(mtwmSkuStatus int) (jxSkuStatus int) { - if mtwmSkuStatus == 0 { + if mtwmSkuStatus == mtwmapi.SellStatusOnline { jxSkuStatus = model.SkuStatusNormal } else { jxSkuStatus = model.SkuStatusDontSale