-\r
- long startInMillis = startDate.getTime();\r
- long endInMillis = endDate.getTime();\r
-\r
- sql = "SELECT (SELECT NAME FROM FEEDS AS f WHERE f.FEEDID in(" + feedids\r
- + ") and f.FEEDID=e.FEEDID) AS FEEDNAME, e.FEEDID as FEEDID, "\r
- + "(SELECT COUNT(*) FROM LOG_RECORDS AS c WHERE c.FEEDID in("\r
- + feedids\r
- + ") and c.FEEDID=e.FEEDID AND c.TYPE='PUB') AS FILES_PUBLISHED,"\r
- + "(SELECT SUM(content_length) FROM LOG_RECORDS AS c WHERE c.FEEDID in("\r
- + feedids\r
- + ") and c.FEEDID=e.FEEDID AND c.TYPE='PUB') AS PUBLISH_LENGTH, COUNT(e.EVENT_TIME) as FILES_DELIVERED,"\r
- + "sum(m.content_length) as DELIVERED_LENGTH,"\r
- + "SUBSTRING_INDEX(e.REQURI,'/',+3) as SUBSCRIBER_URL,"\r
- + "e.DELIVERY_SUBID as SUBID, "\r
- + "e.EVENT_TIME AS PUBLISH_TIME, m.EVENT_TIME AS DELIVERY_TIME, "\r
- + "AVG(e.EVENT_TIME - m.EVENT_TIME)/1000 as AverageDelay FROM LOG_RECORDS"\r
- + " e JOIN LOG_RECORDS m ON m.PUBLISH_ID = e.PUBLISH_ID AND e.FEEDID IN ("\r
- + feedids + ")" + subid + " AND m.STATUS=204 AND e.RESULT=204 and e.event_time between " + startInMillis\r
- + " and " + endInMillis + " group by SUBID";\r
-\r
-\r
- return sql;\r
+ startInMillis = startDate.getTime();\r
+ endInMillis = endDate.getTime();\r
+ sql = SQL_SELECT_NAME + "?" + SQL_FEED_ID + SQL_SELECT_COUNT + "?" + SQL_TYPE_PUB + SQL_SELECT_SUM\r
+ + "?" + SQL_PUBLISH_LENGTH + SQL_SUBSCRIBER_URL + SQL_SUB_ID + SQL_DELIVERY_TIME + SQL_AVERAGE_DELAY\r
+ + SQL_JOIN_RECORDS + "?" + ") " + SQL_STATUS_204\r
+ + " and e.event_time between " + "?" + " and " + "?" + SQL_GROUP_SUB_ID;\r
+ compareType = "startAndEnd";\r
+ }\r
+ try (Connection conn = ProvDbUtils.getInstance().getConnection();\r
+ PreparedStatement ps = conn.prepareStatement(sql)) {\r
+ eventlogger.debug("SQL Query for Statistics resultset. " + sql);\r
+ intlogger.debug(sql);\r
+ ps.setString(1, feedids);\r
+ ps.setString(2, feedids);\r
+ ps.setString(3, feedids);\r
+ ps.setString(4, feedids);\r
+ if (compareType.equals(START)) {\r
+ ps.setLong(5, compareTime);\r
+ }\r
+ if (compareType.equals("startAndEnd")) {\r
+ ps.setLong(5, startInMillis);\r
+ ps.setLong(6, endInMillis);\r
+ }\r
+ rs = ps.executeQuery();\r
+ parseResult(outputType, out, resp, rs);\r