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/partner/delivery"
"git.rosy.net.cn/jx-callback/business/partner/putils"
"github.com/360EntSecGroup-Skylar/excelize"
"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) {
var (
jdStoreIDs = []string{"12007046"}
// jdStoreIDxipu = "12005417"
// skuMap = make(map[string]partner.StoreSkuInfo)
priceList = make(map[string][]*partner.StoreSkuInfo)
// statusList1 = make(map[string][]*partner.StoreSkuInfo)
// statusList2 = make(map[string][]*partner.StoreSkuInfo)
// stockList = make(map[string][]*partner.StoreSkuInfo)
vendorOrgCode = "320406"
// vendorOrgCode = "82029"
)
// var (
// jdStoreIDs = []string{"12007046"}
// jdStoreIDxipu = "12005417"
// skuMap = make(map[string]partner.StoreSkuInfo)
// priceList = make(map[string][]*partner.StoreSkuInfo)
// statusList1 = make(map[string][]*partner.StoreSkuInfo)
// statusList2 = make(map[string][]*partner.StoreSkuInfo)
// stockList = make(map[string][]*partner.StoreSkuInfo)
// vendorOrgCode = "320406"
// vendorOrgCode = "82029"
// )
handler := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IPurchasePlatformStoreSkuHandler)
multiHandler := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IMultipleStoresHandler)
allSkuNameInfoList, err := multiHandler.GetSkus(ctx, vendorOrgCode, 0, "")
// handler := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IPurchasePlatformStoreSkuHandler)
// multiHandler := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IMultipleStoresHandler)
// allSkuNameInfoList, err := multiHandler.GetSkus(ctx, vendorOrgCode, 0, "")
// skuInfos := storeSkuFullList2BareFilter(allSkuNameInfoList)
// outStoreSkuList, err := handler.GetStoreSkusBareInfo(ctx, vendorOrgCode, nil, 0, jdStoreIDxipu, skuInfos)
// for _, vv := range outStoreSkuList {
// skuMap[vv.VendorSkuID] = *vv
// }
for _, jdStoreID := range jdStoreIDs {
skuInfos2 := storeSkuFullList2BareFilter(allSkuNameInfoList)
outStoreSkuList2, _ := handler.GetStoreSkusBareInfo(ctx, vendorOrgCode, nil, 0, jdStoreID, skuInfos2)
for _, v := range outStoreSkuList2 {
v.VendorPrice = utils.Float64TwoInt64(float64(v.VendorPrice) * 1.05)
priceList[jdStoreID] = append(priceList[jdStoreID], v)
// a := skuMap[v.VendorSkuID]
// if &a == nil {
// continue
// }
// if a.VendorPrice != v.VendorPrice {
// v.VendorPrice = a.VendorPrice
// priceList[jdStoreID] = append(priceList[jdStoreID], v)
// }
// if a.Status != v.Status {
// v.Status = a.Status
// if v.Status == model.SkuStatusNormal {
// statusList1[jdStoreID] = append(statusList1[jdStoreID], v)
// } else {
// statusList2[jdStoreID] = append(statusList2[jdStoreID], v)
// }
// }
// if a.Stock != v.Stock {
// v.Stock = a.Stock
// stockList[jdStoreID] = append(stockList[jdStoreID], v)
// }
}
}
task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
step := batchItemList[0].(int)
switch step {
case 0:
if len(priceList) > 0 {
for k, v := range priceList {
_, 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)
if len(failedList) > 0 {
task.AddFailedList(failedList)
}
return nil, 1, err
}, ctx, task, v, 50, true)
}
}
case 1:
// if len(statusList1) > 0 {
// for k, v := range statusList1 {
// _, 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)
// if len(failedList) > 0 {
// task.AddFailedList(failedList)
// }
// return nil, 1, err
// }, ctx, task, v, 50, true)
// }
// }
case 2:
case 3:
// if len(stockList) > 0 {
// for k, v := range stockList {
// _, 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)
// if len(failedList) > 0 {
// task.AddFailedList(failedList)
// }
// return nil, 1, err
// }, ctx, task, v, 50, true)
// }
// }
}
return retVal, err
}, []int{0})
tasksch.HandleTask(task, nil, true).Run()
_, err = task.GetResult(0)
// for _, jdStoreID := range jdStoreIDs {
// skuInfos2 := storeSkuFullList2BareFilter(allSkuNameInfoList)
// outStoreSkuList2, _ := handler.GetStoreSkusBareInfo(ctx, vendorOrgCode, nil, 0, jdStoreID, skuInfos2)
// for _, v := range outStoreSkuList2 {
// v.VendorPrice = utils.Float64TwoInt64(float64(v.VendorPrice) * 1.05)
// priceList[jdStoreID] = append(priceList[jdStoreID], v)
// a := skuMap[v.VendorSkuID]
// if &a == nil {
// continue
// }
// if a.VendorPrice != v.VendorPrice {
// v.VendorPrice = a.VendorPrice
// priceList[jdStoreID] = append(priceList[jdStoreID], v)
// }
// if a.Status != v.Status {
// v.Status = a.Status
// if v.Status == model.SkuStatusNormal {
// statusList1[jdStoreID] = append(statusList1[jdStoreID], v)
// } else {
// statusList2[jdStoreID] = append(statusList2[jdStoreID], v)
// }
// }
// if a.Stock != v.Stock {
// v.Stock = a.Stock
// stockList[jdStoreID] = append(stockList[jdStoreID], v)
// }
// }
// }
// task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx,
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
// step := batchItemList[0].(int)
// switch step {
// case 0:
// if len(priceList) > 0 {
// for k, v := range priceList {
// _, 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)
// if len(failedList) > 0 {
// task.AddFailedList(failedList)
// }
// return nil, 1, err
// }, ctx, task, v, 50, true)
// }
// }
// case 1:
// if len(statusList1) > 0 {
// for k, v := range statusList1 {
// _, 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)
// if len(failedList) > 0 {
// task.AddFailedList(failedList)
// }
// return nil, 1, err
// }, ctx, task, v, 50, true)
// }
// }
// case 2:
// case 3:
// if len(stockList) > 0 {
// for k, v := range stockList {
// _, 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)
// if len(failedList) > 0 {
// task.AddFailedList(failedList)
// }
// return nil, 1, err
// }, ctx, task, v, 50, true)
// }
// }
// }
// return retVal, err
// }, []int{0})
// tasksch.HandleTask(task, nil, true).Run()
// _, err = task.GetResult(0)
// var (
// storeMaps []*model.StoreMap
// 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
}

