diff --git a/business/partner/purchase/jd/sku.go b/business/partner/purchase/jd/sku.go index e107af1c5..c1c9a8b0c 100644 --- a/business/partner/purchase/jd/sku.go +++ b/business/partner/purchase/jd/sku.go @@ -3,6 +3,8 @@ package jd // 这里函数取得的信息,除了与自身实体相关的ID(比如PARENT ID),都已经转换成了本地ID了 import ( + "unicode/utf8" + "git.rosy.net.cn/baseapi/platformapi/jdapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" @@ -361,7 +363,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)) } else if sku.JdSyncStatus&model.SyncFlagNewMask != 0 && !jxutils.IsFakeID(skuNameJdID) { // 非首次新增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, composeSkuSpec(sku.SpecQuality, sku.SpecUnit), nil) + 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, composeSkuSpec(sku.SpecQuality, sku.SpecUnit, skuExt.Unit), nil) if err = err2; err == nil { vendorSkuID = utils.Int64ToStr(vendorSkuID2) } @@ -406,7 +408,7 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt jdapi.KeySkuPrice: price, jdapi.KeyWeight: jxutils.IntWeight2Float(sku.Weight), jdapi.KeyIsSale: true, - jdapi.FakeKeySpecAttr: composeSkuSpec(sku.SpecQuality, sku.SpecUnit), + jdapi.FakeKeySpecAttr: composeSkuSpec(sku.SpecQuality, sku.SpecUnit, skuExt.Unit), }, } if globals.EnableStoreWrite { @@ -442,8 +444,17 @@ func (p *PurchaseHandler) syncSkuNameAsSpu(db *dao.DaoDB, sku *model.Sku, skuExt return vendorSkuID, err } -func composeSkuSpec(specQuality float32, specUnit string) string { - return "约" + jxutils.ComposeSkuSpec(specQuality, specUnit) + "/份" +func composeSkuSpec(specQuality float32, specUnit, unit string) string { + prefix := "" + if unit == model.SpecialUnit { + prefix = "约" + } + value := prefix + jxutils.ComposeSkuSpec(specQuality, specUnit) + suffix := "/" + unit + if utf8.RuneCountInString(value) <= 8-utf8.RuneCountInString(suffix) { + value += suffix + } + return value } func jdStatus2jxStatus(jdStatus int) (jxStatus int) {