- fix bug can not real del spu in syncSkuNameAsSpu.
This commit is contained in:
@@ -363,10 +363,6 @@ func splitAddParams(addParams map[string]interface{}) (spuAddParams, skuAddParam
|
|||||||
|
|
||||||
// 这个处理JD SPU,补丁形式
|
// 这个处理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) {
|
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不需要规格信息
|
// SPU的SKU NAME不需要规格信息
|
||||||
skuName = jxutils.ComposeSkuName(skuExt.Prefix, skuExt.Name, sku.Comment, "", 0, "", 0)
|
skuName = jxutils.ComposeSkuName(skuExt.Prefix, skuExt.Name, sku.Comment, "", 0, "", 0)
|
||||||
skuNameJdID := skuExt.JdID
|
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))
|
err = api.JdAPI.UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted))
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
updateFields := []string{}
|
||||||
if skuExt.JdSyncStatus&model.SyncFlagDeletedMask != 0 {
|
if skuExt.JdSyncStatus&model.SyncFlagDeletedMask != 0 {
|
||||||
sql := `
|
sql := `
|
||||||
SELECT COUNT(*) ct
|
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 {
|
if err = dao.GetRow(db, &count, sql, sku.NameID, model.SkuStatusDeleted); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
if (count.Ct == 0 || count.Ct == 1 && sku.JdSyncStatus&model.SyncFlagDeletedMask != 0) && globals.EnableStoreWrite { // 1就是最后删的那个
|
if count.Ct <= 1 && sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 1就是最后删的那个
|
||||||
if err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusOffline)); err == nil {
|
updateFields = append(updateFields, model.FieldJdSyncStatus)
|
||||||
err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted))
|
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) {
|
} 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)
|
skus[0] = utils.MergeMaps(skus[0], skuAddParams)
|
||||||
|
updateFields = append(updateFields, model.FieldJdSyncStatus)
|
||||||
if globals.EnableStoreWrite {
|
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)
|
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 {
|
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.KeyImages: []string{skuExt.Img},
|
||||||
jdapi.KeyFixedStatus: jxStatus2jdStatus(skuExt.Status),
|
jdapi.KeyFixedStatus: jxStatus2jdStatus(skuExt.Status),
|
||||||
}, spuAddParams)
|
}, spuAddParams)
|
||||||
|
updateFields = append(updateFields, model.FieldJdSyncStatus)
|
||||||
if globals.EnableStoreWrite {
|
if globals.EnableStoreWrite {
|
||||||
err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), params)
|
err = api.JdAPI.UpdateSpu(utils.Int2Str(skuExt.ID), params)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if skuExt.JdSyncStatus != 0 {
|
if skuExt.JdSyncStatus != 0 && len(updateFields) > 0 {
|
||||||
skuExt.JdSyncStatus = 0
|
skuExt.JdSyncStatus = 0
|
||||||
_, err = dao.UpdateEntity(db, &skuExt.SkuName, updateFields...)
|
_, 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))
|
globals.SugarLogger.Debugf("syncSkuNameAsSpu4 sku.id=%d, skuName:%s, skuName:%s", sku.ID, skuExt.Name, utils.Format4Output(&skuExt.SkuName, false))
|
||||||
|
|||||||
Reference in New Issue
Block a user