- 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,补丁形式
|
||||
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))
|
||||
|
||||
Reference in New Issue
Block a user