- 因应jdapi.QuerySkuInfos和QueryListBySkuIds接口改变

This commit is contained in:
gazebo
2019-07-31 18:11:37 +08:00
parent d58f2879d7
commit 48132e3155
2 changed files with 21 additions and 17 deletions

View File

@@ -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

View File

@@ -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)))
}