| | |
| | | ) |
| | | |
| | | // 生成一个包含楼层的人脸id,解析楼层 |
| | | // 新id的规则, 20位设备编码 +02 +14位时间 + 5555 + 3位楼层(第一位0表示正,1表示负) + 5位随机数 |
| | | // 使用48位源id, 其中前41位是imageid, 不可以修改 +99 + 3位楼层(第一位0表示正,1表示负) + 2位随机数 |
| | | func GenerateFaceIdContainFloor(srcId, floorStr string) string { |
| | | floorNum, _ := parseFloor(floorStr) |
| | | newId := srcId[0:36] + "5555" + floorNum + snowflake.CreateRandomNumber(5) |
| | | newId := srcId[0:41] + "99" + floorNum + snowflake.CreateRandomNumber(2) |
| | | |
| | | return newId |
| | | } |
| | |
| | | return "", fmt.Errorf("invalid id %s", srcId) |
| | | } |
| | | |
| | | if srcId[36:40] != "5555" { |
| | | return "", fmt.Errorf("invalid flag %s", srcId[36:40]) |
| | | if srcId[41:43] != "99" { |
| | | return "", fmt.Errorf("invalid flag %s", srcId[41:43]) |
| | | } |
| | | |
| | | return restoreFloor(srcId[40:43]) |
| | | return restoreFloor(srcId[43:46]) |
| | | } |
| | | |
| | | // parseFloor parses the floor string and returns a three-character string |