fix levenshtein
This commit is contained in:
parent
8cbfd02008
commit
7bf9cf9f25
|
@ -58,7 +58,8 @@ function levenshtein(a, b) {
|
|||
return matrix[b.length][a.length];
|
||||
}
|
||||
|
||||
var current = {"plate": "", "time": 0, "type": "in"};
|
||||
var currentIn = {"plate": "", "time": 0};
|
||||
var currentOut = {"plate": "", "time": 0};
|
||||
|
||||
exports.SaveLogs = async function (req, res) {
|
||||
console.log("req: ", req.body.plate, " current: ", current);
|
||||
|
@ -85,16 +86,27 @@ exports.SaveLogs = async function (req, res) {
|
|||
|
||||
var canSaveLogs = true;
|
||||
var vehicleInfo = {"status": false};
|
||||
if (req.body.type === current.type && (currentTimestamp - current.time) < 600) {
|
||||
if (req.body.plate === current.plate) {
|
||||
if (req.body.type === "in" && (currentTimestamp - currentIn.time) < 600) {
|
||||
if (req.body.plate === currentIn.plate) {
|
||||
canSaveLogs = false;
|
||||
}
|
||||
// else if (levenshtein(req.body.type, current.type) < 3) {
|
||||
// canSaveLogs = false;
|
||||
// }
|
||||
} else if (levenshtein(req.body.plate, currentIn.plate) < 2) {
|
||||
canSaveLogs = false;
|
||||
}
|
||||
}
|
||||
if (req.body.type === "out" && (currentTimestamp - currentOut.time) < 600) {
|
||||
if (req.body.plate === currentOut.plate) {
|
||||
canSaveLogs = false;
|
||||
} else if (levenshtein(req.body.plate, currentOut.plate) < 2) {
|
||||
canSaveLogs = false;
|
||||
}
|
||||
}
|
||||
if (canSaveLogs) {
|
||||
current = {"plate": req.body.plate, "time": currentTimestamp, "type": req.body.type};
|
||||
if (req.body.type === "in") {
|
||||
currentIn = {"plate": req.body.plate, "time": currentTimestamp};
|
||||
}
|
||||
if (req.body.type === "out") {
|
||||
currentOut = {"plate": req.body.plate, "time": currentTimestamp};
|
||||
}
|
||||
var fileName = req.body.plate + "_" + currentTimestamp + ".png";
|
||||
var plateSaved = currentYear + "/" + currentMonth + "/" + currentDate + "/" + req.body.type + "/plate/" + fileName;
|
||||
var frameSaved = currentYear + "/" + currentMonth + "/" + currentDate + "/" + req.body.type + "/frame/" + fileName;
|
||||
|
@ -118,7 +130,7 @@ exports.SaveLogs = async function (req, res) {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
var query_plate_levenshtein = await db.query("SELECT * FROM `vehicle` WHERE levenshtein('" + req.body.plate + "', `plate`) BETWEEN 0 AND 2 LIMIT 0,1");
|
||||
var query_plate_levenshtein = await db.query("SELECT * FROM `vehicle` WHERE levenshtein('%" + req.body.plate + "', `plate`) BETWEEN 0 AND 1 LIMIT 0,1");
|
||||
if (query_plate_levenshtein.length > 0) {
|
||||
vehicleInfo = {"status": true, "data": query_plate_levenshtein[0]};
|
||||
if (req.body.type == "in") {
|
||||
|
@ -137,11 +149,11 @@ exports.SaveLogs = async function (req, res) {
|
|||
await db.query("INSERT INTO logs_unknow(`plate`,`plate_image_in`,`frame_image_in`,`time_in`) VALUES ('" + req.body.plate + "','" + plateSaved + "','" + frameSaved + "'," + currentTimestamp + ")");
|
||||
}
|
||||
if (req.body.type == "out") {
|
||||
var checkIn_raw = await db.query("SELECT * FROM logs_unknow WHERE plate=" + req.body.plate + " AND time_out=0 ORDER BY time_in DESC LIMIT 0,1");
|
||||
var checkIn_raw = await db.query("SELECT * FROM logs_unknow WHERE plate='" + req.body.plate + "' AND time_out=0 ORDER BY time_in DESC LIMIT 0,1");
|
||||
if (checkIn_raw.length > 0) {
|
||||
await db.query("UPDATE logs_unknow SET `plate_image_out`='" + plateSaved + "',`frame_image_out`='" + frameSaved + "',`time_out`=" + currentTimestamp + " WHERE id=" + checkIn_raw[0].id);
|
||||
} else {
|
||||
var checkIn_levenshtein = await db.query("SELECT * FROM `logs_unknow` WHERE levenshtein('" + req.body.plate + "', `plate`) BETWEEN 0 AND 2 AND time_out=0 ORDER BY time_in DESC LIMIT 0,1");
|
||||
var checkIn_levenshtein = await db.query("SELECT * FROM `logs_unknow` WHERE levenshtein('%" + req.body.plate + "', `plate`) BETWEEN 0 AND 1 AND time_out=0 ORDER BY time_in DESC LIMIT 0,1");
|
||||
if (checkIn_levenshtein.length > 0) {
|
||||
await db.query("UPDATE logs_unknow SET `plate_image_out`='" + plateSaved + "',`frame_image_out`='" + frameSaved + "',`time_out`=" + currentTimestamp + " WHERE id=" + checkIn_levenshtein[0].id);
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue
Block a user