diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index dc7a9e46f..8f30abbea 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -156,11 +156,18 @@ func CallMsgHandlerAsync(handler func(), primaryID string) { } func SplitSkuName(fullName string) (name string, unit string) { + unit = "份" index := strings.Index(fullName, "/") if index >= 0 { - return fullName[:index], fullName[index+1:] + name = fullName[:index] + unitTmp := []rune(fullName[index+1:]) + if len(unitTmp) >= 1 { + unit = string(unitTmp[:1]) + } + } else { + name = fullName } - return fullName, "份" + return name, unit } func MapValue2Scope(value, fromMin, fromMax, toMin, toMax int64) int64 { diff --git a/business/jxutils/jxutils_test.go b/business/jxutils/jxutils_test.go index 40b04ec50..d8d18fbba 100644 --- a/business/jxutils/jxutils_test.go +++ b/business/jxutils/jxutils_test.go @@ -28,3 +28,26 @@ func TestMapValue2Scope(t *testing.T) { t.Fatalf("result:%d is wrong", result) } } + +func TestSplitSkuName(t *testing.T) { + name, unit := SplitSkuName("【满59免运】蒜苔肉丝约400g/个(蒜苔约250g 肉丝约150g/份)") + if name != "【满59免运】蒜苔肉丝约400g" || unit != "个" { + t.Fatalf("SplitSkuName wrong, name:%s, unit:%s", name, unit) + } + name, unit = SplitSkuName("【满59免运】蒜苔肉丝约400g/g份(蒜苔约250g 肉丝约150g/份)") + if name != "【满59免运】蒜苔肉丝约400g" || unit != "g" { + t.Fatalf("SplitSkuName wrong, name:%s, unit:%s", name, unit) + } + name, unit = SplitSkuName("【满59免运】蒜苔肉丝约400g/个") + if name != "【满59免运】蒜苔肉丝约400g" || unit != "个" { + t.Fatalf("SplitSkuName wrong, name:%s, unit:%s", name, unit) + } + name, unit = SplitSkuName("【满59免运】蒜苔肉丝约400g/") + if name != "【满59免运】蒜苔肉丝约400g" || unit != "份" { + t.Fatalf("SplitSkuName wrong, name:%s, unit:%s", name, unit) + } + name, unit = SplitSkuName("【满59免运】蒜苔肉丝约400g") + if name != "【满59免运】蒜苔肉丝约400g" || unit != "份" { + t.Fatalf("SplitSkuName wrong, name:%s, unit:%s", name, unit) + } +}