From 935fda56e95270493d9e3e46d28b29125d330ca3 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期一, 29 七月 2024 16:31:02 +0800
Subject: [PATCH] 修改:流媒体转码使用ffmpeg绝对路径,配置文件中增加ffmpegPath 增加:部门列表查询和部门详情查询无数据权限

---
 ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml                  |   18 ++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java            |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java |    6 +++
 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java         |    2 
 server/mediamtx/ffmpeg.exe                                                       |    0 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java |   15 +++++++
 ard-work/src/main/java/com/ruoyi/media/service/impl/MediaServiceImpl.java        |   19 +++++----
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java |   10 +++++
 8 files changed, 59 insertions(+), 13 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 ea897fe..1050dce 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
@@ -41,7 +41,8 @@
 
     @Value("${mediamtx.host}")
     String mediamtxHost;
-
+    @Value("${mediamtx.ffmpegPath}")
+    String ffmpegPath;
 
     /**
      * 娣诲姞娴佸獟浣�
@@ -66,9 +67,9 @@
             if (isCode.equals("1")) {
                 conf.setSource("publisher");
                 //榛樿杞В鐮�
-                String cmd = "ffmpeg -rtsp_transport tcp -i " + sourceUrl + " -vcodec libx264 -preset:v ultrafast -r 25 -keyint_min 25 -g 60 -sc_threshold 0 -threads 6  -b:v 2048k -acodec opus  -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
+                String cmd = ffmpegPath + "/ffmpeg -rtsp_transport tcp -i " + sourceUrl + " -vcodec libx264 -preset:v ultrafast -r 25 -keyint_min 25 -g 60 -sc_threshold 0 -threads 6  -b:v 2048k -acodec opus  -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
                 if (mode.equals("0")) {//纭В鐮�
-                    cmd = rootPath + "ffmpeg -hwaccel cuvid -c:v hevc_cuvid  -rtsp_transport tcp  -i " + sourceUrl + " -c:v h264_nvenc  -r 25 -g 60 -sc_threshold 0 -threads 6  -b:v 2048k -bf 0 -acodec opus  -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
+                    cmd = ffmpegPath + "/ffmpeg -hwaccel cuvid -c:v hevc_cuvid  -rtsp_transport tcp  -i " + sourceUrl + " -c:v h264_nvenc  -r 25 -g 60 -sc_threshold 0 -threads 6  -b:v 2048k -bf 0 -acodec opus  -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
                 }
                 conf.setRunOnDemand(cmd);
                 conf.setRunOnDemandRestart(true);
@@ -106,13 +107,13 @@
             String webrtcUrl = "http://" + mediamtxHost + ":8889/" + name;
 
             Conf conf = new Conf();
-            String rootPath = System.getProperty("user.dir").replaceAll("\\\\", "/") + "/lib/mediamtx/";
+            String rootPath = System.getProperty("user.dir").replaceAll("\\\\", "/") + "/server/mediamtx/";
             if (isCode.equals("1")) {
                 conf.setSource("publisher");
                 //榛樿杞В鐮�
-                String cmd = "ffmpeg -rtsp_transport tcp -i " + sourceUrl + " -vcodec libx264 -preset:v ultrafast -r 25 -keyint_min 25 -g 60 -sc_threshold 0 -threads 6  -b:v 2048k -acodec opus  -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
+                String cmd = ffmpegPath + "/ffmpeg -rtsp_transport tcp -i " + sourceUrl + " -vcodec libx264 -preset:v ultrafast -r 25 -keyint_min 25 -g 60 -sc_threshold 0 -threads 6  -b:v 2048k -acodec opus  -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
                 if (mode.equals("0")) {//纭В鐮�
-                    cmd = "ffmpeg -hwaccel cuvid -c:v hevc_cuvid  -rtsp_transport tcp  -i " + sourceUrl + " -c:v h264_nvenc  -r 25 -g 60 -sc_threshold 0 -threads 6  -b:v 2048k -bf 0 -acodec opus  -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
+                    cmd = ffmpegPath + "/ffmpeg -hwaccel cuvid -c:v hevc_cuvid  -rtsp_transport tcp  -i " + sourceUrl + " -c:v h264_nvenc  -r 25 -g 60 -sc_threshold 0 -threads 6  -b:v 2048k -bf 0 -acodec opus  -strict -2 -f rtsp rtsp://localhost:$RTSP_PORT/$MTX_PATH";
                 }
                 conf.setRunOnDemand(cmd);
                 conf.setRunOnDemandRestart(true);
@@ -331,7 +332,7 @@
     @Override
     public TableDataInfo getPullWebrtcStreamList(Integer pageNum, Integer pageSize) {
         TableDataInfo tableDataInfo = new TableDataInfo();
-        WebrtcSessions WebrtcSessions = mediaClient.webrtcsessions(pageNum-1, pageSize);
+        WebrtcSessions WebrtcSessions = mediaClient.webrtcsessions(pageNum - 1, pageSize);
         List<WebrtcSession> webrtcsessions = WebrtcSessions.getItems();
         webrtcsessions.stream().forEach(
                 webrtcSession -> {
@@ -355,7 +356,7 @@
     @Override
     public TableDataInfo getPullRtmpStreamList(Integer pageNum, Integer pageSize) {
         TableDataInfo tableDataInfo = new TableDataInfo();
-        RtmpSessions rtmpSessions = mediaClient.rtmpsessions(pageNum-1, pageSize);
+        RtmpSessions rtmpSessions = mediaClient.rtmpsessions(pageNum - 1, pageSize);
         List<RtmpSession> webrtcsessions = rtmpSessions.getItems();
         webrtcsessions.stream().forEach(
                 webrtcSession -> {
@@ -379,7 +380,7 @@
     @Override
     public TableDataInfo getPullRtspStreamList(Integer pageNum, Integer pageSize) {
         TableDataInfo tableDataInfo = new TableDataInfo();
-        RtspSessions rtspSessions = mediaClient.rtspsessions(pageNum-1, pageSize);
+        RtspSessions rtspSessions = mediaClient.rtspsessions(pageNum - 1, pageSize);
         List<RtspSession> webrtcsessions = rtspSessions.getItems();
         webrtcsessions.stream().forEach(
                 webrtcSession -> {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
index a320da7..9fabfc1 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
@@ -1,6 +1,9 @@
 package com.ruoyi.web.controller.system;
 
 import java.util.List;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -27,6 +30,7 @@
  * 
  * @author ruoyi
  */
