From 6bc1206774770deb0b2df12ab24b4628e1f399eb Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期一, 22 七月 2024 10:56:36 +0800
Subject: [PATCH] 电磁锁状态查询修改及若依生成文件提交

---
 ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java |  177 +++++++++++++++++++++++++++--------------------------------
 1 files changed, 81 insertions(+), 96 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java
index 0079687..ea897fe 100644
--- a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java
@@ -3,6 +3,8 @@
 import com.alibaba.fastjson2.JSONObject;
 import com.dtflys.forest.exceptions.ForestNetworkException;
 import com.dtflys.forest.exceptions.ForestRuntimeException;
+import com.ruoyi.common.constant.HttpStatus;
+import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.media.domain.*;
 import com.ruoyi.media.service.IMediaService;
@@ -10,6 +12,7 @@
 import com.ruoyi.utils.tools.ArdTool;
 import io.swagger.models.auth.In;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
@@ -243,18 +246,19 @@
      * 2023/8/29 9:37:05
      */
     @Override
-    public List<StreamInfo> getPushStreamList(Integer pageNum, Integer pageSize) {
+    public TableDataInfo getPushStreamList(Integer pageNum, Integer pageSize) {
+        TableDataInfo tableDataInfo = new TableDataInfo();
         List<StreamInfo> PushStreamInfoList = new ArrayList<>();
         Paths paths = mediaClient.paths(pageNum - 1, pageSize);
+        int itemCount = paths.getItemCount();
+        tableDataInfo.setTotal(itemCount);
         List<Items> items = paths.getItems();
         for (Items item : items) {
             StreamInfo info = new StreamInfo();
             //ID
             String name = item.getName();
             info.setName(name);
-
             Conf conf = mediaClient.getPathInfo(name);
-
             //RTMP鎾斁鍦板潃
             String rtmpUrl = "rtmp://" + mediamtxHost + ":1935/" + name;
             info.setRtmpUrl(rtmpUrl);
@@ -268,10 +272,14 @@
             if (source == null || source.getId().equals("")) {
                 //浼氳瘽ID
                 info.setId("0");
-                //涓婅娴侀噺
+                //涓嬭娴侀噺
                 long bytesReceived = item.getBytesReceived();
                 String formatReceivedSize = ArdTool.formatFileSize(bytesReceived);
-                info.setUpTraffic(formatReceivedSize);
+                info.setDownTraffic(formatReceivedSize);
+                //涓婅娴侀噺
+                long bytesSent = item.getBytesSent();
+                String formatSentdSize = ArdTool.formatFileSize(bytesSent);
+                info.setUpTraffic(formatSentdSize);
                 info.setBeginTime(item.getReadyTime());
             } else {
                 RtspSession rtspSession = getRtspSessionById(source.getId());
@@ -309,105 +317,82 @@
 
             PushStreamInfoList.add(info);
         }
-        return PushStreamInfoList;
+        tableDataInfo.setRows(PushStreamInfoList);
+        tableDataInfo.setCode(HttpStatus.SUCCESS);
+        tableDataInfo.setMsg("鏌ヨ鎴愬姛");
+        return tableDataInfo;
     }
 
     /**
-     * 鑾峰彇鎷夋祦鍒楄〃
+     * 鑾峰彇webrtc鎷夋祦鍒楄〃
      * 鍒樿嫃涔�
      * 2023/8/29 9:37:05
      */
     @Override
-    public List<StreamInfo> getPullStreamList(Integer pageNum, Integer pageSize) {
-        List<StreamInfo> PullStreamInfoList = new ArrayList<>();
-        Paths paths = mediaClient.paths(pageNum - 1, pageSize);
-        List<Items> items = paths.getItems();
-        for (Items item : items) {
-            List<Readers> readers = item.getReaders();
-            for (Readers reader : readers) {
-                StreamInfo info = new StreamInfo();
-                //ID
-                String name = item.getName();
-                info.setName(name);
-                Conf conf = mediaClient.getPathInfo(name);
-                //浼犺緭鍗忚
-                info.setProtocol(conf.getSourceProtocol());
-
-                String type = reader.getType();
-                switch (type) {
-                    case "rtmpConn":
-                        info.setSessionType("rtmp");
-                        //webrtc鎾斁鍦板潃
-                        String url = "rtmp://" + mediamtxHost + ":1935/" + name;
-                        info.setRtspUrl(url);
-                        RtmpSession rtmpSession = getRtmpSessionById(reader.getId());
-                        //浼氳瘽ID
-                        info.setId(rtmpSession.getId());
-                        //寮�濮嬫媺娴佹椂闂�
-                        info.setBeginTime(rtmpSession.getCreated());
-                        //涓婅娴侀噺
-                        long bytesReceived = rtmpSession.getBytesReceived();
-                        String formatReceivedSize = ArdTool.formatFileSize(bytesReceived);
-                        info.setUpTraffic(formatReceivedSize);
-                        //涓嬭娴侀噺
-                        long bytesSent = rtmpSession.getBytesSent();
-                        String formatSentSize = ArdTool.formatFileSize(bytesSent);
-                        info.setDownTraffic(formatSentSize);
-                        //鎷夋祦鏈嶅姟鍣�
-                        info.setRemoteAddr(rtmpSession.getRemoteAddr());
-                        PullStreamInfoList.add(info);
-                        break;
-                    case "webRTCSession":
-                    case "webrtcSession":
-                        info.setSessionType("webrtc");
-                        //webrtc鎾斁鍦板潃
-                        url = "http://" + mediamtxHost + ":8889/" + name;
-                        info.setRtspUrl(url);
-                        WebrtcSession webrtcSession = getWebrtcSessionById(reader.getId());
-                        //浼氳瘽ID
-                        info.setId(webrtcSession.getId());
-                        //寮�濮嬫媺娴佹椂闂�
-                        info.setBeginTime(webrtcSession.getCreated());
-                        //涓婅娴侀噺
-                        bytesReceived = webrtcSession.getBytesReceived();
-                        formatReceivedSize = ArdTool.formatFileSize(bytesReceived);
-                        info.setUpTraffic(formatReceivedSize);
-                        //涓嬭娴侀噺
-                        bytesSent = webrtcSession.getBytesSent();
-                        formatSentSize = ArdTool.formatFileSize(bytesSent);
-                        info.setDownTraffic(formatSentSize);
-                        //鎷夋祦鏈嶅姟鍣�
-                        info.setRemoteAddr(webrtcSession.getRemoteAddr());
-                        PullStreamInfoList.add(info);
-                        break;
-                    case "rtspSession":
-                        info.setSessionType("rtsp");
-                        //RTSP鎾斁鍦板潃
-                        String rtspUrl = "rtsp://" + mediamtxHost + ":8554/" + name;
-                        info.setRtspUrl(rtspUrl);
-                        RtspSession rtspSession = getRtspSessionById(reader.getId());
-                        //浼氳瘽ID
-                        info.setId(rtspSession.getId());
-                        //寮�濮嬫媺娴佹椂闂�
-                        info.setBeginTime(rtspSession.getCreated());
-                        //涓婅娴侀噺
-                        bytesReceived = rtspSession.getBytesReceived();
-                        formatReceivedSize = ArdTool.formatFileSize(bytesReceived);
-                        info.setUpTraffic(formatReceivedSize);
-                        //涓嬭娴侀噺
-                        bytesSent = rtspSession.getBytesSent();
-                        formatSentSize = ArdTool.formatFileSize(bytesSent);
-                        info.setDownTraffic(formatSentSize);
-                        //鎷夋祦鏈嶅姟鍣�
-                        info.setRemoteAddr(rtspSession.getRemoteAddr());
-                        PullStreamInfoList.add(info);
-                        break;
+    public TableDataInfo getPullWebrtcStreamList(Integer pageNum, Integer pageSize) {
+        TableDataInfo tableDataInfo = new TableDataInfo();
+        WebrtcSessions WebrtcSessions = mediaClient.webrtcsessions(pageNum-1, pageSize);
+        List<WebrtcSession> webrtcsessions = WebrtcSessions.getItems();
+        webrtcsessions.stream().forEach(
+                webrtcSession -> {
+                    webrtcSession.setUpStream(ArdTool.formatFileSize(webrtcSession.getBytesReceived()));
+                    webrtcSession.setDownStream(ArdTool.formatFileSize(webrtcSession.getBytesSent()));
+                    webrtcSession.setBeginTime(webrtcSession.getCreated());
                 }
-            }
-        }
-        Comparator<StreamInfo> comparator = Comparator.comparing(streamInfo -> streamInfo.getBeginTime()); // 浣跨敤Collections.sort鏂规硶杩涜鎺掑簭 Collections.sort(personList, comparator);
-        Collections.sort(PullStreamInfoList, comparator.reversed());
-        return PullStreamInfoList;
+        );
+        tableDataInfo.setTotal(WebrtcSessions.getItemCount());
+        tableDataInfo.setRows(webrtcsessions);
+        tableDataInfo.setCode(HttpStatus.SUCCESS);
+        tableDataInfo.setMsg("鏌ヨ鎴愬姛");
+        return tableDataInfo;
+    }
+
+    /**
+     * 鑾峰彇rtmp鎷夋祦鍒楄〃
+     * 鍒樿嫃涔�
+     * 2023/8/29 9:37:05
+     */
+    @Override
+    public TableDataInfo getPullRtmpStreamList(Integer pageNum, Integer pageSize) {
+        TableDataInfo tableDataInfo = new TableDataInfo();
+        RtmpSessions rtmpSessions = mediaClient.rtmpsessions(pageNum-1, pageSize);
+        List<RtmpSession> webrtcsessions = rtmpSessions.getItems();
+        webrtcsessions.stream().forEach(
+                webrtcSession -> {
+                    webrtcSession.setUpStream(ArdTool.formatFileSize(webrtcSession.getBytesReceived()));
+                    webrtcSession.setDownStream(ArdTool.formatFileSize(webrtcSession.getBytesSent()));
+                    webrtcSession.setBeginTime(webrtcSession.getCreated());
+                }
+        );
+        tableDataInfo.setTotal(rtmpSessions.getItemCount());
+        tableDataInfo.setRows(webrtcsessions);
+        tableDataInfo.setCode(HttpStatus.SUCCESS);
+        tableDataInfo.setMsg("鏌ヨ鎴愬姛");
+        return tableDataInfo;
+    }
+
+    /**
+     * 鑾峰彇rtsp鎷夋祦鍒楄〃
+     * 鍒樿嫃涔�
+     * 2023/8/29 9:37:05
+     */
+    @Override
+    public TableDataInfo getPullRtspStreamList(Integer pageNum, Integer pageSize) {
+        TableDataInfo tableDataInfo = new TableDataInfo();
+        RtspSessions rtspSessions = mediaClient.rtspsessions(pageNum-1, pageSize);
+        List<RtspSession> webrtcsessions = rtspSessions.getItems();
+        webrtcsessions.stream().forEach(
+                webrtcSession -> {
+                    webrtcSession.setUpStream(ArdTool.formatFileSize(webrtcSession.getBytesReceived()));
+                    webrtcSession.setDownStream(ArdTool.formatFileSize(webrtcSession.getBytesSent()));
+                    webrtcSession.setBeginTime(webrtcSession.getCreated());
+                }
+        );
+        tableDataInfo.setTotal(rtspSessions.getItemCount());
+        tableDataInfo.setRows(webrtcsessions);
+        tableDataInfo.setCode(HttpStatus.SUCCESS);
+        tableDataInfo.setMsg("鏌ヨ鎴愬姛");
+        return tableDataInfo;
     }
 
     /**

--
Gitblit v1.9.3