This commit is contained in:
苏尹岚
2020-12-04 14:25:22 +08:00
parent dd5f3c38ac
commit ea6a871246
3 changed files with 234 additions and 236 deletions

View File

@@ -357,38 +357,6 @@ func sku2Update(vendorID int, sku *dao.StoreSkuSyncInfo, syncStatus int8) (item
return item return item
} }
func bindSkuAllStore(v *dao.StoreSkuSyncInfo) (err error) {
var (
db = dao.GetDB()
)
storeMaps, _ := dao.GetStoresMapList(db, []int{model.VendorIDJDShop}, nil, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "", "2")
task := tasksch.NewParallelTask("京东商城门店建商品", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), jxcontext.AdminCtx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
storeMap := batchItemList[0].(*model.StoreMap)
if err = api.JdShop2API.StoreSkuBindStore(false, []string{v.VendorSkuID}, []string{storeMap.VendorStoreID}); err == nil {
storeSkus2, _ := dao.GetStoresSkusInfo(db, []int{storeMap.StoreID}, []int{v.SkuID})
if len(storeSkus2) > 0 {
status := storeSkus2[0].Status
stock := storeSkus2[0].Stock
price := storeSkus2[0].Price
if status == model.StoreSkuBindStatusNormal {
api.JdShop2API.StoreWareDoUpdate(status, utils.Str2Int64(v.VendorSkuID), storeMap.VendorStoreID)
}
if stock != 0 {
api.JdShop2API.StoreUpdateStock(stock, utils.Str2Int64(v.VendorSkuID), storeMap.VendorStoreID)
}
api.JdShop2API.StoreUpdatePrice(utils.Float64ToStr(jxutils.IntPrice2Standard(int64(price))), utils.Str2Int64(v.VendorSkuID), storeMap.VendorStoreID)
} else {
return retVal, err
}
}
return retVal, err
}, storeMaps)
tasksch.HandleTask(task, nil, true).Run()
_, err = task.GetResult(0)
return err
}
func updateStoreSku(db *dao.DaoDB, vendorID int, storeSkuList []*dao.StoreSkuSyncInfo, syncStatus int8) (num int64, err error) { func updateStoreSku(db *dao.DaoDB, vendorID int, storeSkuList []*dao.StoreSkuSyncInfo, syncStatus int8) (num int64, err error) {
if len(storeSkuList) > 0 { if len(storeSkuList) > 0 {
// defer func() { // defer func() {
@@ -404,9 +372,6 @@ func updateStoreSku(db *dao.DaoDB, vendorID int, storeSkuList []*dao.StoreSkuSyn
for k, vv := range v.StoreSkuSyncInfoJds { for k, vv := range v.StoreSkuSyncInfoJds {
updateItemList[k] = sku2Update(vendorID, vv, syncStatus) updateItemList[k] = sku2Update(vendorID, vv, syncStatus)
err = updateJdsWareID(db, vv) err = updateJdsWareID(db, vv)
if v.VendorOrgCode == "2" {
err = bindSkuAllStore(vv)
}
} }
num, err = dao.BatchUpdateEntityByKV(db, updateItemList) num, err = dao.BatchUpdateEntityByKV(db, updateItemList)
} }
@@ -501,9 +466,9 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
var failedList []*partner.StoreSkuInfoWithErr var failedList []*partner.StoreSkuInfoWithErr
for _, sku := range skus { for _, sku := range skus {
if vendorID == model.VendorIDJDShop && storeID != model.JdShopMainStoreID && storeID != model.JdShopMainStoreID2 { if vendorID == model.VendorIDJDShop && storeID != model.JdShopMainStoreID && storeID != model.JdShopMainStoreID2 {
if model.IsSyncStatusNew(sku.SkuSyncStatus) { // if model.IsSyncStatusNew(sku.SkuSyncStatus) {
sku.SkuSyncStatus = sku.SkuSyncStatus - model.SyncFlagNewMask // sku.SkuSyncStatus = sku.SkuSyncStatus - model.SyncFlagNewMask
} // }
storeDetail2, _ := dao.GetStoreDetail(db, storeID, vendorID, sku.VendorOrgCode) storeDetail2, _ := dao.GetStoreDetail(db, storeID, vendorID, sku.VendorOrgCode)
vendorStoreID = storeDetail2.VendorStoreID vendorStoreID = storeDetail2.VendorStoreID
} }

View File

@@ -1767,30 +1767,30 @@ func UploadJdsImage(ctx *jxcontext.Context) (err error) {
func(task2 *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { func(task2 *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
v := batchItemList[0].(*model.StoreSkuBind) v := batchItemList[0].(*model.StoreSkuBind)
if v.JdsID != 0 && v.SubStoreID == 0 { if v.JdsID != 0 && v.SubStoreID == 0 {
task := tasksch.NewParallelTask("京东商城门店建商品2", tasksch.NewParallelConfig().SetParallelCount(2).SetIsContinueWhenError(true), ctx, if err = api.JdShop2API.StoreSkuBindStore(true, []string{utils.Int64ToStr(v.JdsID)}, nil); err == nil {
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { // task := tasksch.NewParallelTask("京东商城门店建商品2", tasksch.NewParallelConfig().SetParallelCount(2).SetIsContinueWhenError(true), ctx,
storeMap := batchItemList[0].(*model.StoreMap) // func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
if err = api.JdShop2API.StoreSkuBindStore(false, []string{utils.Int64ToStr(v.JdsID)}, []string{storeMap.VendorStoreID}); err == nil { // storeMap := batchItemList[0].(*model.StoreMap)
storeSkus2, _ := dao.GetStoresSkusInfo(db, []int{storeMap.StoreID}, []int{v.SkuID}) // storeSkus2, _ := dao.GetStoresSkusInfo(db, []int{storeMap.StoreID}, []int{v.SkuID})
if len(storeSkus2) > 0 { // if len(storeSkus2) > 0 {
status := storeSkus2[0].Status // status := storeSkus2[0].Status
stock := storeSkus2[0].Stock // stock := storeSkus2[0].Stock
price := storeSkus2[0].Price // price := storeSkus2[0].Price
if status == model.StoreSkuBindStatusNormal { // if status == model.StoreSkuBindStatusNormal {
api.JdShop2API.StoreWareDoUpdate(status, v.JdsID, storeMap.VendorStoreID) // api.JdShop2API.StoreWareDoUpdate(status, v.JdsID, storeMap.VendorStoreID)
} // }
if stock != 0 { // if stock != 0 {
api.JdShop2API.StoreUpdateStock(stock, v.JdsID, storeMap.VendorStoreID) // api.JdShop2API.StoreUpdateStock(stock, v.JdsID, storeMap.VendorStoreID)
} // }
api.JdShop2API.StoreUpdatePrice(utils.Float64ToStr(jxutils.IntPrice2Standard(int64(price))), v.JdsID, storeMap.VendorStoreID) // api.JdShop2API.StoreUpdatePrice(utils.Float64ToStr(jxutils.IntPrice2Standard(int64(price))), v.JdsID, storeMap.VendorStoreID)
} else { // } else {
return retVal, err // return retVal, err
} // }
} // return retVal, err
return retVal, err // }, storeMaps)
}, storeMaps) // tasksch.HandleTask(task, task2, true).Run()
tasksch.HandleTask(task, task2, true).Run() // _, err = task.GetResult(0)
_, err = task.GetResult(0) }
} }
v.SubStoreID = 1 v.SubStoreID = 1
dao.UpdateEntity(db, v, "SubStoreID") dao.UpdateEntity(db, v, "SubStoreID")

View File

@@ -34,206 +34,239 @@ var (
) )
func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
if globals.EnableJdShopWrite && (vendorStoreID == model.JdShopMainVendorStoreID || vendorStoreID == model.JdShopMainVendorStoreID2) { if globals.EnableJdShopWrite {
for _, v := range storeSkuList { if vendorStoreID == model.JdShopMainVendorStoreID || vendorStoreID == model.JdShopMainVendorStoreID2 {
//判断京东商城上是否有这个商品了,如果有就是添加规格而不是创建商品 for _, v := range storeSkuList {
//如果是京东商城2是下架的商品弄上架 //判断京东商城上是否有这个商品了,如果有就是添加规格而不是创建商品
name := filterSensitiveWord(v.Name) //如果是京东商城2是下架的商品弄上架
flag := false name := filterSensitiveWord(v.Name)
flag2 := false flag := false
result, err := getAPI(v.VendorOrgCode).SearchWare4Valid(name, 1, 100) flag2 := false
if err != nil { result, err := getAPI(v.VendorOrgCode).SearchWare4Valid(name, 1, 100)
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品") if err != nil {
return failedList, err failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
} return failedList, err
for _, v := range result.Data {
if v.Title == name {
flag = true
//下架
if v.WareStatus == 2 {
flag2 = true
}
break
} }
} for _, v := range result.Data {
if v.VendorOrgCode == "2" && flag2 { if v.Title == name {
err = api.JdShop2API.WareDoUpdate("op", utils.Int64ToStr(v.JdsWareID)) flag = true
} else { //下架
if result.TotalItem > 0 && len(result.Data) > 0 && flag { if v.WareStatus == 2 {
//jds2 flag2 = true
wareSaveParam := &jdshopapi.WareSaveParam{
WareID: result.Data[0].WareID,
Title: v.Name,
CategoryID: int(v.VendorVendorCatID),
VenderID: jdshopapi.VendorID2,
Length: 200,
Wide: 100,
Height: 100,
Weight: "1",
BrandID: jdshopapi.BrandIdNO,
ShopCategorys: []int{utils.Str2Int(v.VendorCatID)},
PromiseID: -1,
MultiCateProps: []interface{}{},
PropsSet: []interface{}{},
SaleAttrs: []interface{}{},
WareStatus: 8,
}
var wareSaveSkus []*jdshopapi.WareSaveSkus
//先把已有的规格放进去
if v.VendorOrgCode == "2" {
wareResult, _ := api.JdShop2API.FindWareById(wareSaveParam.WareID)
if wareResult != nil {
for _, v := range wareResult.Images {
wareSaveParam.ImageMap.Num0000000000 = append(wareSaveParam.ImageMap.Num0000000000, &jdshopapi.CreateSkuParamImages{
ColorID: v.ColorID,
ImgURL: v.ImgURL,
ImgIndex: v.ImgIndex,
})
}
} }
skus, _, _ := api.JdShop2API.SearchSkuList2([]int{int(wareSaveParam.WareID)}) break
if len(skus) > 0 { }
for _, vv := range skus { }
sku := &jdshopapi.WareSaveSkus{ if v.VendorOrgCode == "2" && flag2 {
SkuID: vv.SkuID, err = api.JdShop2API.WareDoUpdate("op", utils.Int64ToStr(v.JdsWareID))
JdPrice: utils.Float64ToStr(vv.JdPrice), } else {
StockNum: vv.StockNum, if result.TotalItem > 0 && len(result.Data) > 0 && flag {
Props: []*jdshopapi.WareSaveSkusProp{ //jds2
&jdshopapi.WareSaveSkusProp{ wareSaveParam := &jdshopapi.WareSaveParam{
AttrID: utils.Str2Int(vv.SaleAttrs[0].AttrID), WareID: result.Data[0].WareID,
AttrValues: utils.Str2Int64(vv.SaleAttrs[0].AttrValues[0]), Title: v.Name,
AttrValueAlias: vv.SaleAttrs[0].AttrValueAlias[0], CategoryID: int(v.VendorVendorCatID),
}, VenderID: jdshopapi.VendorID2,
}, Length: 200,
OuterID: vv.OuterID, Wide: 100,
Height: 100,
Weight: "1",
BrandID: jdshopapi.BrandIdNO,
ShopCategorys: []int{utils.Str2Int(v.VendorCatID)},
PromiseID: -1,
MultiCateProps: []interface{}{},
PropsSet: []interface{}{},
SaleAttrs: []interface{}{},
WareStatus: 8,
}
var wareSaveSkus []*jdshopapi.WareSaveSkus
//先把已有的规格放进去
if v.VendorOrgCode == "2" {
wareResult, _ := api.JdShop2API.FindWareById(wareSaveParam.WareID)
if wareResult != nil {
for _, v := range wareResult.Images {
wareSaveParam.ImageMap.Num0000000000 = append(wareSaveParam.ImageMap.Num0000000000, &jdshopapi.CreateSkuParamImages{
ColorID: v.ColorID,
ImgURL: v.ImgURL,
ImgIndex: v.ImgIndex,
})
}
}
skus, _, _ := api.JdShop2API.SearchSkuList2([]int{int(wareSaveParam.WareID)})
if len(skus) > 0 {
for _, vv := range skus {
sku := &jdshopapi.WareSaveSkus{
SkuID: vv.SkuID,
JdPrice: utils.Float64ToStr(vv.JdPrice),
StockNum: vv.StockNum,
Props: []*jdshopapi.WareSaveSkusProp{
&jdshopapi.WareSaveSkusProp{
AttrID: utils.Str2Int(vv.SaleAttrs[0].AttrID),
AttrValues: utils.Str2Int64(vv.SaleAttrs[0].AttrValues[0]),
AttrValueAlias: vv.SaleAttrs[0].AttrValueAlias[0],
},
},
OuterID: vv.OuterID,
}
wareSaveSkus = append(wareSaveSkus, sku)
} }
wareSaveSkus = append(wareSaveSkus, sku)
} }
} }
} for _, vv := range v.StoreSkuSyncInfoJds {
for _, vv := range v.StoreSkuSyncInfoJds { v.JdsWareID = result.Data[0].WareID
v.JdsWareID = result.Data[0].WareID vv.JdsWareID = result.Data[0].WareID
vv.JdsWareID = result.Data[0].WareID updateSkusParam, wareSaveSku, err := buildUpdateSkusParam(v, vv, true)
updateSkusParam, wareSaveSku, err := buildUpdateSkusParam(v, vv, true) wareSaveSkus = append(wareSaveSkus, wareSaveSku)
wareSaveSkus = append(wareSaveSkus, wareSaveSku)
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
return failedList, err
}
if v.VendorOrgCode == "1" {
vendorSkuID, err := getAPI(v.VendorOrgCode).UpdateSkus(updateSkusParam)
if err != nil { if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品") failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
return failedList, err return failedList, err
} }
vv.VendorSkuID = vendorSkuID if v.VendorOrgCode == "1" {
} else { vendorSkuID, err := getAPI(v.VendorOrgCode).UpdateSkus(updateSkusParam)
wareSaveParam.Skus = wareSaveSkus if err != nil {
if wareResult, err2 := getAPI(v.VendorOrgCode).WareSave(wareSaveParam); err2 == nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
for _, vvv := range wareResult { return failedList, err
if vvv.OuterID == wareSaveSku.OuterID { }
vv.VendorSkuID = utils.Int64ToStr(vvv.SkuID) vv.VendorSkuID = vendorSkuID
break } else {
wareSaveParam.Skus = wareSaveSkus
if wareResult, err2 := getAPI(v.VendorOrgCode).WareSave(wareSaveParam); err2 == nil {
for _, vvv := range wareResult {
if vvv.OuterID == wareSaveSku.OuterID {
vv.VendorSkuID = utils.Int64ToStr(vvv.SkuID)
break
}
}
//创建商品后要上架,改价,库存,门店关注商品等
if err = api.JdShop2API.WareDoUpdate("up", utils.Int64ToStr(wareSaveParam.WareID)); err == nil {
err = api.JdShop2API.StoreSkuBindStore(true, []string{vv.VendorSkuID}, nil)
} }
} }
err = api.JdShop2API.WareDoUpdate("up", utils.Int64ToStr(wareSaveParam.WareID)) }
}
} else {
createSkuParamWare, createSkuParamSkus, wareSaveParam, err := buildCreateWareParam(v)
if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
return failedList, err
}
var (
wareID int64
resultAttrs = make(map[string]int64)
)
if v.VendorOrgCode == "1" {
createSkuResult, err2 := getAPI(v.VendorOrgCode).CreateWare(createSkuParamWare, createSkuParamSkus)
err = err2
wareID = createSkuResult.WareID
var paramAttrs = make(map[string]*jdshopapi.CreateSkuParamSkus)
for _, vv := range createSkuParamSkus {
for _, vvv := range vv.SaleAttrs {
paramAttrs[vvv.AttrValues[0]] = vv
}
}
for _, vv1 := range createSkuResult.Skus {
for _, vvv1 := range vv1.SaleAttrs {
if paramAttrs[vvv1.AttrValues[0]] != nil {
resultAttrs[paramAttrs[vvv1.AttrValues[0]].OuterID] = vv1.SkuID
}
}
}
for _, vv2 := range v.StoreSkuSyncInfoJds {
vv2.JdsWareID = createSkuResult.WareID
if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 {
vv2.VendorSkuID = utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)])
}
}
} else {
var createSkuResult []*jdshopapi.WareSaveResult
for i := 0; i < 10; i++ {
createSkuResult, err = api.JdShop2API.WareSave(wareSaveParam)
if len(createSkuResult) > 0 {
break
}
time.Sleep(time.Second)
}
wareID = createSkuResult[0].WareID
var paramAttrs = make(map[string]*jdshopapi.WareSaveSkus)
for _, vv := range wareSaveParam.Skus {
for _, vvv := range vv.Props {
paramAttrs[vvv.AttrValueAlias] = vv
}
}
for _, vv1 := range createSkuResult {
for _, vvv1 := range vv1.Props {
if paramAttrs[vvv1.AttrValueAlias] != nil {
resultAttrs[paramAttrs[vvv1.AttrValueAlias].OuterID] = vv1.SkuID
}
}
}
for _, vv2 := range v.StoreSkuSyncInfoJds {
vv2.JdsWareID = createSkuResult[0].WareID
if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 {
vv2.VendorSkuID = utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)])
}
} }
//创建商品后要上架,改价,库存,门店关注商品等 //创建商品后要上架,改价,库存,门店关注商品等
} if err = api.JdShop2API.WareDoUpdate("up", utils.Int64ToStr(wareID)); err == nil {
} for _, vv2 := range v.StoreSkuSyncInfoJds {
} else { if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 {
createSkuParamWare, createSkuParamSkus, wareSaveParam, err := buildCreateWareParam(v) err = api.JdShop2API.StoreSkuBindStore(true, []string{utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)])}, nil)
if err != nil { }
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
return failedList, err
}
var (
wareID int64
resultAttrs = make(map[string]int64)
)
if v.VendorOrgCode == "1" {
createSkuResult, err2 := getAPI(v.VendorOrgCode).CreateWare(createSkuParamWare, createSkuParamSkus)
err = err2
wareID = createSkuResult.WareID
var paramAttrs = make(map[string]*jdshopapi.CreateSkuParamSkus)
for _, vv := range createSkuParamSkus {
for _, vvv := range vv.SaleAttrs {
paramAttrs[vvv.AttrValues[0]] = vv
}
}
for _, vv1 := range createSkuResult.Skus {
for _, vvv1 := range vv1.SaleAttrs {
if paramAttrs[vvv1.AttrValues[0]] != nil {
resultAttrs[paramAttrs[vvv1.AttrValues[0]].OuterID] = vv1.SkuID
} }
} }
} }
for _, vv2 := range v.StoreSkuSyncInfoJds { if err != nil {
vv2.JdsWareID = createSkuResult.WareID failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 { return failedList, err
vv2.VendorSkuID = utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)]) } else {
} //追加商品透图
} imageURL := ""
} else { img := v.Img
var createSkuResult []*jdshopapi.WareSaveResult if img != "" {
for i := 0; i < 10; i++ { suffix := img[strings.LastIndex(img, "."):]
createSkuResult, err = api.JdShop2API.WareSave(wareSaveParam) if suffix != ".png" {
if len(createSkuResult) > 0 { if resBinary, _, _ := jxutils.DownloadFileByURL(img + model.SkuNameImgToPng); err == nil {
break downloadURL, _ := jxutils.UploadExportContent(resBinary, utils.Int64ToStr(time.Now().Unix()))
} imageURL, _ = uploadImg(downloadURL, name, "tou", v.VendorOrgCode)
time.Sleep(time.Second) }
} } else {
wareID = createSkuResult[0].WareID imageURL, _ = uploadImg(img, name, "tou", v.VendorOrgCode)
var paramAttrs = make(map[string]*jdshopapi.WareSaveSkus)
for _, vv := range wareSaveParam.Skus {
for _, vvv := range vv.Props {
paramAttrs[vvv.AttrValueAlias] = vv
}
}
for _, vv1 := range createSkuResult {
for _, vvv1 := range vv1.Props {
if paramAttrs[vvv1.AttrValueAlias] != nil {
resultAttrs[paramAttrs[vvv1.AttrValueAlias].OuterID] = vv1.SkuID
} }
} }
} if v.VendorOrgCode == "1" {
for _, vv2 := range v.StoreSkuSyncInfoJds { api.JdShopAPI.TransparentImageAdd(wareID, imageURL)
vv2.JdsWareID = createSkuResult[0].WareID
if resultAttrs[utils.Int2Str(vv2.SkuID)] != 0 {
vv2.VendorSkuID = utils.Int64ToStr(resultAttrs[utils.Int2Str(vv2.SkuID)])
} }
} }
//创建商品后要上架,改价,库存,门店关注商品等
err = api.JdShop2API.WareDoUpdate("up", utils.Int64ToStr(wareID))
} }
if err != nil { if err != nil {
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品") failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
return failedList, err return failedList, err
} else {
//追加商品透图
imageURL := ""
img := v.Img
if img != "" {
suffix := img[strings.LastIndex(img, "."):]
if suffix != ".png" {
if resBinary, _, _ := jxutils.DownloadFileByURL(img + model.SkuNameImgToPng); err == nil {
downloadURL, _ := jxutils.UploadExportContent(resBinary, utils.Int64ToStr(time.Now().Unix()))
imageURL, _ = uploadImg(downloadURL, name, "tou", v.VendorOrgCode)
}
} else {
imageURL, _ = uploadImg(img, name, "tou", v.VendorOrgCode)
}
}
if v.VendorOrgCode == "1" {
api.JdShopAPI.TransparentImageAdd(wareID, imageURL)
}
} }
} }
if err != nil { }
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品") } else {
return failedList, err //如果是普通店关注商品
for _, v := range storeSkuList {
if v.VendorOrgCode == "2" {
storeSkus, _ := dao.GetStoresSkusInfo(dao.GetDB(), []int{model.JdShopMainStoreID2}, []int{v.SkuID})
if len(storeSkus) > 0 {
for _, vv := range storeSkus {
if vv.JdsID != 0 {
status := v.Status
stock := v.Stock
price := v.VendorPrice
if status == model.StoreSkuBindStatusNormal {
api.JdShop2API.StoreWareDoUpdate(status, vv.JdsID, vendorStoreID)
}
if stock != 0 {
api.JdShop2API.StoreUpdateStock(stock, vv.JdsID, vendorStoreID)
}
api.JdShop2API.StoreUpdatePrice(utils.Float64ToStr(jxutils.IntPrice2Standard(int64(price))), vv.JdsID, vendorStoreID)
}
}
}
} }
} }
} }