+@Api(tags = "閮ㄩ棬淇℃伅")
 @RestController
 @RequestMapping("/system/dept")
 public class SysDeptController extends BaseController
@@ -67,7 +71,16 @@
         deptService.checkDeptDataScope(deptId);
         return success(deptService.selectDeptById(deptId));
     }
-
+    /**
+     * 鏍规嵁閮ㄩ棬缂栧彿鑾峰彇璇︾粏淇℃伅
+     */
+    @ApiOperation("鏍规嵁閮ㄩ棬缂栧彿鑾峰彇璇︾粏淇℃伅鏃犳暟鎹潈闄�")
+    @PreAuthorize("@ss.hasPermi('system:dept:query')")
+    @GetMapping(value = "/NoDataScope/{deptId}")
+    public AjaxResult getInfoNoDataScope(@PathVariable Long deptId)
+    {
+        return success(deptService.selectDeptById(deptId));
+    }
     /**
      * 鏂板閮ㄩ棬
      */
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index d81d647..f1f289c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -235,12 +235,22 @@
      */
     @PreAuthorize("@ss.hasPermi('system:user:list')")
     @GetMapping("/deptTree")
+    @ApiOperation("鑾峰彇閮ㄩ棬鏍戝垪琛�")
     public AjaxResult deptTree(SysDept dept) {
         return success(deptService.selectDeptTreeList(dept));
     }
     /**
      * 鑾峰彇閮ㄩ棬鏍戝垪琛�
      */
+    @GetMapping("/deptTreeNoDataScope")
+    @ApiOperation("鑾峰彇閮ㄩ棬鏍戝垪琛ㄦ棤鏁版嵁鏉冮檺")
+    public AjaxResult deptTree1(SysDept dept) {
+        return success(deptService.selectDeptTreeListNoDataScope(dept));
+    }
+    /**
+     * 鑾峰彇閮ㄩ棬鏍戝垪琛�
+     */
+    @ApiOperation("鑾峰彇閮ㄩ棬鏍戝垪琛╪oPerm")
     @GetMapping("/deptTree/noPerm")
     public AjaxResult deptTreeNoPerm(SysDept dept) {
         return success(deptService.selectDeptTreeList(dept));
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
index 558d9ce..6aad0fe 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
@@ -20,7 +20,7 @@
      * @return 閮ㄩ棬淇℃伅闆嗗悎
      */
     public List<SysDept> selectDeptList(SysDept dept);
-
+    public List<SysDept> selectDeptListNoDataScope(SysDept dept);
     /**
      * 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戜俊鎭�
      * 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
index 5234894..8482eec 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
@@ -32,7 +32,7 @@
      * @return 閮ㄩ棬鏍戜俊鎭泦鍚�
      */
     public List<TreeSelect> selectDeptTreeList(SysDept dept);
-
+    public List<TreeSelect> selectDeptTreeListNoDataScope(SysDept dept);
     /**
      * 鏋勫缓鍓嶇鎵�闇�瑕佹爲缁撴瀯
      * 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
index 8ddf882..efd07f5 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
@@ -62,6 +62,12 @@
         return buildDeptTreeSelect(depts);
     }
 
+    @Override
+    public List<TreeSelect> selectDeptTreeListNoDataScope(SysDept dept) {
+        List<SysDept> depts = deptMapper.selectDeptListNoDataScope(dept);
+        return buildDeptTreeSelect(depts);
+    }
+
     /**
      * 鏋勫缓鍓嶇鎵�闇�瑕佹爲缁撴瀯
      * 
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
index 94aa515..c2627af 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -46,7 +46,23 @@
 		${params.dataScope}
 		order by d.parent_id, d.order_num
     </select>
-    
+	<select id="selectDeptListNoDataScope" parameterType="SysDept" resultMap="SysDeptResult">
+		<include refid="selectDeptVo"/>
+		where d.del_flag = '0'
+		<if test="deptId != null and deptId != 0">
+			AND dept_id = #{deptId}
+		</if>
+		<if test="parentId != null and parentId != 0">
+			AND parent_id = #{parentId}
+		</if>
+		<if test="deptName != null and deptName != ''">
+			AND dept_name like ('%${deptName}%')
+		</if>
+		<if test="status != null and status != ''">
+			AND status = #{status}
+		</if>
+		order by d.parent_id, d.order_num
+	</select>
     <select id="selectDeptListByRoleId" resultType="Long">
 		select d.dept_id
 		from sys_dept d
diff --git a/server/mediamtx/ffmpeg.exe b/server/mediamtx/ffmpeg.exe
index a562fa0..1cefb79 100644
--- a/server/mediamtx/ffmpeg.exe
+++ b/server/mediamtx/ffmpeg.exe
Binary files differ

--
Gitblit v1.9.3