- 重构GetSkusCategories与GetStoreCategories
This commit is contained in:
@@ -30,17 +30,6 @@ type SkuStoreCatInfo struct {
|
|||||||
ParentCatSyncStatus int8
|
ParentCatSyncStatus int8
|
||||||
}
|
}
|
||||||
|
|
||||||
type StoreCatSyncInfo struct {
|
|
||||||
CatName string
|
|
||||||
Seq int `json:"seq"`
|
|
||||||
model.StoreSkuCategoryMap
|
|
||||||
|
|
||||||
ParentCatName string
|
|
||||||
ParentCatID int `orm:"column(parent_cat_id)"` // 这个主要用于判断是否有父store_sku_category_map
|
|
||||||
ParentVendorCatID string `orm:"column(parent_vendor_cat_id)"`
|
|
||||||
ParentCatSyncStatus int8
|
|
||||||
}
|
|
||||||
|
|
||||||
type StoreSkuSyncInfo struct {
|
type StoreSkuSyncInfo struct {
|
||||||
// 平台无关的store sku信息
|
// 平台无关的store sku信息
|
||||||
BindID int `orm:"column(bind_id)"` // 换名的原因是与Sku.ID同名区别
|
BindID int `orm:"column(bind_id)"` // 换名的原因是与Sku.ID同名区别
|
||||||
@@ -82,6 +71,7 @@ type StoreSkuSyncInfo struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 单门店模式厂商适用
|
// 单门店模式厂商适用
|
||||||
|
// 从store_sku_bind中,得到所有依赖的商家分类信息
|
||||||
func GetSkusCategories(db *DaoDB, vendorID, storeID int, skuIDs []int, level int) (cats []*SkuStoreCatInfo, err error) {
|
func GetSkusCategories(db *DaoDB, vendorID, storeID int, skuIDs []int, level int) (cats []*SkuStoreCatInfo, err error) {
|
||||||
sql := `
|
sql := `
|
||||||
SELECT DISTINCT t4.*, t5.id map_id, t5.%s_id vendor_cat_id, t5.%s_sync_status store_cat_sync_status, t4p.name parent_cat_name, t5p.id parent_map_id, t5p.%s_id parent_vendor_cat_id, t5p.%s_sync_status parent_cat_sync_status
|
SELECT DISTINCT t4.*, t5.id map_id, t5.%s_id vendor_cat_id, t5.%s_sync_status store_cat_sync_status, t4p.name parent_cat_name, t5p.id parent_map_id, t5p.%s_id parent_vendor_cat_id, t5p.%s_sync_status parent_cat_sync_status
|
||||||
@@ -129,19 +119,20 @@ func GetSkusCategories(db *DaoDB, vendorID, storeID int, skuIDs []int, level int
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 单门店模式厂商适用
|
// 单门店模式厂商适用
|
||||||
func GetStoreCategories(db *DaoDB, vendorID, storeID int, level int) (cats []*StoreCatSyncInfo, err error) {
|
// 单纯的从已经创建的store_sku_category_map中,得到相关的同步信息
|
||||||
|
func GetStoreCategories(db *DaoDB, vendorID, storeID int, level int) (cats []*SkuStoreCatInfo, err error) {
|
||||||
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID])
|
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID])
|
||||||
sql := fmt.Sprintf(`
|
sql := fmt.Sprintf(`
|
||||||
SELECT t5.*,
|
SELECT t4.*,
|
||||||
t4.name cat_name, t4.seq,
|
t5.id map_id, t5.%s_id vendor_cat_id, t5.%s_sync_status store_cat_sync_status,
|
||||||
t4p.name parent_cat_name,
|
t4p.name parent_cat_name,
|
||||||
t5p.category_id parent_cat_id, t5p.%s_id parent_vendor_cat_id, t5p.%s_sync_status parent_cat_sync_status
|
t5p.id parent_map_id, t5p.%s_id parent_vendor_cat_id, t5p.%s_sync_status parent_cat_sync_status
|
||||||
FROM store_sku_category_map t5
|
FROM store_sku_category_map t5
|
||||||
JOIN sku_category t4 ON t5.category_id = t4.id AND t4.deleted_at = ?
|
JOIN sku_category t4 ON t5.category_id = t4.id AND t4.deleted_at = ?
|
||||||
LEFT JOIN sku_category t4p ON t4.parent_id = t4p.id
|
LEFT JOIN sku_category t4p ON t4.parent_id = t4p.id
|
||||||
LEFT JOIN store_sku_category_map t5p ON t4p.id = t5p.category_id AND t5.store_id = t5p.store_id AND t5p.deleted_at = ?
|
LEFT JOIN store_sku_category_map t5p ON t4p.id = t5p.category_id AND t5.store_id = t5p.store_id AND t5p.deleted_at = ?
|
||||||
WHERE t5.store_id = ? AND t4.level = ? AND t5.%s_sync_status <> 0 AND t5.deleted_at = ?
|
WHERE t5.store_id = ? AND t4.level = ? AND t5.%s_sync_status <> 0 AND t5.deleted_at = ?
|
||||||
`, fieldPrefix, fieldPrefix, fieldPrefix)
|
`, fieldPrefix, fieldPrefix, fieldPrefix, fieldPrefix, fieldPrefix)
|
||||||
if err = GetRows(db, &cats, sql, utils.DefaultTimeValue, utils.DefaultTimeValue, storeID, level, utils.DefaultTimeValue); err != nil {
|
if err = GetRows(db, &cats, sql, utils.DefaultTimeValue, utils.DefaultTimeValue, storeID, level, utils.DefaultTimeValue); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,44 +35,49 @@ func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask t
|
|||||||
task := tasksch.NewParallelTask(fmt.Sprintf("美团外卖SyncStoreCategory step2, level=%d", level), nil, ctx,
|
task := tasksch.NewParallelTask(fmt.Sprintf("美团外卖SyncStoreCategory step2, level=%d", level), nil, 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) {
|
||||||
updateFields := []string{dao.GetSyncStatusStructField(model.VendorNames[model.VendorIDMTWM])}
|
updateFields := []string{dao.GetSyncStatusStructField(model.VendorNames[model.VendorIDMTWM])}
|
||||||
catInfo := batchItemList[0].(*dao.StoreCatSyncInfo)
|
catInfo := batchItemList[0].(*dao.SkuStoreCatInfo)
|
||||||
if globals.EnableMtwmStoreWrite {
|
storeCatMap := &model.StoreSkuCategoryMap{}
|
||||||
if catInfo.MtwmSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除
|
storeCatMap.ID = catInfo.MapID
|
||||||
if catInfo.MtwmSyncStatus&model.SyncFlagNewMask == 0 && catInfo.MtwmID != "" {
|
if catInfo.StoreCatSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除
|
||||||
globals.SugarLogger.Debugf("RetailCatDelete vendorStoreID:%s, MtwmID:%s", vendorStoreID, catInfo.MtwmID)
|
if catInfo.StoreCatSyncStatus&model.SyncFlagNewMask == 0 && !dao.IsVendorThingIDEmpty(catInfo.VendorCatID) {
|
||||||
err = api.MtwmAPI.RetailCatDelete(vendorStoreID, catInfo.MtwmID)
|
globals.SugarLogger.Debugf("RetailCatDelete vendorStoreID:%s, MtwmID:%s", vendorStoreID, catInfo.VendorCatID)
|
||||||
|
if globals.EnableMtwmStoreWrite {
|
||||||
|
err = api.MtwmAPI.RetailCatDelete(vendorStoreID, catInfo.VendorCatID)
|
||||||
}
|
}
|
||||||
} else if catInfo.MtwmSyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreSkuModifiedMask) != 0 { // 新增
|
}
|
||||||
catName := catInfo.CatName
|
} else if catInfo.StoreCatSyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreSkuModifiedMask) != 0 { // 新增
|
||||||
subCatName := ""
|
catName := catInfo.Name
|
||||||
originName := ""
|
subCatName := ""
|
||||||
if catInfo.MtwmSyncStatus&model.SyncFlagNewMask == 0 {
|
originName := ""
|
||||||
originName = catInfo.MtwmID
|
if catInfo.StoreCatSyncStatus&model.SyncFlagNewMask == 0 {
|
||||||
}
|
originName = catInfo.VendorCatID
|
||||||
if level == 2 {
|
}
|
||||||
originName = catInfo.ParentCatName
|
if level == 2 {
|
||||||
catName = catInfo.ParentCatName
|
originName = catInfo.ParentCatName
|
||||||
subCatName = catInfo.CatName
|
catName = catInfo.ParentCatName
|
||||||
if catInfo.MtwmSyncStatus&model.SyncFlagNewMask == 0 {
|
subCatName = catInfo.Name
|
||||||
originName = catInfo.MtwmID
|
if catInfo.StoreCatSyncStatus&model.SyncFlagNewMask == 0 {
|
||||||
catName = catInfo.CatName
|
originName = catInfo.VendorCatID
|
||||||
subCatName = ""
|
catName = catInfo.Name
|
||||||
}
|
subCatName = ""
|
||||||
}
|
|
||||||
if catName == "" {
|
|
||||||
panic("catName is empty")
|
|
||||||
}
|
|
||||||
globals.SugarLogger.Debugf("RetailCatUpdate vendorStoreID:%s, originName:%s, catName:%s, subCatName:%s, seq:%d", vendorStoreID, originName, catName, subCatName, catInfo.Seq)
|
|
||||||
if err = api.MtwmAPI.RetailCatUpdate(vendorStoreID, originName, catName, subCatName, catInfo.Seq); err == nil {
|
|
||||||
catInfo.MtwmID = catInfo.CatName
|
|
||||||
updateFields = append(updateFields, dao.GetVendorThingIDStructField(model.VendorNames[model.VendorIDMTWM]))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if catName == "" {
|
||||||
|
panic("catName is empty")
|
||||||
|
}
|
||||||
|
globals.SugarLogger.Debugf("RetailCatUpdate vendorStoreID:%s, originName:%s, catName:%s, subCatName:%s, seq:%d", vendorStoreID, originName, catName, subCatName, catInfo.Seq)
|
||||||
|
if globals.EnableMtwmStoreWrite {
|
||||||
|
err = api.MtwmAPI.RetailCatUpdate(vendorStoreID, originName, catName, subCatName, catInfo.Seq)
|
||||||
|
}
|
||||||
|
if err == nil {
|
||||||
|
storeCatMap.MtwmID = catInfo.Name
|
||||||
|
updateFields = append(updateFields, dao.GetVendorThingIDStructField(model.VendorNames[model.VendorIDMTWM]))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
db2 := dao.GetDB()
|
db2 := dao.GetDB()
|
||||||
catInfo.MtwmSyncStatus = 0
|
storeCatMap.MtwmSyncStatus = 0
|
||||||
_, err = dao.UpdateEntity(db2, &catInfo.StoreSkuCategoryMap, updateFields...)
|
_, err = dao.UpdateEntity(db2, storeCatMap, updateFields...)
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}, catList)
|
}, catList)
|
||||||
@@ -258,7 +263,10 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
|
|||||||
storeSkuBind.ID = skuItem.BindID
|
storeSkuBind.ID = skuItem.BindID
|
||||||
if skuItem.NameID == 0 || skuItem.StoreSkuSyncStatus&model.SyncFlagDeletedMask != 0 {
|
if skuItem.NameID == 0 || skuItem.StoreSkuSyncStatus&model.SyncFlagDeletedMask != 0 {
|
||||||
if skuItem.StoreSkuSyncStatus&model.SyncFlagNewMask == 0 && !dao.IsVendorThingIDEmpty(skuItem.VendorSkuID) {
|
if skuItem.StoreSkuSyncStatus&model.SyncFlagNewMask == 0 && !dao.IsVendorThingIDEmpty(skuItem.VendorSkuID) {
|
||||||
err = ignoreNoAppFoodErr(api.MtwmAPI.RetailDelete(vendorStoreID, skuItem.VendorSkuID))
|
if globals.EnableWscStoreWrite {
|
||||||
|
err = api.MtwmAPI.RetailDelete(vendorStoreID, skuItem.VendorSkuID)
|
||||||
|
}
|
||||||
|
err = ignoreNoAppFoodErr(err)
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
storeSkuBind.DeletedAt = time.Now()
|
storeSkuBind.DeletedAt = time.Now()
|
||||||
@@ -312,10 +320,11 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
|
|||||||
skus[0]["weight"] = skuItem.Weight // weight字段仅限服饰鞋帽、美妆、日用品、母婴、生鲜果蔬、生活超市下的便利店/超市门店品类的商家使用
|
skus[0]["weight"] = skuItem.Weight // weight字段仅限服饰鞋帽、美妆、日用品、母婴、生鲜果蔬、生活超市下的便利店/超市门店品类的商家使用
|
||||||
}
|
}
|
||||||
if globals.EnableMtwmStoreWrite {
|
if globals.EnableMtwmStoreWrite {
|
||||||
if err = api.MtwmAPI.RetailBatchInitData(vendorStoreID, foodDataList); err == nil {
|
err = api.MtwmAPI.RetailBatchInitData(vendorStoreID, foodDataList)
|
||||||
storeSkuBind.MtwmID = int64(skuItem.SkuID)
|
}
|
||||||
updateFields = append(updateFields, model.FieldMtwmID)
|
if err == nil {
|
||||||
}
|
storeSkuBind.MtwmID = int64(skuItem.SkuID)
|
||||||
|
updateFields = append(updateFields, model.FieldMtwmID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -37,29 +37,36 @@ func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask t
|
|||||||
task := tasksch.NewParallelTask(fmt.Sprintf("微盟微商城SyncStoreCategory step2, level=%d", level), nil, ctx,
|
task := tasksch.NewParallelTask(fmt.Sprintf("微盟微商城SyncStoreCategory step2, level=%d", level), nil, 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) {
|
||||||
updateFields := []string{dao.GetSyncStatusStructField(model.VendorNames[model.VendorIDWSC])}
|
updateFields := []string{dao.GetSyncStatusStructField(model.VendorNames[model.VendorIDWSC])}
|
||||||
catInfo := batchItemList[0].(*dao.StoreCatSyncInfo)
|
catInfo := batchItemList[0].(*dao.SkuStoreCatInfo)
|
||||||
if globals.EnableWscStoreWrite {
|
storeCatMap := &model.StoreSkuCategoryMap{}
|
||||||
if catInfo.WscSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除
|
storeCatMap.ID = catInfo.MapID
|
||||||
if catInfo.WscSyncStatus&model.SyncFlagNewMask == 0 {
|
if catInfo.StoreCatSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除
|
||||||
globals.SugarLogger.Debugf("UpdateClassify strStoreID:%s, WscID:%d", strStoreID, catInfo.WscID)
|
if catInfo.StoreCatSyncStatus&model.SyncFlagNewMask == 0 && !dao.IsVendorThingIDEmpty(catInfo.VendorCatID) {
|
||||||
err = api.WeimobAPI.UpdateClassify(catInfo.WscID, composeFakeDelName(catInfo.CatName), "")
|
globals.SugarLogger.Debugf("UpdateClassify strStoreID:%s, WscID:%s", strStoreID, catInfo.VendorCatID)
|
||||||
|
if globals.EnableWscStoreWrite {
|
||||||
|
err = api.WeimobAPI.UpdateClassify(utils.Str2Int64(catInfo.VendorCatID), composeFakeDelName(catInfo.Name), "")
|
||||||
}
|
}
|
||||||
} else if catInfo.WscSyncStatus&(model.SyncFlagNewMask|model.SyncFlagModifiedMask) != 0 { // 新增
|
}
|
||||||
catImg := ""
|
} else if catInfo.StoreCatSyncStatus&(model.SyncFlagNewMask|model.SyncFlagModifiedMask) != 0 { // 新增
|
||||||
if level == 2 {
|
catImg := ""
|
||||||
catImg = DefCatImg
|
if level == 2 {
|
||||||
}
|
catImg = DefCatImg
|
||||||
if catInfo.WscID, err = api.WeimobAPI.AddClassify(catInfo.CatName, utils.Str2Int64WithDefault(catInfo.ParentVendorCatID, 0), catImg); err == nil {
|
}
|
||||||
updateFields = append(updateFields, dao.GetVendorThingIDStructField(model.VendorNames[model.VendorIDWSC]))
|
if globals.EnableWscStoreWrite {
|
||||||
}
|
storeCatMap.WscID, err = api.WeimobAPI.AddClassify(catInfo.Name, utils.Str2Int64WithDefault(catInfo.ParentVendorCatID, 0), catImg)
|
||||||
} else if catInfo.WscSyncStatus&(model.SyncFlagModifiedMask) != 0 { // 修改
|
}
|
||||||
err = api.WeimobAPI.UpdateClassify(catInfo.WscID, catInfo.CatName, "")
|
if err == nil {
|
||||||
|
updateFields = append(updateFields, dao.GetVendorThingIDStructField(model.VendorNames[model.VendorIDWSC]))
|
||||||
|
}
|
||||||
|
} else if catInfo.StoreCatSyncStatus&(model.SyncFlagModifiedMask) != 0 { // 修改
|
||||||
|
if globals.EnableWscStoreWrite {
|
||||||
|
err = api.WeimobAPI.UpdateClassify(utils.Str2Int64(catInfo.VendorCatID), catInfo.Name, "")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
db2 := dao.GetDB()
|
db2 := dao.GetDB()
|
||||||
catInfo.WscSyncStatus = 0
|
storeCatMap.WscSyncStatus = 0
|
||||||
_, err = dao.UpdateEntity(db2, &catInfo.StoreSkuCategoryMap, updateFields...)
|
_, err = dao.UpdateEntity(db2, storeCatMap, updateFields...)
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}, catList)
|
}, catList)
|
||||||
@@ -183,10 +190,12 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
|
|||||||
if skuItem.StoreSkuSyncStatus&model.SyncFlagDeletedMask != 0 {
|
if skuItem.StoreSkuSyncStatus&model.SyncFlagDeletedMask != 0 {
|
||||||
if skuItem.StoreSkuSyncStatus&model.SyncFlagNewMask == 0 {
|
if skuItem.StoreSkuSyncStatus&model.SyncFlagNewMask == 0 {
|
||||||
goodsID := utils.Str2Int64WithDefault(skuItem.VendorNameID, 0)
|
goodsID := utils.Str2Int64WithDefault(skuItem.VendorNameID, 0)
|
||||||
if err = api.WeimobAPI.UpdateGoodsShelfStatus([]int64{goodsID}, false); err == nil {
|
if globals.EnableWscStoreWrite {
|
||||||
err = api.WeimobAPI.UpdateGoodsTitle(goodsID, composeFakeDelName(skuItem.Name))
|
if err = api.WeimobAPI.UpdateGoodsShelfStatus([]int64{goodsID}, false); err == nil {
|
||||||
} else if intErr, ok := err.(*utils.ErrorWithCode); ok && intErr.Code() == "1001930300001" { // 商品不存在错
|
err = api.WeimobAPI.UpdateGoodsTitle(goodsID, composeFakeDelName(skuItem.Name))
|
||||||
err = nil // 强制忽略
|
} else if intErr, ok := err.(*utils.ErrorWithCode); ok && intErr.Code() == "1001930300001" { // 商品不存在错
|
||||||
|
err = nil // 强制忽略
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if skuItem.StoreSkuSyncStatus&(model.SyncFlagStoreSkuModifiedMask|model.SyncFlagNewMask) != 0 {
|
} else if skuItem.StoreSkuSyncStatus&(model.SyncFlagStoreSkuModifiedMask|model.SyncFlagNewMask) != 0 {
|
||||||
@@ -222,26 +231,36 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
if globals.EnableWscStoreWrite {
|
if skuItem.StoreSkuSyncStatus&model.SyncFlagNewMask != 0 {
|
||||||
if skuItem.StoreSkuSyncStatus&model.SyncFlagNewMask != 0 {
|
var (
|
||||||
goodsID, skuMap, err2 := api.WeimobAPI.AddGoods(outerGoodsCode, title, false, []string{skuItem.Img}, skuItem.Comment, isPutAway, 0, categoryId, classifyIdList, b2cGoods, skuList, nil)
|
goodsID int64
|
||||||
if err = err2; err == nil {
|
skuMap map[string]int64
|
||||||
storeSkuBind.WscID = skuMap[utils.Int2Str(skuItem.ID)]
|
)
|
||||||
storeSkuBind.WscID2 = goodsID
|
if globals.EnableWscStoreWrite {
|
||||||
updateFields = append(updateFields, model.FieldWscID, model.FieldWscID2)
|
goodsID, skuMap, err = api.WeimobAPI.AddGoods(outerGoodsCode, title, false, []string{skuItem.Img}, skuItem.Comment, isPutAway, 0, categoryId, classifyIdList, b2cGoods, skuList, nil)
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
goodsID := utils.Str2Int64WithDefault(skuItem.VendorNameID, 0)
|
goodsID = jxutils.GenFakeID()
|
||||||
|
skuMap = map[string]int64{
|
||||||
goodsInfo, err2 := api.WeimobAPI.QueryGoodsDetail(goodsID)
|
utils.Int2Str(skuItem.ID): jxutils.GenFakeID(),
|
||||||
if err = err2; err == nil {
|
}
|
||||||
// http://open.weimob.com/docapi/article?tag=Af
|
}
|
||||||
// sku id,如果为空,则新增sku; 如果更新之前的skuId与入参skuId对应,则更新sku; 如果更新之前的skuId没有和入参的skuId对应,删除更新之前的sku
|
if err == nil {
|
||||||
skuList[0][weimobapi.KeySkuID] = utils.Str2Int64WithDefault(skuItem.VendorSkuID, 0)
|
storeSkuBind.WscID = skuMap[utils.Int2Str(skuItem.ID)]
|
||||||
remoteSkuList := goodsInfo[weimobapi.KeySkuList].([]interface{})
|
storeSkuBind.WscID2 = goodsID
|
||||||
if len(remoteSkuList) > 0 {
|
updateFields = append(updateFields, model.FieldWscID, model.FieldWscID2)
|
||||||
// skuList[0][weimobapi.KeyEditStockNum] = model.MaxStoreSkuStockQty - int(utils.MustInterface2Int64(remoteSkuList[0].(map[string]interface{})[weimobapi.KeyAvailableStockNum]))
|
}
|
||||||
}
|
} else {
|
||||||
|
goodsID := utils.Str2Int64WithDefault(skuItem.VendorNameID, 0)
|
||||||
|
goodsInfo, err2 := api.WeimobAPI.QueryGoodsDetail(goodsID)
|
||||||
|
if err = err2; err == nil {
|
||||||
|
// http://open.weimob.com/docapi/article?tag=Af
|
||||||
|
// sku id,如果为空,则新增sku; 如果更新之前的skuId与入参skuId对应,则更新sku; 如果更新之前的skuId没有和入参的skuId对应,删除更新之前的sku
|
||||||
|
skuList[0][weimobapi.KeySkuID] = utils.Str2Int64WithDefault(skuItem.VendorSkuID, 0)
|
||||||
|
remoteSkuList := goodsInfo[weimobapi.KeySkuList].([]interface{})
|
||||||
|
if len(remoteSkuList) > 0 {
|
||||||
|
// skuList[0][weimobapi.KeyEditStockNum] = model.MaxStoreSkuStockQty - int(utils.MustInterface2Int64(remoteSkuList[0].(map[string]interface{})[weimobapi.KeyAvailableStockNum]))
|
||||||
|
}
|
||||||
|
if globals.EnableWscStoreWrite {
|
||||||
_, _, err = api.WeimobAPI.UpdateGoods(goodsID, title, false, []string{skuItem.Img}, skuItem.Comment, isPutAway, 0, categoryId, classifyIdList, b2cGoods, skuList, nil)
|
_, _, err = api.WeimobAPI.UpdateGoods(goodsID, title, false, []string{skuItem.Img}, skuItem.Comment, isPutAway, 0, categoryId, classifyIdList, b2cGoods, skuList, nil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user