- try to refactor syncSkuNameAsSpu
This commit is contained in:
@@ -370,40 +370,32 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
|
||||
// SPU的SKU NAME不需要规格信息
|
||||
skuName = jxutils.ComposeSkuName(skuExt.Prefix, skuExt.Name, sku.Comment, "", 0, "", 0)
|
||||
skuNameJdID := skuExt.JdID
|
||||
// 这样写的原因是在sync里面已经把数据全部取出来了,在这个函数里对于数据库的改动不能体现,打个补丁
|
||||
globals.SugarLogger.Debugf("syncSkuNameAsSpu1 sku.id=%d, bareSkuName:%s, skuName:%s, skuNameJdID:%d", sku.ID, skuExt.Name, skuName, skuNameJdID)
|
||||
spuAddParams, skuAddParams := splitAddParams(addParams)
|
||||
// if jxutils.IsFakeID(skuNameJdID) {
|
||||
// tmpSkuName := &model.SkuName{}
|
||||
// tmpSkuName.ID = skuExt.ID
|
||||
// if err = dao.GetEntity(db, tmpSkuName); err != nil {
|
||||
// return "", err
|
||||
// if !jxutils.IsFakeID(skuNameJdID) {
|
||||
// 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 { // 非首次新增SKU
|
||||
// if globals.EnableStoreWrite {
|
||||
// vendorSkuID2, err2 := api.JdAPI.AppendSku(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, composeSkuSpec(sku.SpecQuality, sku.SpecUnit, skuExt.Unit), skuAddParams)
|
||||
// if err = err2; err == nil {
|
||||
// vendorSkuID = utils.Int64ToStr(vendorSkuID2)
|
||||
// }
|
||||
// }
|
||||
// } else if sku.JdSyncStatus&model.SyncFlagModifiedMask != 0 {
|
||||
// params := make(map[string]interface{})
|
||||
// params[jdapi.KeySkuName] = skuName
|
||||
// params[jdapi.KeyImages] = []string{skuExt.Img}
|
||||
// params[jdapi.KeyFixedStatus] = jxStatus2jdStatus(sku.Status)
|
||||
// params[jdapi.KeyWeight] = jxutils.IntWeight2Float(sku.Weight)
|
||||
// params[jdapi.KeySkuPrice] = price
|
||||
// if globals.EnableStoreWrite {
|
||||
// err = api.JdAPI.UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.MergeMaps(params, skuAddParams))
|
||||
// }
|
||||
// }
|
||||
// globals.SugarLogger.Debugf("syncSkuNameAsSpu2 sku.id=%d, skuName:%s, tmpSkuName:%s", sku.ID, skuExt.Name, utils.Format4Output(tmpSkuName, false))
|
||||
// skuExt.JdID = tmpSkuName.JdID
|
||||
// skuNameJdID = skuExt.JdID
|
||||
// }
|
||||
if !jxutils.IsFakeID(skuNameJdID) {
|
||||
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 { // 非首次新增SKU
|
||||
if globals.EnableStoreWrite {
|
||||
vendorSkuID2, err2 := api.JdAPI.AppendSku(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, composeSkuSpec(sku.SpecQuality, sku.SpecUnit, skuExt.Unit), skuAddParams)
|
||||
if err = err2; err == nil {
|
||||
vendorSkuID = utils.Int64ToStr(vendorSkuID2)
|
||||
}
|
||||
}
|
||||
} else if sku.JdSyncStatus&model.SyncFlagModifiedMask != 0 {
|
||||
params := make(map[string]interface{})
|
||||
params[jdapi.KeySkuName] = skuName
|
||||
params[jdapi.KeyImages] = []string{skuExt.Img}
|
||||
params[jdapi.KeyFixedStatus] = jxStatus2jdStatus(sku.Status)
|
||||
params[jdapi.KeyWeight] = jxutils.IntWeight2Float(sku.Weight)
|
||||
params[jdapi.KeySkuPrice] = price
|
||||
if globals.EnableStoreWrite {
|
||||
err = api.JdAPI.UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.MergeMaps(params, skuAddParams))
|
||||
}
|
||||
}
|
||||
if !jxutils.IsFakeID(skuNameJdID) && sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除SKU
|
||||
err = api.JdAPI.UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.Params2Map(jdapi.KeyFixedStatus, jdapi.SkuFixedStatusDeleted))
|
||||
}
|
||||
if err == nil {
|
||||
if skuExt.JdSyncStatus&model.SyncFlagDeletedMask != 0 {
|
||||
@@ -442,6 +434,8 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
|
||||
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 {
|
||||
skuExt.JdID = vendorSpuID
|
||||
// skuNameJdID = skuExt.JdID // 这个是故意去掉的,这样之后的首次SKU修改操作就会被忽略,下一条语句也就可以不用了
|
||||
// sku.JdSyncStatus &= ^model.SyncFlagNewMask
|
||||
vendorSkuID = utils.Int64ToStr(skuPairs[0].SkuId)
|
||||
updateFields = append(updateFields, model.FieldJdID)
|
||||
}
|
||||
@@ -468,6 +462,29 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt
|
||||
}
|
||||
}
|
||||
}
|
||||
if err == nil && !jxutils.IsFakeID(skuNameJdID) {
|
||||
if sku.JdSyncStatus&model.SyncFlagNewMask != 0 { // 非首次新增SKU
|
||||
if globals.EnableStoreWrite {
|
||||
vendorSkuID2, err2 := api.JdAPI.AppendSku(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), skuName, price, jxutils.IntWeight2Float(sku.Weight), []string{skuExt.Img}, jxStatus2jdStatus(sku.Status), true, composeSkuSpec(sku.SpecQuality, sku.SpecUnit, skuExt.Unit), skuAddParams)
|
||||
if err = err2; err == nil {
|
||||
vendorSkuID = utils.Int64ToStr(vendorSkuID2)
|
||||
}
|
||||
}
|
||||
} else if sku.JdSyncStatus&model.SyncFlagModifiedMask != 0 {
|
||||
params := make(map[string]interface{})
|
||||
params[jdapi.KeySkuName] = skuName
|
||||
params[jdapi.KeyImages] = []string{skuExt.Img}
|
||||
params[jdapi.KeyFixedStatus] = jxStatus2jdStatus(sku.Status)
|
||||
params[jdapi.KeyWeight] = jxutils.IntWeight2Float(sku.Weight)
|
||||
params[jdapi.KeySkuPrice] = price
|
||||
if globals.EnableStoreWrite {
|
||||
err = api.JdAPI.UpdateSkuBaseInfo(utils.Int2Str(skuExt.ID), utils.Int2Str(sku.ID), utils.MergeMaps(params, skuAddParams))
|
||||
}
|
||||
}
|
||||
if err == nil {
|
||||
sku.JdSyncStatus = 0
|
||||
}
|
||||
}
|
||||
return vendorSkuID, err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user