From 510c29eecab77493816d3f0cdb5e5c4462083cc8 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 29 八月 2023 14:03:55 +0800
Subject: [PATCH] 增加流媒体数据库业务 增加电子围栏接口

---
 ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java |  178 +++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 105 insertions(+), 73 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java b/ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java
index ca50877..e91ca81 100644
--- a/ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java
+++ b/ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java
@@ -2,15 +2,15 @@
 
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.ruoyi.common.annotation.Anonymous;
-import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.device.camera.domain.ArdCameras;
+import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.media.domain.StreamInfo;
+import com.ruoyi.media.domain.Vtdu;
 import com.ruoyi.media.service.IMediaService;
+import com.ruoyi.media.service.IVtduService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -19,7 +19,6 @@
 import javax.annotation.Resource;
 import java.util.List;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * @Description:
@@ -35,11 +34,16 @@
 public class MediaController extends BaseController {
     @Resource
     private IMediaService mediaService;
+    @Resource
+    private IVtduService vtduService;
 
+    /**
+     * 澧炲姞閫氶亾
+     */
     @PostMapping()
-    @ApiOperation("澧炲姞杞爜")
+    @ApiOperation("澧炲姞閫氶亾")
     @PreAuthorize("@ss.hasPermi('media:stream:add')")
-    @ApiOperationSupport(includeParameters = {"streamInfo.name", "streamInfo.rtspSource", "streamInfo.mode"})
+    @ApiOperationSupport(includeParameters = {"streamInfo.name", "streamInfo.rtspSource", "streamInfo.mode", "streamInfo.isCode"}, order = 1)
     public AjaxResult addPath(@RequestBody StreamInfo streamInfo) {
         if (StringUtils.isEmpty(streamInfo.getName())) {
             return AjaxResult.error("閫氶亾鍚嶇О涓嶈兘涓虹┖");
@@ -48,107 +52,135 @@
             return AjaxResult.error("rtsp鍦板潃涓嶈兘涓虹┖");
         }
         String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode(), streamInfo.getIsCode());
+        Vtdu vtdu = new Vtdu();
+        vtdu.setName(streamInfo.getName());
+        vtdu.setRtspUrl(streamInfo.getRtspSource());
+        vtdu.setIsCode(streamInfo.getIsCode());
+        vtdu.setCodeType(streamInfo.getMode());
+        vtduService.insertVtdu(vtdu);
+        return AjaxResult.success(rtsp);
+    }
+
+
+    /**
+     * 淇敼閫氶亾
+     */
+    @ApiOperation("淇敼閫氶亾")
+    @ApiOperationSupport(includeParameters = {"streamInfo.name", "streamInfo.rtspSource", "streamInfo.mode", "streamInfo.isCode"}, order = 2)
+    @PreAuthorize("@ss.hasPermi('media:stream:edit')")
+    @PutMapping
+    public AjaxResult edit(@RequestBody StreamInfo streamInfo) {
+        mediaService.removePath(new String[]{streamInfo.getName()});
+        vtduService.deleteVtduByName(streamInfo.getName());
+        String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode(), streamInfo.getIsCode());
+        Vtdu vtdu = new Vtdu();
+        vtdu.setName(streamInfo.getName());
+        vtdu.setRtspUrl(streamInfo.getRtspSource());
+        vtdu.setIsCode(streamInfo.getIsCode());
+        vtdu.setCodeType(streamInfo.getMode());
+        vtduService.insertVtdu(vtdu);
         return AjaxResult.success(rtsp);
     }
 
     /**
-     * 鑾峰彇杞爜璇︾粏淇℃伅
+     * 绉婚櫎閫氶亾
      */
-    @ApiOperation("鑾峰彇杞爜璇︾粏淇℃伅")
+    @DeleteMapping("/path/{names}")
+    @PreAuthorize("@ss.hasPermi('media:stream:remove')")
+    @ApiOperation("绉婚櫎閫氶亾")
+    @ApiOperationSupport(order = 3)
+    public AjaxResult removePath(@PathVariable String[] names) {
+        mediaService.removePath(names);
+        vtduService.deleteVtduByNames(names);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 绉婚櫎鎷夋祦
+     */
+    @ApiOperation("绉婚櫎鎷夋祦")
+    @ApiOperationSupport(order =4 )
+    @PreAuthorize("@ss.hasPermi('media:stream:remove')")
+    @DeleteMapping("/{id}")
+    public AjaxResult removePullStreamSession(@PathVariable String sessionId) {
+        List<StreamInfo> pullStreamList = mediaService.getPullStreamList();
+        StreamInfo streamInfo = pullStreamList.stream()
+                .filter(object -> object.getId().equals(sessionId))
+                .collect(Collectors.toList()).get(0);
+        switch (streamInfo.getSessionType()) {
+            case "rtsp":
+                return AjaxResult.success(mediaService.kickRtspSession(sessionId));
+            case "webrtc":
+                return AjaxResult.success(mediaService.kickWebrtcSession(sessionId));
+            case "rtmp":
+                return AjaxResult.success(mediaService.kickRtmpSession(sessionId));
+        }
+        return AjaxResult.error();
+    }
+
+    /**
+     * 鑾峰彇閫氶亾璇︾粏淇℃伅
+     */
+    @ApiOperation("鑾峰彇閫氶亾璇︾粏淇℃伅")
+    @ApiOperationSupport(order =4 )
     @GetMapping(value = "/{name}")
     public AjaxResult getInfo(@PathVariable("name") String name) {
         return success(mediaService.getPathInfo(name));
     }
 
     /**
-     * 淇敼杞爜
+     * 鑾峰彇褰撳墠閫氶亾鍒楄〃
      */
-    @ApiOperation("淇敼杞爜")
-    @PreAuthorize("@ss.hasPermi('media:stream:edit')")
-    @PutMapping
-    public AjaxResult edit(@RequestBody StreamInfo streamInfo) {
-        mediaService.removePath(new String[]{streamInfo.getName()});
-        String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode(), streamInfo.getIsCode());
-        return AjaxResult.success(rtsp);
-    }
-
-    @DeleteMapping("/path/{names}")
-    @PreAuthorize("@ss.hasPermi('media:stream:remove')")
-    @ApiOperation("绉婚櫎杞爜")
-    public AjaxResult removePath(@PathVariable String[] names) {
-        mediaService.removePath(names);
-        return AjaxResult.success();
-    }
-
     @GetMapping("/path/list")
