From 2d68f48eeb8f874240f7b02ff20dbf1e784271b4 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 29 七月 2023 08:28:38 +0800
Subject: [PATCH] 单兵端-新任务轮询接口-更新弹窗标记/统计弹窗未查看数量

---
 ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java |  106 ++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 89 insertions(+), 17 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 910cd71..52adb77 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,16 +2,18 @@
 
 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.media.domain.MediaInfo;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.device.camera.domain.ArdCameras;
+import com.ruoyi.media.domain.StreamInfo;
 import com.ruoyi.media.service.IMediaService;
-import com.ruoyi.media.service.impl.MediaService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 
@@ -24,37 +26,107 @@
  **/
 @RestController
 @Api(tags = "娴佸獟浣撴帴鍙�")
+@RequestMapping("/media/stream")
 @Anonymous
-public class MediaController {
+public class MediaController extends BaseController {
     @Resource
     private IMediaService mediaService;
 
-    @PostMapping("/add")
+    @PostMapping()
     @ApiOperation("澧炲姞杞爜")
-    public AjaxResult addPath(@RequestBody MediaInfo mediaInfo) {
-        String rtsp = mediaService.addPath(mediaInfo.getCameraId(), mediaInfo.getRtspPath());
+    @PreAuthorize("@ss.hasPermi('media:stream:add')")
+    @ApiOperationSupport(includeParameters = {"streamInfo.name", "streamInfo.rtspSource", "streamInfo.mode"})
+    public AjaxResult addPath(@RequestBody StreamInfo streamInfo) {
+        String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode());
         return AjaxResult.success(rtsp);
     }
-    @PostMapping("/remove")
+    /**
+     * 鑾峰彇杞爜璇︾粏淇℃伅
+     */
+    @ApiOperation("鑾峰彇杞爜璇︾粏淇℃伅")
+    @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());
+        return AjaxResult.success(rtsp);
+    }
+
+    @DeleteMapping("/path/{names}")
+    @PreAuthorize("@ss.hasPermi('media:stream:remove')")
     @ApiOperation("绉婚櫎杞爜")
-    @ApiOperationSupport(includeParameters={"mediaInfo.cameraId"})
-    public AjaxResult removePath(@RequestBody MediaInfo mediaInfo) {
-        mediaService.removePath(mediaInfo.getCameraId());
+    public AjaxResult removePath( @PathVariable String[] names) {
+        mediaService.removePath(names);
         return AjaxResult.success();
     }
-    @GetMapping("/getPaths")
+
+    @GetMapping("/path/list")
     @ApiOperation("鑾峰彇褰撳墠杞爜鍒楄〃")
-    public AjaxResult getPaths() {
-        return AjaxResult.success(mediaService.paths());
+    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());
     }
+
+    @GetMapping("/getRtspSessionById")
+    @ApiOperation("鎸塈D鏌ヨ浼氳瘽")
+    public AjaxResult getRtspSessionById(String sessionId) {
+        return AjaxResult.success(mediaService.getRtspSessionById(sessionId));
+    }
+
+    @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("鑾峰彇鎺ㄦ祦鍒楄〃")
+    public TableDataInfo getPushStreamList() {
+        startPage();
+        return getDataTable(mediaService.getPushStreamList());
+    }
+
+    /**
+     * 鍒犻櫎娴佸獟浣撴媺娴�
+     */
+    @PreAuthorize("@ss.hasPermi('media:stream:remove')")
+    @DeleteMapping("/{id}")
+    public AjaxResult removePullStreamSession(@PathVariable String id) {
+        return AjaxResult.success(mediaService.kickRtspSession(id));
+    }
+
+    @PreAuthorize("@ss.hasPermi('media:stream:list')")
+    @GetMapping("/pullList")
+    @ApiOperation("鑾峰彇鎷夋祦鍒楄〃")
+    public TableDataInfo getPullStreamList() {
+        startPage();
+        return getDataTable(mediaService.getPullStreamList());
+    }
 }

--
Gitblit v1.9.3