- 同步平台商品时,如果修复一个不存在的SKU,要报错。删除成功后清除平台SKUID

This commit is contained in:
gazebo
2019-08-14 16:58:15 +08:00
parent 79925dd1de
commit 97fe760ac5
2 changed files with 32 additions and 21 deletions

View File

@@ -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,7 +311,14 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo
createList = append(createList, sku)
}
}
} else if !dao.IsVendorThingIDEmpty(sku.VendorSkuID) {
} 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.IsSyncStatusUpdate(sku.StoreSkuSyncStatus) && singleStoreHandler != nil {
updateList = append(updateList, calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage)))
} else {
@@ -337,6 +345,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo
}
}
}
}
if bareSku != nil {
skuMap[bareSku] = sku
}
@@ -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 {

View File

@@ -62,6 +62,7 @@ type ITask interface {
GetErr() error
// GetDetailErrList() []error
GetLeafResult() (finishedItemCount, failedItemCount int)
AddBatchErr(err error)
json.Marshaler
}