diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 3e7c11595..bbda223a0 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -137,7 +137,9 @@ func (v *VendorSync) syncCategories(ctx *jxcontext.Context, parentTask tasksch.I updateFields := []string{syncStatusFieldName} syncStatus := refutil.GetObjFieldByName(cat, syncStatusFieldName).(int8) if (syncStatus & model.SyncFlagDeletedMask) != 0 { //删除 - err = multiStoresHandler.DeleteCategory(db, cat, userName) + if (syncStatus & model.SyncFlagNewMask) == 0 { + err = multiStoresHandler.DeleteCategory(db, cat, userName) + } } else if (syncStatus & model.SyncFlagNewMask) != 0 { // 新增 err = multiStoresHandler.CreateCategory(db, cat, userName) updateFields = append(updateFields, dao.GetVendorThingIDStructField(model.VendorNames[multiStoresHandler.GetVendorID()])) @@ -280,7 +282,9 @@ func (v *VendorSync) SyncSku(ctx *jxcontext.Context, db *dao.DaoDB, nameID, skuI if (skuID == -1 || skuID == sku.ID) && (syncStatus != 0) { updateFields := []string{syncStatusFieldName} if syncStatus&model.SyncFlagDeletedMask != 0 { // 删除 - err = multiStoresHandler.DeleteSku(db, sku, userName) + if syncStatus&model.SyncFlagNewMask == 0 { + err = multiStoresHandler.DeleteSku(db, sku, userName) + } } else if syncStatus&model.SyncFlagNewMask != 0 { // 新增 if err = multiStoresHandler.CreateSku(db, sku, userName); err == nil { var tmpStruct struct { diff --git a/business/partner/purchase/ebai/store_sku.go b/business/partner/purchase/ebai/store_sku.go index 80ce72362..be63cac66 100644 --- a/business/partner/purchase/ebai/store_sku.go +++ b/business/partner/purchase/ebai/store_sku.go @@ -243,7 +243,9 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks updateFields := []string{model.FieldEbaiSyncStatus} if globals.EnableStoreWrite && globals.EnableEbaiStoreWrite { if storeSku.EbaiSyncStatus&model.SyncFlagDeletedMask != 0 { - err = api.EbaiAPI.SkuDelete(strStoreID, utils.Int64ToStr(storeSku.EbaiID)) + if storeSku.EbaiSyncStatus&model.SyncFlagNewMask == 0 { + err = api.EbaiAPI.SkuDelete(strStoreID, utils.Int64ToStr(storeSku.EbaiID)) + } } else if storeSku.EbaiSyncStatus&model.SyncFlagNewMask != 0 { // globals.SugarLogger.Debug(utils.Format4Output(genSkuParamsFromStoreSkuInfo(storeSku), false)) // todo 适当处理重复(即已经创建)的情况 @@ -500,7 +502,9 @@ func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask t // globals.SugarLogger.Debug(utils.Format4Output(catInfo, false)) if globals.EnableStoreWrite && globals.EnableEbaiStoreWrite { if catInfo.EbaiSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除 - err = api.EbaiAPI.ShopCategoryDelete(strStoreID, catInfo.EbaiID) + if catInfo.EbaiSyncStatus&model.SyncFlagNewMask == 0 { + err = api.EbaiAPI.ShopCategoryDelete(strStoreID, catInfo.EbaiID) + } } else if catInfo.EbaiSyncStatus&model.SyncFlagNewMask != 0 { // 新增 ebaiID, err2 := api.EbaiAPI.ShopCategoryCreate(strStoreID, catInfo.ParentEbaiID, formatName(catInfo.Name), jxCatSeq2Ebai(catInfo.Seq)) if err = err2; err == nil { diff --git a/business/partner/purchase/mtwm/store_sku.go b/business/partner/purchase/mtwm/store_sku.go index 26317a8c3..5ea584df4 100644 --- a/business/partner/purchase/mtwm/store_sku.go +++ b/business/partner/purchase/mtwm/store_sku.go @@ -36,8 +36,10 @@ func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask t catInfo := batchItemList[0].(*dao.StoreCatSyncInfo) if globals.EnableStoreWrite && globals.EnableMtwmStoreWrite { if catInfo.MtwmSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除 - globals.SugarLogger.Debugf("RetailCatDelete vendorStoreID:%s, MtwmID:%s", vendorStoreID, catInfo.MtwmID) - err = api.MtwmAPI.RetailCatDelete(vendorStoreID, catInfo.MtwmID) + if catInfo.MtwmSyncStatus&model.SyncFlagNewMask == 0 { + globals.SugarLogger.Debugf("RetailCatDelete vendorStoreID:%s, MtwmID:%s", vendorStoreID, catInfo.MtwmID) + err = api.MtwmAPI.RetailCatDelete(vendorStoreID, catInfo.MtwmID) + } } else if catInfo.MtwmSyncStatus&(model.SyncFlagNewMask|model.SyncFlagModifiedMask) != 0 { // 新增 catName := catInfo.CatName subCatName := "" @@ -243,7 +245,9 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks v := batchItemList[0] skuItem := v.(*dao.StoreSkuSyncInfo) if skuItem.SkuSyncStatus&model.SyncFlagDeletedMask != 0 { - err = api.MtwmAPI.RetailDelete(vendorStoreID, utils.Int2Str(skuItem.ID)) + if skuItem.SkuSyncStatus&model.SyncFlagNewMask == 0 { + err = api.MtwmAPI.RetailDelete(vendorStoreID, utils.Int2Str(skuItem.ID)) + } } else if skuItem.SkuSyncStatus&(model.SyncFlagModifiedMask|model.SyncFlagNewMask) != 0 { foodData := make(map[string]interface{}) foodDataList[0] = foodData diff --git a/business/partner/purchase/weimob/wsc/store_sku.go b/business/partner/purchase/weimob/wsc/store_sku.go index e229cb4ec..d0246cf44 100644 --- a/business/partner/purchase/weimob/wsc/store_sku.go +++ b/business/partner/purchase/weimob/wsc/store_sku.go @@ -40,8 +40,10 @@ func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask t catInfo := batchItemList[0].(*dao.StoreCatSyncInfo) if globals.EnableStoreWrite && globals.EnableWscStoreWrite { if catInfo.WscSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除 - globals.SugarLogger.Debugf("UpdateClassify strStoreID:%s, WscID:%d", strStoreID, catInfo.WscID) - err = api.WeimobAPI.UpdateClassify(catInfo.WscID, composeFakeDelName(catInfo.CatName), "") + if catInfo.WscSyncStatus&model.SyncFlagNewMask == 0 { + globals.SugarLogger.Debugf("UpdateClassify strStoreID:%s, WscID:%d", strStoreID, catInfo.WscID) + err = api.WeimobAPI.UpdateClassify(catInfo.WscID, composeFakeDelName(catInfo.CatName), "") + } } else if catInfo.WscSyncStatus&(model.SyncFlagNewMask|model.SyncFlagModifiedMask) != 0 { // 新增 catImg := "" if level == 2 { @@ -179,11 +181,13 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks storeSkuBind := &model.StoreSkuBind{} storeSkuBind.ID = skuItem.BindID if skuItem.SkuSyncStatus&model.SyncFlagDeletedMask != 0 { - goodsID := utils.Str2Int64WithDefault(skuItem.VendorNameID, 0) - if err = api.WeimobAPI.UpdateGoodsShelfStatus([]int64{goodsID}, false); err == nil { - err = api.WeimobAPI.UpdateGoodsTitle(goodsID, composeFakeDelName(skuItem.Name)) - } else if intErr, ok := err.(*utils.ErrorWithCode); ok && intErr.Code() == "1001930300001" { // 商品不存在错 - err = nil // 强制忽略 + if skuItem.SkuSyncStatus&model.SyncFlagNewMask == 0 { + goodsID := utils.Str2Int64WithDefault(skuItem.VendorNameID, 0) + if err = api.WeimobAPI.UpdateGoodsShelfStatus([]int64{goodsID}, false); err == nil { + err = api.WeimobAPI.UpdateGoodsTitle(goodsID, composeFakeDelName(skuItem.Name)) + } else if intErr, ok := err.(*utils.ErrorWithCode); ok && intErr.Code() == "1001930300001" { // 商品不存在错 + err = nil // 强制忽略 + } } } else if skuItem.SkuSyncStatus&(model.SyncFlagModifiedMask|model.SyncFlagNewMask) != 0 { outerGoodsCode := utils.Int2Str(skuItem.NameID)