- jd.setSkuNameListPic
This commit is contained in:
@@ -595,32 +595,11 @@ func (p *PurchaseHandler) GetSkus(ctx *jxcontext.Context, skuID int, vendorSkuID
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if len(skuList) > 0 {
|
if len(skuList) > 0 {
|
||||||
jdSkuIDs := make([]int64, len(skuList))
|
|
||||||
batchSkuNameList := make([]*partner.SkuNameInfo, len(skuList))
|
batchSkuNameList := make([]*partner.SkuNameInfo, len(skuList))
|
||||||
for k, v := range skuList {
|
for k, v := range skuList {
|
||||||
batchSkuNameList[k] = vendorSku2Jx(v)
|
batchSkuNameList[k] = vendorSku2Jx(v)
|
||||||
jdSkuIDs[k] = v.SkuID
|
|
||||||
}
|
|
||||||
imgMap := make(map[int64]*jdapi.ImgHandleQueryResult)
|
|
||||||
if imgList, err2 := api.JdAPI.QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{
|
|
||||||
SkuIDs: jdSkuIDs,
|
|
||||||
}); err2 == nil {
|
|
||||||
for _, v := range imgList {
|
|
||||||
if imgMap[v.SkuID] == nil || imgMap[v.SkuID].IsMain < v.IsMain || imgMap[v.SkuID].ImgType < v.ImgType {
|
|
||||||
imgMap[v.SkuID] = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for _, v := range batchSkuNameList {
|
|
||||||
jdSkuID := utils.Str2Int64(v.SkuList[0].VendorSkuID)
|
|
||||||
if imgInfo := imgMap[jdSkuID]; imgInfo != nil {
|
|
||||||
v.PictureList = []string{imgInfo.SourceImgURL}
|
|
||||||
} else {
|
|
||||||
// if imgList, err2 := api.JdAPI.GetSkuPageImageInfo(jdSkuID); err2 == nil && len(imgList) > 0 {
|
|
||||||
// v.PictureList = []string{imgList[0].Big}
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
setSkuNameListPic(batchSkuNameList)
|
||||||
skuNameList = append(skuNameList, batchSkuNameList...)
|
skuNameList = append(skuNameList, batchSkuNameList...)
|
||||||
}
|
}
|
||||||
if len(skuList) < param.PageSize {
|
if len(skuList) < param.PageSize {
|
||||||
@@ -631,6 +610,65 @@ func (p *PurchaseHandler) GetSkus(ctx *jxcontext.Context, skuID int, vendorSkuID
|
|||||||
return skuNameList, err
|
return skuNameList, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setSkuNameListPic(skuNameList []*partner.SkuNameInfo) []*partner.SkuNameInfo {
|
||||||
|
jdSkuIDs := make([]int64, len(skuNameList))
|
||||||
|
for k, v := range skuNameList {
|
||||||
|
jdSkuIDs[k] = utils.Str2Int64(v.SkuList[0].VendorSkuID)
|
||||||
|
}
|
||||||
|
|
||||||
|
imgMap := make(map[int64]*jdapi.ImgHandleQueryResult)
|
||||||
|
if imgList, err2 := api.JdAPI.QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{
|
||||||
|
SkuIDs: jdSkuIDs,
|
||||||
|
}); err2 == nil {
|
||||||
|
for _, v := range imgList {
|
||||||
|
if v.ImgType == jdapi.ImgTypeMain {
|
||||||
|
imgResult := imgMap[v.SkuID]
|
||||||
|
if imgResult == nil || imgResult.IsMain < v.IsMain {
|
||||||
|
imgMap[v.SkuID] = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用扒页面方式获取商品图片
|
||||||
|
if false {
|
||||||
|
var leftJdSkuIDs []int64
|
||||||
|
for _, v := range jdSkuIDs {
|
||||||
|
if imgMap[v] == nil {
|
||||||
|
leftJdSkuIDs = append(leftJdSkuIDs, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
task := tasksch.NewParallelTask("jd setSkuNameListPic", nil, jxcontext.AdminCtx,
|
||||||
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
|
jdSkuID := batchItemList[0].(int64)
|
||||||
|
imgList, err := api.JdAPI.GetSkuPageImageInfo(jdSkuID)
|
||||||
|
if err == nil && len(imgList) > 0 {
|
||||||
|
retVal = [][]string{
|
||||||
|
[]string{utils.Int64ToStr(jdSkuID), imgList[0].Big},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return retVal, err
|
||||||
|
}, leftJdSkuIDs)
|
||||||
|
task.Run()
|
||||||
|
if resultList, err := task.GetResult(0); err == nil {
|
||||||
|
for _, v := range resultList {
|
||||||
|
strList := v.([]string)
|
||||||
|
imgMap[utils.Str2Int64(strList[0])] = &jdapi.ImgHandleQueryResult{
|
||||||
|
SourceImgURL: strList[1],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置商品图片
|
||||||
|
for _, v := range skuNameList {
|
||||||
|
if imgResult := imgMap[utils.Str2Int64(v.SkuList[0].VendorSkuID)]; imgResult != nil {
|
||||||
|
v.PictureList = []string{imgResult.SourceImgURL}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return skuNameList
|
||||||
|
}
|
||||||
|
|
||||||
func vendorSku2Jx(vendorSku *jdapi.SkuMain) (skuName *partner.SkuNameInfo) {
|
func vendorSku2Jx(vendorSku *jdapi.SkuMain) (skuName *partner.SkuNameInfo) {
|
||||||
prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(vendorSku.SkuName)
|
prefix, name, comment, specUnit, unit, specQuality := jxutils.SplitSkuName(vendorSku.SkuName)
|
||||||
weight := int(vendorSku.Weight * 1000)
|
weight := int(vendorSku.Weight * 1000)
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ func TestGetVendorCategories(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGetSkus(t *testing.T) {
|
func TestGetSkus(t *testing.T) {
|
||||||
skuNameList, err := curPurchaseHandler.GetSkus(jxcontext.AdminCtx, 0, "", "")
|
skuNameList, err := curPurchaseHandler.GetSkus(jxcontext.AdminCtx, 0, "2023747677", "")
|
||||||
t.Log(utils.Format4Output(skuNameList, false))
|
t.Log(utils.Format4Output(skuNameList, false))
|
||||||
t.Log(len(skuNameList))
|
t.Log(len(skuNameList))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -3,11 +3,10 @@ package jd
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/putils"
|
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/partner/putils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestGetStoreSkusBareInfo(t *testing.T) {
|
func TestGetStoreSkusBareInfo(t *testing.T) {
|
||||||
|
|||||||
Reference in New Issue
Block a user