From db55aae19e9ec8a44cf0b1bc886ee666915fb252 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 30 Jan 2019 15:17:00 +0800 Subject: [PATCH] - fix bug can not real del spu in syncSkuNameAsSpu. --- business/partner/purchase/jd/sku.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/business/partner/purchase/jd/sku.go b/business/partner/purchase/jd/sku.go index 4e80288db..273a41ba1 100644 --- a/business/partner/purchase/jd/sku.go +++ b/business/partner/purchase/jd/sku.go @@ -363,10 +363,6 @@ func splitAddParams(addParams map[string]interface{}) (spuAddParams, skuAddParam // 这个处理JD SPU,补丁形式 func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt *tSkuInfoExt, price int, skuName string, shopCategories []int64, addParams map[string]interface{}) (vendorSkuID string, err error) { - updateFields := []string{ - model.FieldJdSyncStatus, - } - // SPU的SKU NAME不需要规格信息 skuName = jxutils.ComposeSkuName(skuExt.Prefix, skuExt.Name, sku.Comment, "", 0, "", 0) skuNameJdID := skuExt.JdID @@ -398,6 +394,7 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt err = api.JdAPI.UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted)) } if err == nil { + updateFields := []string{} if skuExt.JdSyncStatus&model.SyncFlagDeletedMask != 0 { sql := ` SELECT COUNT(*) ct @@ -410,9 +407,12 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt if err = dao.GetRow(db, &count, sql, sku.NameID, model.SkuStatusDeleted); err != nil { return "", err } - if (count.Ct == 0 || count.Ct == 1 && sku.JdSyncStatus&model.SyncFlagDeletedMask != 0) && globals.EnableStoreWrite { // 1就是最后删的那个 - if err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusOffline)); err == nil { - err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted)) + if count.Ct <= 1 && sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 1就是最后删的那个 + updateFields = append(updateFields, model.FieldJdSyncStatus) + if globals.EnableStoreWrite { + if err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusOffline|jdapi.SkuFixedStatusDeleted)); err == nil { + // err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted)) + } } } } else if skuExt.JdSyncStatus&model.SyncFlagNewMask != 0 && jxutils.IsFakeID(skuNameJdID) { @@ -430,6 +430,7 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt }, } skus[0] = utils.MergeMaps(skus[0], skuAddParams) + updateFields = append(updateFields, model.FieldJdSyncStatus) if globals.EnableStoreWrite { vendorSpuID, skuPairs, err2 := api.JdAPI.AddSpu(utils.Int2Str(skuExt.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, spuName, []string{skuExt.Img}, jxStatus2jdStatus(skuExt.Status), spuAddParams, skus) if err = err2; err == nil { @@ -450,12 +451,13 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt jdapi.KeyImages: []string{skuExt.Img}, jdapi.KeyFixedStatus: jxStatus2jdStatus(skuExt.Status), }, spuAddParams) + updateFields = append(updateFields, model.FieldJdSyncStatus) if globals.EnableStoreWrite { err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), params) } } if err == nil { - if skuExt.JdSyncStatus != 0 { + if skuExt.JdSyncStatus != 0 && len(updateFields) > 0 { skuExt.JdSyncStatus = 0 _, err = dao.UpdateEntity(db, &skuExt.SkuName, updateFields...) globals.SugarLogger.Debugf("syncSkuNameAsSpu4 sku.id=%d, skuName:%s, skuName:%s", sku.ID, skuExt.Name, utils.Format4Output(&skuExt.SkuName, false))