This commit is contained in:
苏尹岚
2020-11-25 10:52:12 +08:00
parent 8a51c158a4
commit f4f76fd6bb
2 changed files with 137 additions and 95 deletions

View File

@@ -10,7 +10,6 @@ import (
"git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin" "git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin"
"git.rosy.net.cn/jx-callback/business/partner/delivery" "git.rosy.net.cn/jx-callback/business/partner/delivery"
"git.rosy.net.cn/jx-callback/business/partner/putils"
"github.com/360EntSecGroup-Skylar/excelize" "github.com/360EntSecGroup-Skylar/excelize"
"github.com/qiniu/api.v7/storage" "github.com/qiniu/api.v7/storage"
@@ -1499,100 +1498,100 @@ func addSku(outSkuId string, cagtegoryId int, shopCategories []int64, brandId in
} }
func UploadJdsImage(ctx *jxcontext.Context) (err error) { func UploadJdsImage(ctx *jxcontext.Context) (err error) {
var ( // var (
jdStoreIDs = []string{"12007046"} // jdStoreIDs = []string{"12007046"}
// jdStoreIDxipu = "12005417" // jdStoreIDxipu = "12005417"
// skuMap = make(map[string]partner.StoreSkuInfo) // skuMap = make(map[string]partner.StoreSkuInfo)
priceList = make(map[string][]*partner.StoreSkuInfo) // priceList = make(map[string][]*partner.StoreSkuInfo)
// statusList1 = make(map[string][]*partner.StoreSkuInfo) // statusList1 = make(map[string][]*partner.StoreSkuInfo)
// statusList2 = make(map[string][]*partner.StoreSkuInfo) // statusList2 = make(map[string][]*partner.StoreSkuInfo)
// stockList = make(map[string][]*partner.StoreSkuInfo) // stockList = make(map[string][]*partner.StoreSkuInfo)
vendorOrgCode = "320406" // vendorOrgCode = "320406"
// vendorOrgCode = "82029" // vendorOrgCode = "82029"
) // )
handler := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IPurchasePlatformStoreSkuHandler) // handler := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IPurchasePlatformStoreSkuHandler)
multiHandler := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IMultipleStoresHandler) // multiHandler := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IMultipleStoresHandler)
allSkuNameInfoList, err := multiHandler.GetSkus(ctx, vendorOrgCode, 0, "") // allSkuNameInfoList, err := multiHandler.GetSkus(ctx, vendorOrgCode, 0, "")
// skuInfos := storeSkuFullList2BareFilter(allSkuNameInfoList) // skuInfos := storeSkuFullList2BareFilter(allSkuNameInfoList)
// outStoreSkuList, err := handler.GetStoreSkusBareInfo(ctx, vendorOrgCode, nil, 0, jdStoreIDxipu, skuInfos) // outStoreSkuList, err := handler.GetStoreSkusBareInfo(ctx, vendorOrgCode, nil, 0, jdStoreIDxipu, skuInfos)
// for _, vv := range outStoreSkuList { // for _, vv := range outStoreSkuList {
// skuMap[vv.VendorSkuID] = *vv // skuMap[vv.VendorSkuID] = *vv
// } // }
for _, jdStoreID := range jdStoreIDs { // for _, jdStoreID := range jdStoreIDs {
skuInfos2 := storeSkuFullList2BareFilter(allSkuNameInfoList) // skuInfos2 := storeSkuFullList2BareFilter(allSkuNameInfoList)
outStoreSkuList2, _ := handler.GetStoreSkusBareInfo(ctx, vendorOrgCode, nil, 0, jdStoreID, skuInfos2) // outStoreSkuList2, _ := handler.GetStoreSkusBareInfo(ctx, vendorOrgCode, nil, 0, jdStoreID, skuInfos2)
for _, v := range outStoreSkuList2 { // for _, v := range outStoreSkuList2 {
v.VendorPrice = utils.Float64TwoInt64(float64(v.VendorPrice) * 1.05) // v.VendorPrice = utils.Float64TwoInt64(float64(v.VendorPrice) * 1.05)
priceList[jdStoreID] = append(priceList[jdStoreID], v) // priceList[jdStoreID] = append(priceList[jdStoreID], v)
// a := skuMap[v.VendorSkuID] // a := skuMap[v.VendorSkuID]
// if &a == nil { // if &a == nil {
// continue // continue
// } // }
// if a.VendorPrice != v.VendorPrice { // if a.VendorPrice != v.VendorPrice {
// v.VendorPrice = a.VendorPrice // v.VendorPrice = a.VendorPrice
// priceList[jdStoreID] = append(priceList[jdStoreID], v) // priceList[jdStoreID] = append(priceList[jdStoreID], v)
// } // }
// if a.Status != v.Status { // if a.Status != v.Status {
// v.Status = a.Status // v.Status = a.Status
// if v.Status == model.SkuStatusNormal { // if v.Status == model.SkuStatusNormal {
// statusList1[jdStoreID] = append(statusList1[jdStoreID], v) // statusList1[jdStoreID] = append(statusList1[jdStoreID], v)
// } else { // } else {
// statusList2[jdStoreID] = append(statusList2[jdStoreID], v) // statusList2[jdStoreID] = append(statusList2[jdStoreID], v)
// } // }
// } // }
// if a.Stock != v.Stock { // if a.Stock != v.Stock {
// v.Stock = a.Stock // v.Stock = a.Stock
// stockList[jdStoreID] = append(stockList[jdStoreID], v) // stockList[jdStoreID] = append(stockList[jdStoreID], v)
// } // }
} // }
} // }
task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx, // task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { // func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
step := batchItemList[0].(int) // step := batchItemList[0].(int)
switch step { // switch step {
case 0: // case 0:
if len(priceList) > 0 { // if len(priceList) > 0 {
for k, v := range priceList { // for k, v := range priceList {
_, err = putils.FreeBatchStoreSkuInfo("更新门店商品价格", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) { // _, err = putils.FreeBatchStoreSkuInfo("更新门店商品价格", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) {
failedList, err := handler.UpdateStoreSkusPrice(ctx, vendorOrgCode, 0, k, batchedStoreSkuList) // failedList, err := handler.UpdateStoreSkusPrice(ctx, vendorOrgCode, 0, k, batchedStoreSkuList)
if len(failedList) > 0 { // if len(failedList) > 0 {
task.AddFailedList(failedList) // task.AddFailedList(failedList)
} // }
return nil, 1, err // return nil, 1, err
}, ctx, task, v, 50, true) // }, ctx, task, v, 50, true)
} // }
} // }
case 1: // case 1:
// if len(statusList1) > 0 { // if len(statusList1) > 0 {
// for k, v := range statusList1 { // for k, v := range statusList1 {
// _, err = putils.FreeBatchStoreSkuInfo("更新门店商品状态", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) { // _, err = putils.FreeBatchStoreSkuInfo("更新门店商品状态", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) {
// failedList, err := handler.UpdateStoreSkusStatus(ctx, vendorOrgCode, 0, k, batchedStoreSkuList, batchedStoreSkuList[0].Status) // failedList, err := handler.UpdateStoreSkusStatus(ctx, vendorOrgCode, 0, k, batchedStoreSkuList, batchedStoreSkuList[0].Status)
// if len(failedList) > 0 { // if len(failedList) > 0 {
// task.AddFailedList(failedList) // task.AddFailedList(failedList)
// } // }
// return nil, 1, err // return nil, 1, err
// }, ctx, task, v, 50, true) // }, ctx, task, v, 50, true)
// } // }
// } // }
case 2: // case 2:
case 3: // case 3:
// if len(stockList) > 0 { // if len(stockList) > 0 {
// for k, v := range stockList { // for k, v := range stockList {
// _, err = putils.FreeBatchStoreSkuInfo("更新门店商品库存", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) { // _, err = putils.FreeBatchStoreSkuInfo("更新门店商品库存", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) {
// failedList, err := handler.UpdateStoreSkusStock(ctx, vendorOrgCode, 0, k, batchedStoreSkuList) // failedList, err := handler.UpdateStoreSkusStock(ctx, vendorOrgCode, 0, k, batchedStoreSkuList)
// if len(failedList) > 0 { // if len(failedList) > 0 {
// task.AddFailedList(failedList) // task.AddFailedList(failedList)
// } // }
// return nil, 1, err // return nil, 1, err
// }, ctx, task, v, 50, true) // }, ctx, task, v, 50, true)
// } // }
// } // }
} // }
return retVal, err // return retVal, err
}, []int{0}) // }, []int{0})
tasksch.HandleTask(task, nil, true).Run() // tasksch.HandleTask(task, nil, true).Run()
_, err = task.GetResult(0) // _, err = task.GetResult(0)
// var ( // var (
// storeMaps []*model.StoreMap // storeMaps []*model.StoreMap
// db = dao.GetDB() // db = dao.GetDB()
@@ -1737,6 +1736,37 @@ func UploadJdsImage(ctx *jxcontext.Context) (err error) {
// } // }
// } // }
// } // }
var (
db = dao.GetDB()
)
catResult, _ := api.JdShopAPI.FindShopCategories()
for _, v := range catResult {
var skuCat *model.SkuCategory
sql := `
SELECT *
FROM sku_category
WHERE deleted_at = ?
AND name = ?
`
sqlParams := []interface{}{utils.DefaultTimeValue, v.Name}
err = dao.GetRow(db, &skuCat, sql, sqlParams)
if skuCat != nil {
var storeSkuCat *model.StoreSkuCategoryMap
sql2 := `
SELECT *
FROM store_sku_category_map
WHERE store_id = ?
AND deleted_at = ?
AND category_id = ?
`
sqlParams2 := []interface{}{102919, utils.DefaultTimeValue, skuCat.ID}
err = dao.GetRow(db, &storeSkuCat, sql2, sqlParams2)
if storeSkuCat != nil {
storeSkuCat.JdsID = v.CID
dao.UpdateEntity(db, storeSkuCat, "JdsID")
}
}
}
return err return err
} }

