From f206660b0756f56735a7ae18bef6e00e55cec786 Mon Sep 17 00:00:00 2001 From: marcandreher Date: Sat, 6 Jul 2024 15:48:44 +0200 Subject: [PATCH] ref: use diff for /chart/data --- .../osu/serverlist/Sites/Endpoints/ChartDataRoute.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/osu/serverlist/Sites/Endpoints/ChartDataRoute.java b/src/main/java/osu/serverlist/Sites/Endpoints/ChartDataRoute.java index 7e3f553..ee1e933 100644 --- a/src/main/java/osu/serverlist/Sites/Endpoints/ChartDataRoute.java +++ b/src/main/java/osu/serverlist/Sites/Endpoints/ChartDataRoute.java @@ -11,6 +11,7 @@ public class ChartDataRoute extends JsonProcessingRoute { public final String CHECKFORCRAWLSTAT_SQL = "SELECT DAYOFWEEK(d.date) AS `date`, IFNULL(`value`, 0) AS value FROM (SELECT CURDATE() - INTERVAL 6 DAY AS date UNION SELECT CURDATE() - INTERVAL 5 DAY UNION SELECT CURDATE() - INTERVAL 4 DAY UNION SELECT CURDATE() - INTERVAL 3 DAY UNION SELECT CURDATE() - INTERVAL 2 DAY UNION SELECT CURDATE() - INTERVAL 1 DAY UNION SELECT CURDATE()) AS d LEFT JOIN un_crawler v ON DATE(v.date) = d.date AND v.srv_id = ? AND `type` = ? ORDER BY d.date;"; + public final String CHECKFORCRAWLSTATDIFF_SQL = "SELECT DAYOFWEEK(d.date) AS `date`, IFNULL(v1.value, 0) - IFNULL(v2.value, 0) AS value FROM (SELECT CURDATE() - INTERVAL 6 DAY AS date UNION SELECT CURDATE() - INTERVAL 5 DAY UNION SELECT CURDATE() - INTERVAL 4 DAY UNION SELECT CURDATE() - INTERVAL 3 DAY UNION SELECT CURDATE() - INTERVAL 2 DAY UNION SELECT CURDATE() - INTERVAL 1 DAY UNION SELECT CURDATE()) AS d LEFT JOIN un_crawler v1 ON DATE(v1.date) = d.date AND v1.srv_id = 36 AND v1.type = ? LEFT JOIN un_crawler v2 ON DATE(v2.date) = d.date - INTERVAL 1 DAY AND v2.srv_id = ? AND v2.type = ? ORDER BY d.date;"; public ChartDataRoute() { super(); @@ -22,8 +23,13 @@ public ChartDataRoute() { public Object handle(Request request, Response response) { Object ob = super.handle(request, response); if(ob != null) return ob; - - ResultSet serverResultSet = mysql.Query(CHECKFORCRAWLSTAT_SQL, request.queryParams("id"), request.queryParams("type")); + ResultSet serverResultSet; + if(request.queryParams("type").equalsIgnoreCase("PLAYERCHECK")) { + serverResultSet = mysql.Query(CHECKFORCRAWLSTAT_SQL, request.queryParams("id"), request.queryParams("type")); + }else{ + serverResultSet = mysql.Query(CHECKFORCRAWLSTATDIFF_SQL, request.queryParams("type"), request.queryParams("id"), request.queryParams("type")); + } + List data = new ArrayList<>(); try {