68 lines
2.8 KiB
PHP
68 lines
2.8 KiB
PHP
<?php
|
|
//пробегаемся по файлам(пакетам данных) в папке data и пытаемся вставить их в базу данных
|
|
|
|
require_once("../resources/metadata/include/tools.php");
|
|
require_once("../monitoring/config.php");
|
|
|
|
$db = connectToDB();
|
|
if($db!=null) {
|
|
$dir = './data';
|
|
$cdir = scandir($dir);
|
|
foreach ($cdir as $key => $fname) {
|
|
if (afterLast($fname, '.') == 'json') {
|
|
$tmpFName=$fname;
|
|
$object = json_decode(file_get_contents($dir . '/' . $fname));
|
|
if ($object) {
|
|
$time = cutBeforeFirst($tmpFName, '_');
|
|
$imei = cutBeforeFirst($tmpFName, '_');
|
|
$fn = cutBeforeFirst($tmpFName, '.');
|
|
if ($fn == 1) {
|
|
$count=0;
|
|
$db->beginTransaction();
|
|
foreach ($object->data as &$value) {
|
|
$sql="select * from main.setlocation(1,'$imei',$value->lat,$value->lon,$value->alt,null,null,to_timestamp($value->time)::timestamp without time zone,null);";
|
|
try {
|
|
$res = $db->query($sql);
|
|
} catch (Exception $ex) {
|
|
error_log($ex->getMessage());
|
|
}
|
|
while ($row = $res->fetch(PDO::FETCH_ASSOC))
|
|
{
|
|
$count++;
|
|
}
|
|
}
|
|
if(count($object->data)==$count){
|
|
$db->commit();
|
|
$result=true;
|
|
}else{
|
|
$db->rollBack();
|
|
}
|
|
}
|
|
if ($fn == 2) {
|
|
$count=0;
|
|
$db->beginTransaction();
|
|
foreach ($object->data as &$value) {
|
|
$sql="select * from main.setReading(1,'$imei',$value->sensor_type_id,$value->value,to_timestamp($value->time)::timestamp without time zone,to_timestamp($time)::timestamp without time zone);";
|
|
try {
|
|
$res = $db->query($sql);
|
|
} catch (Exception $ex) {
|
|
error_log($ex->getMessage());
|
|
}
|
|
while ($row = $res->fetch(PDO::FETCH_ASSOC))
|
|
{
|
|
$count++;
|
|
}
|
|
}
|
|
if(count($object->data)==$count){
|
|
$db->commit();
|
|
$result=true;
|
|
}else{
|
|
$db->rollBack();
|
|
}
|
|
}
|
|
}
|
|
unlink($dir . '/' . $fname);
|
|
}
|
|
}
|
|
}
|
|
echo 'OK'; |