-    @ApiOperation("鑾峰彇褰撳墠杞爜鍒楄〃")
+    @ApiOperation("鑾峰彇褰撳墠閫氶亾鍒楄〃")
+    @ApiOperationSupport(order = 5)
     public TableDataInfo getPaths() {
         startPage();
         return getDataTable(mediaService.paths());
     }
 
-    @GetMapping("/getRtspSessions")
-    @ApiOperation("鑾峰彇rtsp浼氳瘽鍒楄〃")
-    public AjaxResult getRtspSessions() {
-        return AjaxResult.success(mediaService.rtspsessions());
-    }
-
-    @GetMapping("/getRtspConns")
-    @ApiOperation("鑾峰彇rtsp杩炴帴鍒楄〃")
-    public AjaxResult getRtspConns() {
-        return AjaxResult.success(mediaService.rtspconns());
-    }
-
+    /**
+     * 鎸塈D鏌ヨ鎷夋祦璇︽儏
+     */
     @GetMapping("/getRtspSessionById")
-    @ApiOperation("鎸塈D鏌ヨ浼氳瘽")
+    @ApiOperation("鎸塈D鏌ヨ鎷夋祦璇︽儏")
     public AjaxResult getRtspSessionById(String sessionId) {
-        return AjaxResult.success(mediaService.getRtspSessionById(sessionId));
+        List<StreamInfo> pullStreamList = mediaService.getPullStreamList();
+        StreamInfo streamInfo = pullStreamList.stream()
+                .filter(object -> object.getId().equals(sessionId))
+                .collect(Collectors.toList()).get(0);
+        switch (streamInfo.getSessionType()) {
+            case "rtsp":
+                return AjaxResult.success(mediaService.getRtspSessionById(sessionId));
+            case "rtmp":
+                return AjaxResult.success(mediaService.getRtmpSessionById(sessionId));
+            case "webrtc":
+                return AjaxResult.success(mediaService.getWebrtcSessionById(sessionId));
+        }
+        return AjaxResult.error();
     }
 
-    @GetMapping("/getPushStreams")
-    @ApiOperation("鑾峰彇鎺ㄦ祦淇℃伅")
-    public AjaxResult getPushStreams() {
-        return AjaxResult.success(mediaService.getPushStreams());
-    }
-
-    @GetMapping("/getPullStreams")
-    @ApiOperation("鑾峰彇鎷夋祦淇℃伅")
-    public AjaxResult getPullStreams() {
-        return AjaxResult.success(mediaService.getPullStreams());
-    }
-
+    /**
+     * 鑾峰彇鎺ㄦ祦鍒楄〃
+     */
     @PreAuthorize("@ss.hasPermi('media:stream:list')")
     @GetMapping("/pushList")
     @ApiOperation("鑾峰彇鎺ㄦ祦鍒楄〃")
+    @ApiOperationSupport(order = 6)
     public TableDataInfo getPushStreamList() {
         startPage();
         return getDataTable(mediaService.getPushStreamList());
     }
 
-    /**
-     * 鍒犻櫎娴佸獟浣撴媺娴�
-     */
-    @PreAuthorize("@ss.hasPermi('media:stream:remove')")
-    @DeleteMapping("/{id}")
-    public AjaxResult removePullStreamSession(@PathVariable String id) {
-        List<StreamInfo> pullStreamList = mediaService.getPullStreamList();
-        StreamInfo streamInfo = pullStreamList.stream()
-                .filter(object -> object.getId().equals(id))
-                .collect(Collectors.toList()).get(0);
-        switch (streamInfo.getSessionType()) {
-            case "rtsp":
-                return AjaxResult.success(mediaService.kickRtspSession(id));
-            case "webrtc":
-                return AjaxResult.success(mediaService.kickWebrtcSession(id));
-            case "rtmp":
-                return AjaxResult.success(mediaService.kickRtmpSession(id));
-        }
-        return AjaxResult.error();
-    }
 
+
+    /**
+     * 鑾峰彇鎷夋祦鍒楄〃
+     */
     @PreAuthorize("@ss.hasPermi('media:stream:list')")
     @GetMapping("/pullList")
     @ApiOperation("鑾峰彇鎷夋祦鍒楄〃")
+    @ApiOperationSupport(order = 7)
     public TableDataInfo getPullStreamList() {
         startPage();
         return getDataTable(mediaService.getPullStreamList());

--
Gitblit v1.9.3