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