From 6dea379dc74a941a83c2e5582963c0e58e6ca5bf Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期五, 23 八月 2024 18:32:10 +0800 Subject: [PATCH] 修改楼层解析, 添加老版本兼容 --- pkg/floor.go | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-) diff --git a/pkg/floor.go b/pkg/floor.go index c4c52a7..ad14c3b 100644 --- a/pkg/floor.go +++ b/pkg/floor.go @@ -56,21 +56,27 @@ // RestoreFloor restores the three-character string back to the original floor string func RestoreFloor(encoded string) (string, string, error) { - if len(encoded) != 4 { + var direction, sign uint8 + var floorNumber, floorStr, directionStr string + + // 3浣嶆槸鏃х殑鏍煎紡, 涓轰簡鍏煎, 鏆傛椂淇濈暀 + if len(encoded) == 3 { + sign = encoded[0] + floorNumber = encoded[1:] + } else if len(encoded) == 4 { + direction = encoded[0] + sign = encoded[1] + floorNumber = encoded[2:] + } else { return "", "", fmt.Errorf("encoded string must be 3 characters long") } - direction := encoded[0] - sign := encoded[1] - number := encoded[2:] - // Convert the number back to integer to remove any leading zeros - parsedNumber, err := strconv.Atoi(number) + parsedNumber, err := strconv.Atoi(floorNumber) if err != nil { return "", "", err } - var floorStr, directionStr string if sign == '1' { floorStr = fmt.Sprintf("-%dF", parsedNumber) } else if sign == '0' { -- Gitblit v1.8.0