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