diff --git a/business/partner/purchase/ebai/store_sku.go b/business/partner/purchase/ebai/store_sku.go index 023b8dfc0..1c929b1e4 100644 --- a/business/partner/purchase/ebai/store_sku.go +++ b/business/partner/purchase/ebai/store_sku.go @@ -293,8 +293,9 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks if storeSku.NameID == 0 || storeSku.EbaiSyncStatus&model.SyncFlagDeletedMask != 0 { if storeSku.EbaiSyncStatus&model.SyncFlagNewMask == 0 && !jxutils.IsEmptyID(storeSku.EbaiID) { if globals.EnableEbaiStoreWrite { - err = api.EbaiAPI.SkuDelete(strStoreID, utils.Int64ToStr(storeSku.EbaiID)) - err = ignoreNoSkuErr(err) + if err = api.EbaiAPI.SkuDelete(strStoreID, utils.Int64ToStr(storeSku.EbaiID)); ebaiapi.IsErrSkuNotExist(err) { + err = nil + } } } if err == nil { @@ -319,10 +320,11 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks } if err == nil { updateFields = append(updateFields, model.FieldEbaiID) - } else if storeSku.EbaiID = api.EbaiAPI.GetEbaiSkuIDFromError(strStoreID, storeSku.SkuID, err); storeSku.EbaiID > 0 { - // globals.SugarLogger.Debugf("SyncStoreSkus test storeSku.EbaiID:%d, err:%v", storeSku.EbaiID, err) - updateFields = append(updateFields, model.FieldEbaiID) - err = skuUpdate(strStoreID, storeSku) + } else if ebaiapi.IsErrSkuExist(err) { + if storeSku.EbaiID = api.EbaiAPI.GetEbaiSkuIDFromCustomID(strStoreID, utils.Int2Str(storeSku.SkuID)); storeSku.EbaiID > 0 { + updateFields = append(updateFields, model.FieldEbaiID) + err = skuUpdate(strStoreID, storeSku) + } } } else { err = fmt.Errorf("SKUANME%d:%s没有图片,同步失败", storeSku.NameID, storeSku.Name) @@ -364,22 +366,6 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks return rootTask.ID, err } -func ignoreNoSkuErr(err error) error { - if err != nil { - if codeErr, ok := err.(*utils.ErrorWithCode); ok { - if codeErr.IntCode() == 1 { - for _, v := range []string{"SKU不存在或者已经被删除", "sku_id与shop_id不匹配"} { - if strings.Index(codeErr.ErrMsg(), v) > 0 { - err = nil - break - } - } - } - } - } - return err -} - func skuUpdate(strStoreID string, storeSku *tStoreSkuFullInfo) (err error) { if globals.EnableEbaiStoreWrite { if _, err = api.EbaiAPI.SkuUpdate(strStoreID, storeSku.EbaiID, genSkuParamsFromStoreSkuInfo(storeSku)); err != nil { @@ -645,12 +631,20 @@ func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask t if catInfo.EbaiSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除 if catInfo.EbaiSyncStatus&model.SyncFlagNewMask == 0 && catInfo.EbaiID != 0 { if globals.EnableEbaiStoreWrite { - err = api.EbaiAPI.ShopCategoryDelete(strStoreID, catInfo.EbaiID) + if err = api.EbaiAPI.ShopCategoryDelete(strStoreID, catInfo.EbaiID); ebaiapi.IsErrCategoryNotExist(err) { + err = nil + } } } } else if catInfo.EbaiSyncStatus&model.SyncFlagNewMask != 0 { // 新增 if globals.EnableEbaiStoreWrite { - catInfo.EbaiID, err = api.EbaiAPI.ShopCategoryCreate(strStoreID, catInfo.ParentEbaiID, formatName(catInfo.Name), jxCatSeq2Ebai(catInfo.Seq)) + catName := formatName(catInfo.Name) + catInfo.EbaiID, err = api.EbaiAPI.ShopCategoryCreate(strStoreID, catInfo.ParentEbaiID, catName, jxCatSeq2Ebai(catInfo.Seq)) + if ebaiapi.IsErrCategoryExist(err) { + if catInfo.EbaiID = api.EbaiAPI.GetEbaiCatIDFromName(strStoreID, catName); catInfo.EbaiID > 0 { + err = nil + } + } } else { catInfo.EbaiID = jxutils.GenFakeID() } diff --git a/business/partner/purchase/mtwm/store_sku.go b/business/partner/purchase/mtwm/store_sku.go index 0e139b5f0..cb1afa083 100644 --- a/business/partner/purchase/mtwm/store_sku.go +++ b/business/partner/purchase/mtwm/store_sku.go @@ -43,10 +43,12 @@ func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask t if catInfo.StoreCatSyncStatus&model.SyncFlagNewMask == 0 && !dao.IsVendorThingIDEmpty(catInfo.VendorCatID) { globals.SugarLogger.Debugf("RetailCatDelete vendorStoreID:%s, MtwmID:%s", vendorStoreID, catInfo.VendorCatID) if globals.EnableMtwmStoreWrite { - err = api.MtwmAPI.RetailCatDelete(vendorStoreID, catInfo.VendorCatID) + if err = api.MtwmAPI.RetailCatDelete(vendorStoreID, catInfo.VendorCatID); mtwmapi.IsErrCategoryNotExist(err) { + err = nil + } } } - } else if catInfo.StoreCatSyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreSkuModifiedMask) != 0 { // 新增 + } else if catInfo.StoreCatSyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreSkuModifiedMask) != 0 { // 新增或修改 catName := catInfo.Name subCatName := "" originName := "" @@ -68,7 +70,9 @@ func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask t } 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 = api.MtwmAPI.RetailCatUpdate(vendorStoreID, originName, catName, subCatName, catInfo.Seq); catInfo.StoreCatSyncStatus&model.SyncFlagNewMask != 0 && mtwmapi.IsErrCategoryExist(err) { + err = nil + } } if err == nil { storeCatMap.MtwmID = catInfo.Name @@ -265,9 +269,10 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks if skuItem.NameID == 0 || skuItem.StoreSkuSyncStatus&model.SyncFlagDeletedMask != 0 { if skuItem.StoreSkuSyncStatus&model.SyncFlagNewMask == 0 && !dao.IsVendorThingIDEmpty(skuItem.VendorSkuID) { if globals.EnableMtwmStoreWrite { - err = api.MtwmAPI.RetailDelete(vendorStoreID, skuItem.VendorSkuID) + if err = api.MtwmAPI.RetailDelete(vendorStoreID, skuItem.VendorSkuID); mtwmapi.IsErrSkuNotExist(err) { + err = nil + } } - err = ignoreNoAppFoodErr(err) } if err == nil { storeSkuBind.DeletedAt = time.Now() @@ -599,14 +604,3 @@ func (p *PurchaseHandler) DeleteRemoteStoreSkus(ctx *jxcontext.Context, parentTa func (p *PurchaseHandler) GetStoresSku(ctx *jxcontext.Context, parentTask tasksch.ITask, storeIDs []int) (storeSkuList []*model.StoreSkuBind, err error) { return storeSkuList, err } - -func ignoreNoAppFoodErr(err error) error { - if err != nil { - if codeErr, ok := err.(*utils.ErrorWithCode); ok { - if codeErr.IntCode() == mtwmapi.ErrCodeNoAppFood { - err = nil - } - } - } - return err -} diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index 2b68ca8db..a39fa3b0d 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -158,8 +158,11 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v } else { err = api.MtwmAPI.RetailCatSkuBatchDelete(vendorStoreID, nil, nil, partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDList()) } + if mtwmapi.IsErrSkuNotExist(err) { + err = nil + } } - return ignoreNoAppFoodErr(err) + return err } func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.BareStoreSkuInfo) (err error) {