From e7cfe25ceba6f679f3145c09e625dabeb9addfbc Mon Sep 17 00:00:00 2001 From: dongpd Date: Tue, 11 Feb 2020 11:03:25 +0700 Subject: [PATCH] fix --- api/controllers/ApiController.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/api/controllers/ApiController.js b/api/controllers/ApiController.js index ddddfa6..f2a7268 100644 --- a/api/controllers/ApiController.js +++ b/api/controllers/ApiController.js @@ -98,7 +98,7 @@ exports.SaveLogs = async function (req, res) { if ((currentTimestamp - currentIn[i].time) < 600) { if (req.body.plate === currentIn[i].plate) { canSaveLogs = false; - } else if (levenshtein(req.body.plate, currentIn[i].plate) < 3) { + } else if (levenshtein(req.body.plate, currentIn[i].plate) < 2) { canSaveLogs = false; } } @@ -109,7 +109,7 @@ exports.SaveLogs = async function (req, res) { if ((currentTimestamp - currentOut[i].time) < 600) { if (req.body.plate === currentOut[i].plate) { canSaveLogs = false; - } else if (levenshtein(req.body.plate, currentOut[i].plate) < 3) { + } else if (levenshtein(req.body.plate, currentOut[i].plate) < 2) { canSaveLogs = false; } } @@ -117,6 +117,7 @@ exports.SaveLogs = async function (req, res) { } if (canSaveLogs) { + var currentPlate = ""; 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; @@ -127,6 +128,7 @@ exports.SaveLogs = async function (req, res) { var query_plate_raw = await db.query("SELECT * FROM vehicle WHERE plate='" + req.body.plate + "'"); if (query_plate_raw.length > 0) { vehicleInfo = {"status": true, "data": query_plate_raw[0]}; + currentPlate = query_plate_raw[0].plate; if (req.body.type == "in") { var newLogs = await db.query("INSERT INTO logs(`vehicle_id`,`plate_image_in`,`frame_image_in`,`time_in`) VALUES ('" + query_plate_raw[0].id + "','" + plateSaved + "','" + frameSaved + "'," + currentTimestamp + ")"); io.emit('logs', { @@ -162,9 +164,10 @@ exports.SaveLogs = async function (req, res) { } } } else { - var query_plate_levenshtein = await db.query("SELECT * FROM `vehicle` WHERE LENGTH(`plate`)=" + req.body.plate.length + " AND levenshtein('" + req.body.plate + "', `plate`) BETWEEN 0 AND 1 LIMIT 0,1"); + var query_plate_levenshtein = await db.query("SELECT * FROM `vehicle` WHERE LENGTH(`plate`)>=" + req.body.plate.length + " AND 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]}; + currentPlate = query_plate_levenshtein[0].plate; if (req.body.type == "in") { var newLogs = await db.query("INSERT INTO logs(`vehicle_id`,`plate_image_in`,`frame_image_in`,`time_in`) VALUES ('" + query_plate_levenshtein[0].id + "','" + plateSaved + "','" + frameSaved + "'," + currentTimestamp + ")"); io.emit('logs', { @@ -200,6 +203,7 @@ exports.SaveLogs = async function (req, res) { } } } else { + currentPlate = req.body.plate; if (req.body.type == "in") { if (falseIn < maxFalse) { vehicleInfo = {"status": false}; @@ -239,12 +243,12 @@ exports.SaveLogs = async function (req, res) { for (var i = 0; i < currentIn.length; i++) { lists.push(currentIn[i].plate); } - console.log("req: ", req.body.plate, " ", req.body.type, " ", lists, " ", vehicleInfo.status); + console.log("req: ", req.body.plate, " ", currentPlate, " ", req.body.type, " ", lists, " ", vehicleInfo.status); if (vehicleInfo.status) { if (currentIn.length >= maxCompare) { currentIn.shift(); } - currentIn.push({"plate": req.body.plate, "time": currentTimestamp}); + currentIn.push({"plate": currentPlate, "time": currentTimestamp}); } } if (req.body.type === "out") { @@ -252,12 +256,12 @@ exports.SaveLogs = async function (req, res) { for (var i = 0; i < currentOut.length; i++) { lists.push(currentOut[i].plate); } - console.log("req: ", req.body.plate, " ", req.body.type, " ", lists, " ", vehicleInfo.status); + console.log("req: ", req.body.plate, " ", currentPlate, " ", req.body.type, " ", lists, " ", vehicleInfo.status); if (vehicleInfo.status) { if (currentOut.length >= maxCompare) { currentOut.shift(); } - currentOut.push({"plate": req.body.plate, "time": currentTimestamp}); + currentOut.push({"plate": currentPlate, "time": currentTimestamp}); } } res.send(vehicleInfo);