View File

@@ -492,12 +492,20 @@ func buildCreateWareParam(storeSku *dao.StoreSkuSyncInfo) (createSkuParamWare *j
}
name := filterSensitiveWord(storeSku.Name)
wareSaveParam = &jdshopapi.WareSaveParam{
CategoryID: int(storeSku.VendorVendorCatID),
VenderID: jdshopapi.VendorID2,
Length: 100,
Wide: 100,
Height: 100,
Weight: utils.Int2Str(storeSku.Weight),
Title: name,
CategoryID: int(storeSku.VendorVendorCatID),
VenderID: jdshopapi.VendorID2,
Length: 100,
Wide: 100,
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{
Title: name,
@@ -559,6 +567,9 @@ func buildCreateWareParam(storeSku *dao.StoreSkuSyncInfo) (createSkuParamWare *j
images = append(images, img2)
images = append(images, img3)
createSkuParamWare.Images = images
//jds2图片
wareSaveParam.ImageMap.Num0000000000 = append(wareSaveParam.ImageMap.Num0000000000, img1, img2, img3)
//商品详情拼接
var desc string
if storeSku.DescImg != "" {
@@ -570,6 +581,7 @@ func buildCreateWareParam(storeSku *dao.StoreSkuSyncInfo) (createSkuParamWare *j
}
createSkuParamWare.MobileDesc = desc
createSkuParamWare.Introduction = desc
wareSaveParam.Notes = desc
//设置商品属性值
var (