From 7da96a60f8b25eb323cdb2f573e1e5269d5fbca7 Mon Sep 17 00:00:00 2001 From: gazebo Date: Sat, 18 Jan 2020 19:17:09 +0800 Subject: [PATCH] =?UTF-8?q?ComposeSkuNameOriginal=E6=94=B9=E7=94=A8strings?= =?UTF-8?q?.Builder=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/jxutils.go | 18 +++++++++++++----- business/jxutils/jxutils_test.go | 29 +++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 5 deletions(-) diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index b666a5ea3..517882740 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -328,20 +328,28 @@ func FloatWeight2Int(weight float32) int { } func ComposeSkuNameOriginal(prefix, name, comment, unit string, spec_quality float32, spec_unit string, maxLen int) (skuName string) { + strBuilder := &strings.Builder{} if prefix != "" { - skuName = "[" + prefix + "]" + strBuilder.WriteString("[") + strBuilder.WriteString(prefix) + strBuilder.WriteString("]") } skuName += name + strBuilder.WriteString(name) if unit == "份" { - skuName += "约" + strBuilder.WriteString("约") } if unit != "" { - skuName += ComposeSkuSpec(spec_quality, spec_unit) - skuName += "/" + unit + strBuilder.WriteString(ComposeSkuSpec(spec_quality, spec_unit)) + strBuilder.WriteString("/") + strBuilder.WriteString(unit) } if comment != "" { - skuName += "(" + comment + ")" + strBuilder.WriteString("(") + strBuilder.WriteString(comment) + strBuilder.WriteString(")") } + skuName = strBuilder.String() if maxLen > 0 { skuName = utils.LimitUTF8StringLen(skuName, maxLen) } diff --git a/business/jxutils/jxutils_test.go b/business/jxutils/jxutils_test.go index d6ecd5e26..5290acd36 100644 --- a/business/jxutils/jxutils_test.go +++ b/business/jxutils/jxutils_test.go @@ -307,3 +307,32 @@ func TestGenFakeUPC(t *testing.T) { t.Fatal("wrong2") } } + +func TestComposeSkuNameOriginal(t *testing.T) { + for _, v := range [][]string{ + []string{ + "单独商品名3g/件(商品注释)", + "", + "单独商品名", + "商品注释", + "件", + "3.0", + "g", + "0", + }, + []string{ + "[高级]单独商品名约3g/份", + "高级", + "单独商品名", + "", + "份", + "3.0", + "g", + "0", + }, + } { + if str := ComposeSkuNameOriginal(v[1], v[2], v[3], v[4], float32(utils.Str2Float64(v[5])), v[6], int(utils.Str2Int64(v[7]))); str != v[0] { + t.Errorf("%s failed, result:%s, expect:%s", v[1], str, v[0]) + } + } +}