ComposeSkuNameOriginal改用strings.Builder实现
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user