From a91c513eed03936b650dba533044835b6ba5d6f0 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 24 Oct 2019 10:54:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E7=BE=8E=E5=9B=A2=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0app=5Ffood=5Fcode=E5=8F=AF=E8=83=BD=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E7=9A=84=E6=83=85=E5=86=B5amendAndPruneStoreStuff?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 05588d1dd..02be90ef5 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -620,12 +620,20 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v if err = err2; err == nil { remoteSkuMap := make(map[int]int) for _, v := range remoteSkuList { - remoteSkuMap[v.SkuList[0].SkuID] = 1 - if localSkuMap[v.SkuList[0].SkuID] == nil { - sku2Delete = append(sku2Delete, &partner.StoreSkuInfo{ - SkuID: v.SkuList[0].SkuID, - VendorSkuID: v.SkuList[0].VendorSkuID, - }) + if skuID := v.SkuList[0].SkuID; skuID > 0 { + if localSkuMap[skuID] == nil || + remoteSkuMap[skuID] == 1 /*skuID在平台重复,典型的是美团可能会出现此类情况*/ { + sku2Delete = append(sku2Delete, &partner.StoreSkuInfo{ + SkuID: skuID, + VendorSkuID: v.SkuList[0].VendorSkuID, + }) + } + if remoteSkuMap[skuID] == 0 { + remoteSkuMap[skuID] = 1 + } else { + // 重复的删除后,再打上待创建标记 + remoteSkuMap[skuID] = 0 + } } }