Added grouping queries
This commit is contained in:
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -31,7 +31,7 @@ var DataService = (function () {
|
||||
}
|
||||
DataService.prototype.get = function (id) {
|
||||
var lineChartData$ = this.http
|
||||
.get((this.getUrl + "/" + id), { headers: this.getHeaders() })
|
||||
.get((this.getUrl + "/" + id + "/group/hour"), { headers: this.getHeaders() })
|
||||
.map(mapData);
|
||||
return lineChartData$;
|
||||
};
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -27,6 +27,152 @@ router.get('/device', function(req, res){
|
||||
});
|
||||
|
||||
|
||||
|
||||
router.get('/data/:device/group/:group/:year1-:month1-:day1/:year2-:month2-:day2', function(req, res) {
|
||||
|
||||
let devid = req.params.device;
|
||||
let group = req.params.group;
|
||||
|
||||
let groupdiv = 1;
|
||||
|
||||
switch(group)
|
||||
{
|
||||
case 'y':
|
||||
case 'year':
|
||||
groupdiv = 3214080;
|
||||
break;
|
||||
case 'm':
|
||||
case 'month':
|
||||
groupdiv = 267840;
|
||||
break;
|
||||
case 'd':
|
||||
case 'day':
|
||||
groupdiv = 8640;
|
||||
break;
|
||||
case 'h':
|
||||
case 'hour':
|
||||
groupdiv = 360;
|
||||
break;
|
||||
case 'min':
|
||||
case 'minute':
|
||||
groupdiv = 6;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
//Date 1
|
||||
let day1 = req.params.day1;
|
||||
let month1 = req.params.month1;
|
||||
let year1 = req.params.year1;
|
||||
|
||||
let date1 = year1 + "-" + month1 + "-" + day1 + " 00:00:00";
|
||||
|
||||
//Date 2
|
||||
let day2 = req.params.day2;
|
||||
let month2 = req.params.month2;
|
||||
let year2 = req.params.year2;
|
||||
|
||||
let date2 = year2 + "-" + month2 + "-" + day2 + " 23:59:59";
|
||||
|
||||
|
||||
connection.query(
|
||||
'SELECT MIN(grp.`time`), AVG(grp.`HOV`) as HOV, AVG(grp.`HTV`) as HTV FROM (SELECT @i:=@i+1 AS `rownum`, FLOOR(@i/?) AS `datagrp`, `time`, `HOV`, `HTV` FROM `measurement` WHERE `device` = ? AND `time` >= ? AND `time` <= ? ORDER BY `time` DESC ) grp GROUP BY `datagrp`', [groupdiv, devid, date1, date2],
|
||||
function (error, results, fields) {
|
||||
if (error) throw error;
|
||||
|
||||
if (results.length > 0) {
|
||||
|
||||
res.status(200);
|
||||
res.send(JSON.stringify(results));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
router.get('/data/:device/:year1-:month1-:day1/:year2-:month2-:day2', function(req, res) {
|
||||
|
||||
let devid = req.params.device;
|
||||
|
||||
//Date 1
|
||||
let day1 = req.params.day1;
|
||||
let month1 = req.params.month1;
|
||||
let year1 = req.params.year1;
|
||||
|
||||
let date1 = year1 + "-" + month1 + "-" + day1 + " 00:00:00";
|
||||
|
||||
//Date 2
|
||||
let day2 = req.params.day2;
|
||||
let month2 = req.params.month2;
|
||||
let year2 = req.params.year2;
|
||||
|
||||
let date2 = year2 + "-" + month2 + "-" + day2 + " 23:59:59";
|
||||
|
||||
connection.query(
|
||||
'SELECT s.* FROM ( SELECT TOE1, TOE2, TTE1, TTE2, HOV, HTV, HT, time FROM measurement WHERE device = ? AND `time` >= ? AND `time` <= ? ORDER BY time DESC ) s ORDER BY s.time ASC', [devid, date1, date2],
|
||||
function (error, results, fields) {
|
||||
if (error) throw error;
|
||||
|
||||
if (results.length > 0) {
|
||||
|
||||
res.status(200);
|
||||
res.send(JSON.stringify(results));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
router.get('/data/:device/group/:group', function(req, res) {
|
||||
|
||||
let devid = req.params.device;
|
||||
let group = req.params.group;
|
||||
|
||||
let groupdiv = 1;
|
||||
|
||||
switch(group)
|
||||
{
|
||||
case 'y':
|
||||
case 'year':
|
||||
groupdiv = 3214080;
|
||||
break;
|
||||
case 'm':
|
||||
case 'month':
|
||||
groupdiv = 267840;
|
||||
break;
|
||||
case 'd':
|
||||
case 'day':
|
||||
groupdiv = 8640;
|
||||
break;
|
||||
case 'h':
|
||||
case 'hour':
|
||||
groupdiv = 360;
|
||||
break;
|
||||
case 'min':
|
||||
case 'minute':
|
||||
groupdiv = 6;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
connection.query(
|
||||
'SELECT MIN(grp.`time`), AVG(grp.`HOV`) as HOV, AVG(grp.`HTV`) as HTV FROM (SELECT @i:=@i+1 AS `rownum`, FLOOR(@i/?) AS `datagrp`, `time`, `HOV`, `HTV` FROM `measurement` WHERE `device` = ? ORDER BY `time` DESC ) grp GROUP BY `datagrp`', [groupdiv, devid],
|
||||
function (error, results, fields) {
|
||||
if (error) throw error;
|
||||
|
||||
if (results.length > 0) {
|
||||
|
||||
res.status(200);
|
||||
res.send(JSON.stringify(results));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
router.get('/data/:device', function(req, res) {
|
||||
|
||||
let devid = req.params.device;
|
||||
@@ -52,7 +198,7 @@ router.get('/usage/:device', function(req, res) {
|
||||
let devid = req.params.device;
|
||||
|
||||
connection.query(
|
||||
'SELECT HOV, HTV, HT FROM measurement WHERE device = ? ORDER BY time DESC LIMIT 0,1', [devid],
|
||||
'SELECT TOE1, TOE2, TTE1, TTE2, HOV, HTV, HT, tarief1, tarief2 FROM measurement, device WHERE measurement.device = device.SN AND measurement.device = ? ORDER BY time DESC LIMIT 0,1', [devid],
|
||||
function (error, results, fields) {
|
||||
if (error) throw error;
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ export class DataService {
|
||||
get(id:string): Observable<GraphData> {
|
||||
let lineChartData$ =
|
||||
this.http
|
||||
.get((`${this.getUrl}/${id}`)
|
||||
.get((`${this.getUrl}/${id}/group/hour`)
|
||||
, {headers: this.getHeaders()})
|
||||
.map(mapData);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user