Merge branch 'mark' of e.coding.net:rosydev/jx-callback into mark
This commit is contained in:
@@ -7,6 +7,10 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/jdapi"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
@@ -1292,16 +1296,42 @@ func SortCategorySkus(ctx *jxcontext.Context, catID int, skuIDList []int) (err e
|
||||
return err
|
||||
}
|
||||
|
||||
func GetJdUpcCodeByName(ctx *jxcontext.Context, name string) (pagedInfo *model.PagedInfo, err error) {
|
||||
pageNo := 1
|
||||
pageSize := 30
|
||||
jdSkus, totalCount, err := api.JdAPI.GetJdUpcCodeByName(name, pageNo, pageSize)
|
||||
for _, v := range jdSkus {
|
||||
fmt.Println(v)
|
||||
func GetJdUpcCodeByName(ctx *jxcontext.Context, name, upcCode string) (productInfos []*jdapi.ProductInfo, err error) {
|
||||
var (
|
||||
pageNo = 5
|
||||
pageSize = 30
|
||||
pageNoList []int
|
||||
)
|
||||
if name == "" && upcCode == "" {
|
||||
return nil, fmt.Errorf("至少输入一个条件查询,商品名或者upc码!")
|
||||
}
|
||||
pagedInfo = &model.PagedInfo{
|
||||
Data: jdSkus,
|
||||
TotalCount: totalCount,
|
||||
for i := 1; i < pageNo+1; i++ {
|
||||
pageNoList = append(pageNoList, i)
|
||||
}
|
||||
return pagedInfo, err
|
||||
task := tasksch.NewParallelTask("获取京东商品", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
pageNum := batchItemList[0].(int)
|
||||
productInfo, err := api.JdAPI.GetJdUpcCodeByName(name, upcCode, pageNum, pageSize)
|
||||
if err != nil {
|
||||
return retVal, err
|
||||
}
|
||||
if len(productInfo) > 0 {
|
||||
for _, v := range productInfo {
|
||||
productInfo2, _ := api.ShowAPI.GetProductInfoByBarCode(v.UpcCode)
|
||||
if productInfo2 != nil {
|
||||
v.Name = productInfo2.Name
|
||||
v.SpecQuality = productInfo2.SpecQuality
|
||||
v.SpecUnit = productInfo2.SpecUnit
|
||||
}
|
||||
}
|
||||
}
|
||||
retVal = productInfo
|
||||
return retVal, err
|
||||
}, pageNoList)
|
||||
tasksch.HandleTask(task, nil, true).Run()
|
||||
productInfoInterface, err := task.GetResult(0)
|
||||
for _, v := range productInfoInterface {
|
||||
productInfos = append(productInfos, v.(*jdapi.ProductInfo))
|
||||
}
|
||||
return productInfos, err
|
||||
}
|
||||
|
||||
@@ -2140,17 +2140,38 @@ func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameE
|
||||
}
|
||||
|
||||
func GetTopCategorysByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuCategory []*model.SkuCategory, err error) {
|
||||
var skuCategory2 []*model.SkuCategory
|
||||
var (
|
||||
skuCategory2 []*model.SkuCategory
|
||||
skuCategoryMap = make(map[int]*model.SkuCategory)
|
||||
limit = 10
|
||||
)
|
||||
if len(storeIDs) == 0 {
|
||||
return skuCategory, err
|
||||
}
|
||||
db := dao.GetDB()
|
||||
skuCategory, err = dao.GetTopCategorysByStoreIDs(db, storeIDs)
|
||||
if len(skuCategory) < 10 {
|
||||
skuCategory, err = dao.GetTopCategorysByStoreIDs(db, storeIDs, limit)
|
||||
//若大于等于10个就不用做下面的操作
|
||||
if len(skuCategory) >= limit {
|
||||
return skuCategory, err
|
||||
}
|
||||
if len(skuCategory) > 0 {
|
||||
for _, v := range skuCategory {
|
||||
skuCategoryMap[v.ID] = v
|
||||
}
|
||||
}
|
||||
//推荐分类,若不满10个,则填满10个
|
||||
if (len(skuCategory) < limit && len(skuCategory) > 0) || len(skuCategory) == 0 {
|
||||
skuCategory2, err = dao.GetCategories(db, -1, 1, nil)
|
||||
if len(skuCategory2) > 0 {
|
||||
for i := 0; i < 10-len(skuCategory); i++ {
|
||||
skuCategory = append(skuCategory, skuCategory2[i])
|
||||
for _, v := range skuCategory2 {
|
||||
if skuCategoryMap[v.ID] == nil {
|
||||
if !strings.Contains(v.Name, "赠品") {
|
||||
skuCategory = append(skuCategory, v)
|
||||
}
|
||||
}
|
||||
if len(skuCategory) >= limit {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user