From 97fe760ac5c0bbf0380f24cb2036d93c2ea4063d Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 14 Aug 2019 16:58:15 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=90=8C=E6=AD=A5=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=97=B6=EF=BC=8C=E5=A6=82=E6=9E=9C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E4=B8=80=E4=B8=AA=E4=B8=8D=E5=AD=98=E5=9C=A8=E7=9A=84?= =?UTF-8?q?SKU=EF=BC=8C=E8=A6=81=E6=8A=A5=E9=94=99=E3=80=82=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=88=90=E5=8A=9F=E5=90=8E=E6=B8=85=E9=99=A4=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0SKUID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync_store_sku.go | 52 +++++++++++++++----------- business/jxutils/tasksch/task.go | 1 + 2 files changed, 32 insertions(+), 21 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index e116ab8ab..8c85ea099 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -212,11 +212,12 @@ func sku2Update(vendorID int, sku *dao.StoreSkuSyncInfo, syncStatus int8) (item if syncStatus&(model.SyncFlagDeletedMask|model.SyncFlagNewMask|model.SyncFlagModifiedMask) != 0 { sku.StoreSkuSyncStatus = 0 if model.IsSyncStatusNew(syncStatus) { - kvs[dao.GetVendorThingIDStructField(model.VendorNames[vendorID])] = sku.VendorSkuID + kvs[dao.GetVendorThingIDStructField(model.VendorNames[vendorID])] = utils.Str2Int64WithDefault(sku.VendorSkuID, 0) } else if model.IsSyncStatusDelete(syncStatus) { if utils.IsTimeZero(sku.BindDeletedAt) { kvs[model.FieldDeletedAt] = time.Now() } + kvs[dao.GetVendorThingIDStructField(model.VendorNames[vendorID])] = 0 } } else if syncStatus&model.SyncFlagStockMask != 0 { if isStoreSkuSyncNeedDelete(sku) { @@ -310,29 +311,37 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo createList = append(createList, sku) } } - } else if !dao.IsVendorThingIDEmpty(sku.VendorSkuID) { - if model.IsSyncStatusUpdate(sku.StoreSkuSyncStatus) && singleStoreHandler != nil { - updateList = append(updateList, calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage))) + } else { + if dao.IsVendorThingIDEmpty(sku.VendorSkuID) { + err = fmt.Errorf("门店:%d,修改没有创建的商品:%d", storeID, sku.SkuID) + if parentTask == nil { + return err + } + parentTask.AddBatchErr(err) } else { - if model.IsSyncStatusPrice(sku.StoreSkuSyncStatus) { - bareSku = storeSkuSyncInfo2Bare(calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage))) - priceList = append(priceList, bareSku) - } - if model.IsSyncStatusUpdate(sku.StoreSkuSyncStatus) && singleStoreHandler == nil { // 正常就不应该进到这里 - if bareSku == nil { - bareSku = storeSkuSyncInfo2Bare(sku) + if model.IsSyncStatusUpdate(sku.StoreSkuSyncStatus) && singleStoreHandler != nil { + updateList = append(updateList, calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage))) + } else { + if model.IsSyncStatusPrice(sku.StoreSkuSyncStatus) { + bareSku = storeSkuSyncInfo2Bare(calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage))) + priceList = append(priceList, bareSku) } - updateItems = append(updateItems, sku2Update(vendorID, sku, model.SyncFlagStockMask)) - } - if model.IsSyncStatusSale(sku.StoreSkuSyncStatus) { - if bareSku == nil { - bareSku = storeSkuSyncInfo2Bare(sku) + if model.IsSyncStatusUpdate(sku.StoreSkuSyncStatus) && singleStoreHandler == nil { // 正常就不应该进到这里 + if bareSku == nil { + bareSku = storeSkuSyncInfo2Bare(sku) + } + updateItems = append(updateItems, sku2Update(vendorID, sku, model.SyncFlagStockMask)) } - if sku.MergedStatus == model.SkuStatusNormal { - onlineList = append(onlineList, bareSku) - stockList = append(stockList, bareSku) - } else { - offlineList = append(offlineList, bareSku) + if model.IsSyncStatusSale(sku.StoreSkuSyncStatus) { + if bareSku == nil { + bareSku = storeSkuSyncInfo2Bare(sku) + } + if sku.MergedStatus == model.SkuStatusNormal { + onlineList = append(onlineList, bareSku) + stockList = append(stockList, bareSku) + } else { + offlineList = append(offlineList, bareSku) + } } } } @@ -471,6 +480,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo return err } +// 清除京西没有,平台有的商品 func PruneMissingStoreSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorID, storeID int, vendorStoreID string, isAsync, isContinueWhenError bool) (hint string, err error) { handler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) if handler == nil { diff --git a/business/jxutils/tasksch/task.go b/business/jxutils/tasksch/task.go index 9228a6be1..533c84e7c 100644 --- a/business/jxutils/tasksch/task.go +++ b/business/jxutils/tasksch/task.go @@ -62,6 +62,7 @@ type ITask interface { GetErr() error // GetDetailErrList() []error GetLeafResult() (finishedItemCount, failedItemCount int) + AddBatchErr(err error) json.Marshaler }