diff --git a/business/partner/purchase/jd/sku.go b/business/partner/purchase/jd/sku.go index e154042c4..90631dc57 100644 --- a/business/partner/purchase/jd/sku.go +++ b/business/partner/purchase/jd/sku.go @@ -327,14 +327,23 @@ func (p *PurchaseHandler) RefreshAllSkusID(ctx *jxcontext.Context, parentTask ta return rootTask.ID, err } +// 这个处理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, } + // 这样写的原因是在sync里面已经把数据全部取出来了,在这个函数里对于数据库的改动不能体现,打个补丁 + skuNameJdID := skuExt.JdID + if skuNameJdID == 0 { + if err = dao.GetEntity(db, &skuExt.SkuName); err != nil { + return "", err + } + skuNameJdID = skuExt.JdID + } if sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除SKU err = api.JdAPI.UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted)) - } else if sku.JdSyncStatus&model.SyncFlagNewMask != 0 && skuExt.JdSyncStatus&model.SyncFlagNewMask == 0 { // 非首次新增SKU + } else if sku.JdSyncStatus&model.SyncFlagNewMask != 0 && skuNameJdID != 0 { // 非首次新增SKU if globals.EnableStoreWrite { vendorSkuID2, err2 := api.JdAPI.AppendSku(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), skuExt.JdCategoryID, shopCategories, skuExt.BrandID, skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, addParams) if err = err2; err == nil { @@ -372,7 +381,7 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted)) } } - } else if skuExt.JdSyncStatus&model.SyncFlagNewMask != 0 { + } else if skuExt.JdSyncStatus&model.SyncFlagNewMask != 0 && skuNameJdID == 0 { if globals.EnableStoreWrite { spuName := jxutils.ComposeSpuName(skuExt.Prefix, skuExt.Name, 0) skus := []map[string]interface{}{