zhangzengfei
2024-08-23 6dea379dc74a941a83c2e5582963c0e58e6ca5bf
修改楼层解析, 添加老版本兼容
1个文件已修改
20 ■■■■■ 已修改文件
pkg/floor.go 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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' {