diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 681d7b7fa..32e1f6176 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -204,16 +204,21 @@ func formalizeStoreSkuList(inSkuList []*dao.StoreSkuSyncInfo) []*dao.StoreSkuSyn } func sku2Update(vendorID int, sku *dao.StoreSkuSyncInfo, syncStatus int8) (item *dao.KVUpdateItem) { - if syncStatus&(model.SyncFlagDeletedMask|model.SyncFlagNewMask|model.SyncFlagModifiedMask) != 0 { - sku.StoreSkuSyncStatus = 0 - } else { - sku.StoreSkuSyncStatus = sku.StoreSkuSyncStatus & ^syncStatus - } kvs := map[string]interface{}{ dao.GetSyncStatusStructField(model.VendorNames[vendorID]): sku.StoreSkuSyncStatus, } - if syncStatus == model.SyncFlagNewMask { - kvs[dao.GetVendorThingIDStructField(model.VendorNames[vendorID])] = sku.VendorSkuID + if syncStatus&(model.SyncFlagDeletedMask|model.SyncFlagNewMask|model.SyncFlagModifiedMask) != 0 { + sku.StoreSkuSyncStatus = 0 + if model.IsSyncStatusNew(syncStatus) { + kvs[dao.GetVendorThingIDStructField(model.VendorNames[vendorID])] = sku.VendorSkuID + } else if model.IsSyncStatusDelete(syncStatus) { + // todo 在storeSkuBind的DeletedAt为空时,应该设置,但当前sku.DeletedAt不是storeSkuBind的 + // if utils.IsTimeZero(sku.DeletedAt) { + // kvs[model.FieldDeletedAt] = time.Now() + // } + } + } else { + sku.StoreSkuSyncStatus = sku.StoreSkuSyncStatus & ^syncStatus } storeSku := &model.StoreSkuBind{} storeSku.ID = sku.BindID diff --git a/business/partner/purchase/mtwm/store_sku.go b/business/partner/purchase/mtwm/store_sku.go index 351394694..886e02845 100644 --- a/business/partner/purchase/mtwm/store_sku.go +++ b/business/partner/purchase/mtwm/store_sku.go @@ -281,8 +281,10 @@ func (p *PurchaseHandler) syncStoreSkus(ctx *jxcontext.Context, parentTask tasks } } if err == nil { - storeSkuBind.DeletedAt = time.Now() - updateFields = append(updateFields, model.FieldDeletedAt) + if utils.IsTimeZero(storeSkuBind.DeletedAt) { + storeSkuBind.DeletedAt = time.Now() + updateFields = append(updateFields, model.FieldDeletedAt) + } if !dao.IsVendorThingIDEmpty(skuItem.VendorSkuID) { storeSkuBind.MtwmID = 0 updateFields = append(updateFields, model.FieldMtwmID) diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index 1365023f7..3db317c23 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -199,9 +199,6 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v // todo 部分失败 err = api.MtwmAPI.RetailCatSkuBatchDelete(vendorStoreID, nil, nil, partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDList()) } - if mtwmapi.IsErrSkuNotExist(err) { - err = nil - } } return nil, err }