diff --git a/business/partner/purchase/jd/sku.go b/business/partner/purchase/jd/sku.go index db977abb8..918afb78d 100644 --- a/business/partner/purchase/jd/sku.go +++ b/business/partner/purchase/jd/sku.go @@ -209,39 +209,42 @@ func (p *PurchaseHandler) CreateSku(db *dao.DaoDB, sku *model.Sku, userName stri func (p *PurchaseHandler) ReadSku(vendorSkuID string) (skuNameExt *model.SkuNameExt, err error) { jdSkuID := utils.Str2Int64(vendorSkuID) - result, _, err := api.JdAPI.QuerySkuInfos("", jdSkuID, 0, 0, false) + skuList, _, err := api.JdAPI.QuerySkuInfos(&jdapi.QuerySkuParam{ + SkuID: jdSkuID, + }) if err == nil { - if len(result) == 1 { + if len(skuList) >= 1 { skuNameExt = &model.SkuNameExt{} - if picInfo, err2 := api.JdAPI.QueryListBySkuIds([]int64{jdSkuID}, nil); err2 == nil && len(picInfo) > 0 { - skuNameExt.Img = utils.Interface2String(picInfo[0]["sourceImgUrl"]) + if imgList, err2 := api.JdAPI.QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{ + SkuIDs: []int64{jdSkuID}, + }); err2 == nil && len(imgList) > 0 { + skuNameExt.Img = imgList[0].SourceImgURL } - mapData := result[0] - skuNameStr := utils.Interface2String(mapData["skuName"]) - prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(skuNameStr) + sku := skuList[0] + prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(sku.SkuName) if name == "" { - name = skuNameStr + name = sku.SkuName unit = "份" specUnit = "g" } skuNameExt.Prefix = prefix skuNameExt.Name = name skuNameExt.Unit = unit - skuNameExt.Price = int(utils.MustInterface2Int64(mapData["skuPrice"])) + skuNameExt.Price = sku.SkuPrice skuNameExt.Skus = []*model.Sku{ &model.Sku{ SpecQuality: specQuality, SpecUnit: specUnit, - Weight: jxutils.FloatWeight2Int(float32(utils.MustInterface2Float64(mapData["weight"]))), - JdID: utils.MustInterface2Int64(mapData["skuId"]), - Status: jdStatus2jxStatus(int(utils.MustInterface2Int64(mapData[jdapi.KeyFixedStatus]))), + Weight: jxutils.FloatWeight2Int(float32(sku.Weight)), + JdID: sku.SkuID, + Status: jdStatus2jxStatus(sku.FixedStatus), Comment: comment, }, } - skuNameExt.Skus[0].ID = int(utils.Str2Int64(utils.Interface2String(mapData["outSkuId"]))) + skuNameExt.Skus[0].ID = int(utils.Str2Int64(sku.OutSkuID)) db := dao.GetDB() - shopCategories := utils.Interface2Int64List(mapData["shopCategories"]) + shopCategories := sku.ShopCategories if len(shopCategories) > 0 { skuCat := &model.SkuCategory{} skuCat.JdID = shopCategories[0] @@ -249,7 +252,7 @@ func (p *PurchaseHandler) ReadSku(vendorSkuID string) (skuNameExt *model.SkuName skuNameExt.CategoryID = skuCat.ID } } - sellCities := utils.Interface2Int64List(mapData["sellCities"]) + sellCities := sku.SellCities for _, v := range sellCities { if v == 0 { skuNameExt.IsGlobal = 1 diff --git a/business/partner/purchase/jd/sku_test.go b/business/partner/purchase/jd/sku_test.go index 9fe92089c..52169eb73 100644 --- a/business/partner/purchase/jd/sku_test.go +++ b/business/partner/purchase/jd/sku_test.go @@ -46,11 +46,12 @@ func TestReadCategories(t *testing.T) { } func TestReadSku(t *testing.T) { - skuName, err := new(PurchaseHandler).ReadSku("2018544585") + skuName, err := new(PurchaseHandler).ReadSku("2005582952") + t.Log(utils.Format4Output(skuName, false)) if err != nil { t.Fatal(err.Error()) } - if skuName.Name != "每日鲜*脊骨" || skuName.Places[0] != 420100 || skuName.Skus[0].SpecUnit != "g" { + if skuName.Name != "味事达酱香鲜特级酿造酱油" || skuName.Skus[0].SpecUnit != "ml" { t.Fatal("ReadSku return data wrong") t.Log(string(utils.MustMarshal(skuName))) }