diff --git a/server/app/goauto/sybimport/parse.go b/server/app/goauto/sybimport/parse.go index d82fd60..95fddf0 100644 --- a/server/app/goauto/sybimport/parse.go +++ b/server/app/goauto/sybimport/parse.go @@ -73,7 +73,10 @@ func Parse(raw string) ParseResult { if size == "" { return ParseResult{Status: models.SYBParseStatusFailed, Note: "productSpec 剥离备注后为空"} } - return ParseResult{Size: size, Status: models.SYBParseStatusUncertain, Note: "无分隔符,仅识别出单一规格值"} + if explicitSizePattern.MatchString(size) { + return ParseResult{Size: size, Status: models.SYBParseStatusSuccess, Note: "仅识别到尺码"} + } + return ParseResult{Color: size, Status: models.SYBParseStatusSuccess, Note: "仅识别到颜色"} } firstPart := stripBrackets(trimmed[:lastComma]) @@ -81,7 +84,17 @@ func Parse(raw string) ParseResult { colorPart, sizePart := firstPart, secondPart if colorPart == "" || sizePart == "" { - return ParseResult{Color: colorPart, Size: sizePart, Status: models.SYBParseStatusUncertain, Note: "按逗号拆分后有一侧为空"} + only := colorPart + if only == "" { + only = sizePart + } + if explicitSizePattern.MatchString(only) { + return ParseResult{Size: only, Status: models.SYBParseStatusSuccess, Note: "仅识别到尺码"} + } + if only != "" && !ambiguousPattern.MatchString(only) { + return ParseResult{Color: only, Status: models.SYBParseStatusSuccess, Note: "仅识别到颜色"} + } + return ParseResult{Color: colorPart, Size: sizePart, Status: models.SYBParseStatusFailed, Note: "按逗号拆分后没有可靠规格"} } firstIsSize, secondIsSize := explicitSizePattern.MatchString(firstPart), explicitSizePattern.MatchString(secondPart) if firstIsSize && secondIsSize {