Przeglądaj źródła

直播数据统计(频道),直播数据统计(场次),直播场次列表查询,直播用户观看列表

wzg 4 lat temu
rodzic
commit
21a841b73e

+ 20 - 0
src/dsb/com/cnd3b/restcontroller/customer/live/SQL/直播用户观看列表.sql

@@ -0,0 +1,20 @@
+SELECT t1.PARAM2                                                AS name,
+       t1.PARAM1                                                AS userid,
+       t1.playduration,
+       DATEADD(S, t1.createdtime / 1000, '1970-01-01 08:00:00') as datetime,
+       t1.province,
+       t1.city,
+       t1.ipaddress,
+       t1.useragent,
+       t1.ismobile,
+       t1.browser,
+       (
+           SELECT COUNT
+                      (*) AS num
+           FROM tlive_viewlog AS t2
+           WHERE t1.param1 = t2.param1
+       )                                                        AS viewcount,
+       t1.param3                                                AS viewtype
+FROM tlive_viewlog AS t1
+where sessionid = $sessionid$
+  and channelid = $channelid$

+ 8 - 0
src/dsb/com/cnd3b/restcontroller/customer/live/SQL/私域直播场次列表查询.sql

@@ -0,0 +1,8 @@
+SELECT t1.sessionid,
+       t1.description,
+       DATEADD(S, convert(float,t1.starttime) / 1000, '1970-01-01 08:00:00') as starttime,
+       t1.liveuv,
+       t1.livepv,
+       t1.duration
+FROM tlive_sessiondata AS t1
+WHERE t1.channelid = $channelid$

+ 7 - 2
src/dsb/com/cnd3b/restcontroller/customer/live/SQL/观看人数.sql

@@ -1,2 +1,7 @@
-SELECT mobileuniqueviewer + pcuniqueviewer as num FROM tlive_data
-WHERE channelid = $channelid$
+SELECT SUM
+           (t1.num) as num
+FROM (
+         SELECT mobileuniqueviewer + pcuniqueviewer AS num
+         FROM tlive_data
+         WHERE channelid = $channelid$
+     ) AS t1

+ 7 - 2
src/dsb/com/cnd3b/restcontroller/customer/live/SQL/观看时长.sql

@@ -1,2 +1,7 @@
-SELECT PCPLAYDURATION + MOBILEPLAYDURATION as num FROM tlive_data
-WHERE channelid = $channelid$
+SELECT SUM
+           (t1.num) as num
+FROM (
+         SELECT PCPLAYDURATION + MOBILEPLAYDURATION AS num
+         FROM tlive_data
+         WHERE channelid = $channelid$
+     ) AS t1

+ 7 - 2
src/dsb/com/cnd3b/restcontroller/customer/live/SQL/观看次数.sql

@@ -1,2 +1,7 @@
-SELECT  PCVIDEOVIEW+MOBILEVIDEOVIEW  as num FROM tlive_data
-WHERE channelid = $channelid$
+SELECT SUM
+           (t1.num) as num
+FROM (
+         SELECT PCVIDEOVIEW + MOBILEVIDEOVIEW AS num
+         FROM tlive_data
+         WHERE channelid = $channelid$
+     ) AS t1

+ 93 - 3
src/dsb/com/cnd3b/restcontroller/customer/live/live.java

@@ -90,6 +90,96 @@ public class live extends Controller {
         return getSucReturnObject().setData(rows).toString();
     }
 
