diff --git a/api/controllers/ApiController.js b/api/controllers/ApiController.js index 97ebee7..26a12a8 100644 --- a/api/controllers/ApiController.js +++ b/api/controllers/ApiController.js @@ -57,18 +57,18 @@ function levenshtein(a, b) { return matrix[b.length][a.length]; } +const db = makeDb(config); var currentIn = {"plate": "", "time": 0}; var currentOut = {"plate": "", "time": 0}; exports.SaveLogs = async function (req, res) { - console.log("req: ", req.body.plate, " current: ", current); var today = new Date(); var currentDate = today.getDate(); var currentMonth = today.getMonth() + 1; var currentYear = today.getFullYear(); - var rootDir = "/mnt/c/xampp/htdocs/AIParking_Intops_Server/web/data/uploads/"; + var rootDir = "/mnt/d/xampp/htdocs/AIParking_Intops_Server/web/data/uploads/"; if (!fs.existsSync(rootDir + currentYear)) fs.mkdirSync(rootDir + currentYear); @@ -86,6 +86,7 @@ exports.SaveLogs = async function (req, res) { var canSaveLogs = true; var vehicleInfo = {"status": false}; + if (req.body.type === "in" && (currentTimestamp - currentIn.time) < 600) { if (req.body.plate === currentIn.plate) { canSaveLogs = false; @@ -100,6 +101,12 @@ exports.SaveLogs = async function (req, res) { canSaveLogs = false; } } + if (req.body.type == "in") { + console.log("req: ", req.body.plate, "\t type: ", req.body.type, " \t compare: ", currentIn.plate, "\t save: ", canSaveLogs); + } + if (req.body.type == "out") { + console.log("req: ", req.body.plate, "\t type: ", req.body.type, " \t compare: ", currentOut.plate, "\t save: ", canSaveLogs); + } if (canSaveLogs) { if (req.body.type === "in") { currentIn = {"plate": req.body.plate, "time": currentTimestamp}; @@ -107,6 +114,13 @@ exports.SaveLogs = async function (req, res) { if (req.body.type === "out") { currentOut = {"plate": req.body.plate, "time": currentTimestamp}; } + var query_plate_raw = await db.query("SELECT * FROM vehicle WHERE plate='" + req.body.plate + "'"); + + if (query_plate_raw.length == 0 && req.body.plate.length <= 7) { + res.send(vehicleInfo); + return; + } + 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; @@ -114,8 +128,6 @@ exports.SaveLogs = async function (req, res) { await fs.writeFileSync(rootDir + plateSaved, req.body.plate_image, 'base64'); await fs.writeFileSync(rootDir + frameSaved, req.body.frame_image, 'base64'); - const db = makeDb(config); - 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]}; if (req.body.type == "in") { @@ -130,7 +142,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 1 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") { @@ -153,7 +165,7 @@ exports.SaveLogs = async function (req, res) { 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 1 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 {