View File

@@ -492,12 +492,20 @@ func buildCreateWareParam(storeSku *dao.StoreSkuSyncInfo) (createSkuParamWare *j
} }
name := filterSensitiveWord(storeSku.Name) name := filterSensitiveWord(storeSku.Name)
wareSaveParam = &jdshopapi.WareSaveParam{ wareSaveParam = &jdshopapi.WareSaveParam{
CategoryID: int(storeSku.VendorVendorCatID), Title: name,
VenderID: jdshopapi.VendorID2, CategoryID: int(storeSku.VendorVendorCatID),
Length: 100, VenderID: jdshopapi.VendorID2,
Wide: 100, Length: 100,
Height: 100, Wide: 100,
Weight: utils.Int2Str(storeSku.Weight), Height: 100,
Weight: utils.Int2Str(storeSku.Weight),
BrandID: jdshopapi.BrandIdNO,
WareStatus: 8, //上架待审核
ShopCategorys: []int{vendorCatID},
PromiseID: -1,
MultiCateProps: []interface{}{},
PropsSet: []interface{}{},
SaleAttrs: []interface{}{},
} }
createSkuParamWare = &jdshopapi.CreateSkuParamWare{ createSkuParamWare = &jdshopapi.CreateSkuParamWare{
Title: name, Title: name,
@@ -559,6 +567,9 @@ func buildCreateWareParam(storeSku *dao.StoreSkuSyncInfo) (createSkuParamWare *j
images = append(images, img2) images = append(images, img2)
images = append(images, img3) images = append(images, img3)
createSkuParamWare.Images = images createSkuParamWare.Images = images
//jds2图片
wareSaveParam.ImageMap.Num0000000000 = append(wareSaveParam.ImageMap.Num0000000000, img1, img2, img3)
//商品详情拼接 //商品详情拼接
var desc string var desc string
if storeSku.DescImg != "" { if storeSku.DescImg != "" {
@@ -570,6 +581,7 @@ func buildCreateWareParam(storeSku *dao.StoreSkuSyncInfo) (createSkuParamWare *j
} }
createSkuParamWare.MobileDesc = desc createSkuParamWare.MobileDesc = desc
createSkuParamWare.Introduction = desc createSkuParamWare.Introduction = desc
wareSaveParam.Notes = desc
//设置商品属性值 //设置商品属性值
var ( var (