+    /**
+     * 直播数据统计(频道)
+     *
+     * @return
+     */
+    public String getLiveDataCount() {
+        String channelid = content.getString("channelid");
+        JSONObject resultObject = new JSONObject();
+        //观看次数(次)
+        double viewCounts = getCount("观看次数", "num", channelid);
+        resultObject.put("viewCounts", String.format("%.2f", viewCounts));
+        //观看时长(分钟)
+        double viewDuration = getCount("观看时长", "num", channelid);
+        resultObject.put("viewDuration", String.format("%.2f", viewDuration));
+        //观看人数(人)
+        double viewers = getCount("观看人数", "num", channelid);
+        resultObject.put("viewers", String.format("%.2f", viewers));
+        //人均观看次数(次)
+        resultObject.put("viewCountsAvg", String.format("%.2f", viewers == 0.0 ? 0 : viewCounts / viewers));
+        //人均观看时长(分钟)
+        resultObject.put("viewDurationAvg", String.format("%.2f", viewers == 0.0 ? 0 : viewDuration / viewers));
+
+        return getSucReturnObject().setData(resultObject).toString();
+    }
+
+    /**
+     * 直播数据统计(场次)
+     *
+     * @return
+     * @throws P2Exception
+     */
+    public String getLiveDataCountForSession() throws P2Exception {
+        String sessionid = content.getString("sessionid");
+        double livepv = 0;
+        double liveuv = 0;
+        double duration = 0;
+        PaoSetRemote paoSetRemote = getP2ServerSystemPaoSet("tlive_sessiondata", "sessionid = '" + sessionid + "'");
+        if (!paoSetRemote.isEmpty()) {
+            PaoRemote paoRemote = paoSetRemote.getPao(0);
+            //人数
+            livepv = paoRemote.getDouble("livepv");
+            //人次
+            liveuv = paoRemote.getDouble("liveuv");
+            //时长
+            duration = paoRemote.getDouble("duration");
+        }
+
+        JSONObject resultObject = new JSONObject();
+
+        resultObject.put("livepv", String.format("%.2f", livepv));
+        resultObject.put("liveuv", String.format("%.2f", liveuv));
+        resultObject.put("duration", String.format("%.2f", duration));
+        resultObject.put("liveuvAvg", String.format("%.2f", livepv == 0 ? 0 : liveuv / livepv));
+        resultObject.put("durationAvg", String.format("%.2f", livepv == 0 ? 0 : duration / livepv));
+
+        return getSucReturnObject().setData(resultObject).toString();
+    }
+
+
+    /**
+     * 直播用户观看列表
+     *
+     * @return
+     */
+    public String getLiveUserList() {
+        String channelid = content.getString("channelid");
+        String sessionid = content.getString("sessionid");
+
+        SQLFactory sqlFactory = new SQLFactory(this, "直播用户观看列表");
+        sqlFactory.addParameter("channelid", channelid);
+        sqlFactory.addParameter("sessionid", sessionid);
+        Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
+
+        return getSucReturnObject().setData(rows).toString();
+    }
+
+
+    /**
+     * 直播场次列表查询
+     *
+     * @return
+     */
+    public String getLiveSessionList() {
+
+        String channelid = content.getString("channelid");
+        SQLFactory sqlFactory = new SQLFactory(this, "直播场次列表查询", pageSize, pageNumber, "createdate");
+        sqlFactory.addParameter("channelid", channelid);
+        Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
+        return getSucReturnObject().setDataByPaging(rows).preloading(1).toString();
+    }
 
     /**
      * 私域直播详情
@@ -132,6 +222,7 @@ public class live extends Controller {
         //观看人数(人)
         double viewers = getCount("观看人数", "num", channelid);
         resultObject.put("viewers", String.format("%.2f", viewers));
+        System.err.println(viewCounts+","+viewDuration+","+viewers);
         //人均观看次数(次)
         resultObject.put("viewCountsAvg", String.format("%.2f", viewers == 0.0 ? 0 : viewCounts / viewers));
         //人均观看时长(分钟)
@@ -225,7 +316,7 @@ public class live extends Controller {
     public String getSYLiveSessionList() {
 
         String channelid = content.getString("channelid");
-        SQLFactory sqlFactory = new SQLFactory(this, "直播场次列表查询", pageSize, pageNumber, "createdate");
+        SQLFactory sqlFactory = new SQLFactory(this, "私域直播场次列表查询", pageSize, pageNumber, "createdate");
         sqlFactory.addParameter("channelid", channelid);
         Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
         return getSucReturnObject().setDataByPaging(rows).preloading(1).toString();
@@ -241,9 +332,8 @@ public class live extends Controller {
      */
     public double getCount(String SQLMODELNAME, String fieldname, String channelid) {
         SQLFactory sqlFactory = new SQLFactory(this, SQLMODELNAME);
-        sqlFactory.addParameter("siteid", siteid);
-        sqlFactory.addParameter("tagentsid", tagentsid);
         sqlFactory.addParameter("channelid", channelid);
+        System.err.println(sqlFactory.getSQL());
         Rows rows = sqlFactory.runSqlQuery();
         return rows.isEmpty() ? 0 : rows.get(0).getDouble(fieldname);
     }