From 20be3330cc7d420bac5233bcd2e832d0bd61f53c Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 22 七月 2023 11:43:26 +0800
Subject: [PATCH] 增加获取app用户接口

---
 lib/mediamtx/ffmpeg.exe                                                                        |    0 
 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                                |   12 +
 ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java                      |   74 +++++++++-
 ard-work/src/main/java/com/ruoyi/test/ReadAccessDatabase.java                                  |   85 ++++++++++++
 ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java |    7 +
 ard-work/src/main/java/com/ruoyi/app/position/domain/ArdAppPosition.java                       |    2 
 ard-work/pom.xml                                                                               |    6 
 ard-work/src/main/java/com/ruoyi/rongcloud/service/Impl/RongCloudServiceImpl.java              |   22 ++
 ard-work/src/main/java/com/ruoyi/rongcloud/service/RongCloudService.java                       |    1 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java               |    5 
 ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java         |   87 ++++++++++-
 ard-work/src/main/java/com/ruoyi/rongcloud/controller/RongCloudController.java                 |    8 -
 ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java              |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java                       |   10 +
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java                          |    8 +
 ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java      |   10 
 ard-work/src/main/java/com/ruoyi/app/position/mapper/ArdAppPositionMapper.java                 |    4 
 ard-work/src/main/resources/mapper/app/ArdAppPositionMapper.xml                                |    2 
 lib/mediamtx/mediamtx.yml                                                                      |   24 +-
 ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java                          |    4 
 20 files changed, 313 insertions(+), 62 deletions(-)

diff --git a/ard-work/pom.xml b/ard-work/pom.xml
index eec47b0..c686bad 100644
--- a/ard-work/pom.xml
+++ b/ard-work/pom.xml
@@ -14,6 +14,12 @@
     </description>
 
     <dependencies>
+        <dependency>
+            <groupId>net.sf.ucanaccess</groupId>
+            <artifactId>ucanaccess</artifactId>
+            <version>5.0.1</version>
+        </dependency>
+
         <!-- 閫氱敤宸ュ叿-->
         <dependency>
             <groupId>commons-codec</groupId>
diff --git a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java
index e4ac74d..42a3bad 100644
--- a/ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java
+++ b/ard-work/src/main/java/com/ruoyi/alarmpoints/well/controller/ArdAlarmpointsWellController.java
@@ -58,6 +58,13 @@
         return getDataTable(list);
     }
 
+    @PreAuthorize("@ss.hasPermi('alarmpoints:well:list')")
+    @GetMapping("/nonPageList")
+    @ApiOperation("鏌ヨ浜曞垪琛�-涓嶅垎椤�")
+    public AjaxResult nonPageList(ArdAlarmpointsWell ardAlarmpointsWell) {
+        List<ArdAlarmpointsWell> list = ardAlarmpointsWellService.selectArdAlarmpointsWellList(ardAlarmpointsWell);
+        return success(list);
+    }
     /**
      * 瀵煎嚭浜曠鐞嗗垪琛�
      */
diff --git a/ard-work/src/main/java/com/ruoyi/app/controller/ArdAppPositionController.java b/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java
similarity index 60%
rename from ard-work/src/main/java/com/ruoyi/app/controller/ArdAppPositionController.java
rename to ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java
index 64e4ec7..c3f102a 100644
--- a/ard-work/src/main/java/com/ruoyi/app/controller/ArdAppPositionController.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/controller/ArdAppPositionController.java
@@ -1,19 +1,28 @@
-package com.ruoyi.app.controller;
+package com.ruoyi.app.position.controller;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import com.ruoyi.app.domain.ArdAppPosition;
-import com.ruoyi.app.service.IArdAppPositionService;
-import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.app.position.domain.ArdAppPosition;
+import com.ruoyi.app.position.service.IArdAppPositionService;
+import com.ruoyi.common.constant.CacheConstants;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.device.hiksdk.util.minio.MinioUtils;
+import com.ruoyi.rongcloud.service.RongCloudService;
+import com.ruoyi.system.domain.SysUserOnline;
 import com.ruoyi.system.service.ISysRoleService;
+import com.ruoyi.system.service.ISysUserOnlineService;
 import com.ruoyi.system.service.ISysUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
@@ -27,12 +36,9 @@
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.web.multipart.MultipartFile;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import static org.bytedeco.javacv.FrameGrabber.list;
+import java.util.*;
 
 /**
  * app浣嶇疆Controller
@@ -50,7 +56,7 @@
     @Autowired
     private ISysUserService sysUserService;
     @Autowired
-    private ISysRoleService roleService;
+    private RongCloudService rongCloudService;
 
     /**
      * 鏌ヨapp浣嶇疆鍒楄〃
@@ -134,6 +140,58 @@
         return AjaxResult.success(list);
     }
     /**
+     * 鑾峰彇鎵�鏈塧pp鐢ㄦ埛
+     */
+    @ApiOperation("鑾峰彇鎵�鏈塧pp鐢ㄦ埛")
+    @GetMapping("/getAppUserlist")
+    public AjaxResult getAppUserlist(Long deptId)
+    {
+        SysUser user=new SysUser();
+        user.setDeptId(deptId);
+        List<SysUser> list = sysUserService.selectAppUserList(user);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 鑾峰彇鎵�鏈塧pp鐢ㄦ埛
+     */
+    @ApiOperation("鑾峰彇鎵�鏈塧pp鐢ㄦ埛pc")
+    @GetMapping("/getAppUserForPclist")
+    public AjaxResult getAppUserForPclist(Long deptId)
+    {
+        SysUser user=new SysUser();
+        user.setDeptId(deptId);
+        List<SysUser> list = sysUserService.selectAppUserList(user);
+        List<SysUser> onLineList=new ArrayList<>();
+        List<SysUser> offLineList=new ArrayList<>();
+        for(SysUser sysUser:list)
+        {
+            Boolean online = rongCloudService.checkOnline(sysUser.getUserId());
+            if(online)
+            {
+                onLineList.add(sysUser);
+            }
+            else
+            {
+                offLineList.add(sysUser);
+            }
+        }
+        Map<String,Object> onlineMap=new HashMap<>();
+        onlineMap.put("children",onLineList);
+        onlineMap.put("name","鍦ㄧ嚎鐢ㄦ埛("+onLineList.size()+")");
+        onlineMap.put("disabled",true);
+        onlineMap.put("id","onLine");
+        Map<String,Object> offlineMap=new HashMap<>();
+        offlineMap.put("children",offLineList);
+        offlineMap.put("name","绂荤嚎鐢ㄦ埛("+offLineList.size()+")");
+        offlineMap.put("disabled",true);
+        offlineMap.put("id","offLine");
+        List< Map<String,Object> > lists = new ArrayList<>();
+        lists.add(onlineMap);
+        lists.add(offlineMap);
+        return AjaxResult.success(lists);
+    }
+    /**
      * 鑾峰彇鐢ㄦ埛璇︽儏
      */
     @ApiOperation("鑾峰彇鐢ㄦ埛璇︽儏")
@@ -143,4 +201,11 @@
         SysUser sysUser = sysUserService.selectUserById(userId);
         return AjaxResult.success(sysUser);
     }
+    @PostMapping("/uploadFile")
+    @ApiOperation("涓婁紶鏂囦欢")
+    public AjaxResult uploadFile(MultipartFile file,String type)
+    {
+        String url = MinioUtils.putObjectAndGetUrl("app",type, file);
+        return AjaxResult.success(url);
+    }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/app/domain/ArdAppPosition.java b/ard-work/src/main/java/com/ruoyi/app/position/domain/ArdAppPosition.java
similarity index 95%
rename from ard-work/src/main/java/com/ruoyi/app/domain/ArdAppPosition.java
rename to ard-work/src/main/java/com/ruoyi/app/position/domain/ArdAppPosition.java
index 25bb335..1bb7e20 100644
--- a/ard-work/src/main/java/com/ruoyi/app/domain/ArdAppPosition.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/domain/ArdAppPosition.java
@@ -1,4 +1,4 @@
-package com.ruoyi.app.domain;
+package com.ruoyi.app.position.domain;
 import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
diff --git a/ard-work/src/main/java/com/ruoyi/app/mapper/ArdAppPositionMapper.java b/ard-work/src/main/java/com/ruoyi/app/position/mapper/ArdAppPositionMapper.java
similarity index 92%
rename from ard-work/src/main/java/com/ruoyi/app/mapper/ArdAppPositionMapper.java
rename to ard-work/src/main/java/com/ruoyi/app/position/mapper/ArdAppPositionMapper.java
index 113eae3..0b23c5d 100644
--- a/ard-work/src/main/java/com/ruoyi/app/mapper/ArdAppPositionMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/mapper/ArdAppPositionMapper.java
@@ -1,7 +1,7 @@
-package com.ruoyi.app.mapper;
+package com.ruoyi.app.position.mapper;
 
 import java.util.List;
-import com.ruoyi.app.domain.ArdAppPosition;
+import com.ruoyi.app.position.domain.ArdAppPosition;
 
 
 /**
diff --git a/ard-work/src/main/java/com/ruoyi/app/service/IArdAppPositionService.java b/ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java
similarity index 92%
rename from ard-work/src/main/java/com/ruoyi/app/service/IArdAppPositionService.java
rename to ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java
index 0e022d4..a4fa952 100644
--- a/ard-work/src/main/java/com/ruoyi/app/service/IArdAppPositionService.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/service/IArdAppPositionService.java
@@ -1,7 +1,7 @@
-package com.ruoyi.app.service;
+package com.ruoyi.app.position.service;
 
 import java.util.List;
-import com.ruoyi.app.domain.ArdAppPosition;
+import com.ruoyi.app.position.domain.ArdAppPosition;
 
 
 /**
diff --git a/ard-work/src/main/java/com/ruoyi/app/service/impl/ArdAppPositionServiceImpl.java b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java
similarity index 87%
rename from ard-work/src/main/java/com/ruoyi/app/service/impl/ArdAppPositionServiceImpl.java
rename to ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java
index f665230..14ce8c9 100644
--- a/ard-work/src/main/java/com/ruoyi/app/service/impl/ArdAppPositionServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/app/position/service/impl/ArdAppPositionServiceImpl.java
@@ -1,12 +1,10 @@
-package com.ruoyi.app.service.impl;
+package com.ruoyi.app.position.service.impl;
 
-import com.ruoyi.app.domain.ArdAppPosition;
-import com.ruoyi.app.mapper.ArdAppPositionMapper;
-import com.ruoyi.app.service.IArdAppPositionService;
+import com.ruoyi.app.position.domain.ArdAppPosition;
+import com.ruoyi.app.position.mapper.ArdAppPositionMapper;
+import com.ruoyi.app.position.service.IArdAppPositionService;
 import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java
index 81fa418..85f91d9 100644
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java
+++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java
@@ -10,6 +10,7 @@
 import io.minio.messages.Item;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.multipart.MultipartFile;
+
 import java.io.*;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -151,15 +152,14 @@
         boolean exsit = exitsBucket(bucketName);
         if (!exsit) {
             boolean bucket = createBucket(bucketName);
-            if(bucket)
-            {
+            if (bucket) {
                 log.info(bucketName + "-妗朵笉瀛樺湪,鎴愬姛鍒涘缓妗�");
             }
         }
         //鏂囦欢鍚�
         String originalFilename = file.getOriginalFilename();
         //鏂扮殑鏂囦欢鍚�
-        String fileName = IdUtils.fastSimpleUUID()+"_"+ originalFilename;
+        String fileName = IdUtils.fastSimpleUUID() + "_" + originalFilename;
         try {
             InputStream inputStream = file.getInputStream();
             /*涓婁紶瀵硅薄*/
@@ -180,7 +180,59 @@
                     .method(Method.GET)
                     .build();
             String presignedObjectUrl = MinioClientSingleton.getMinioClient().getPresignedObjectUrl(getPresignedObjectUrlArgs);
-            String ObjectUrl  = presignedObjectUrl.substring(0, presignedObjectUrl.indexOf("?"));
+            String ObjectUrl = presignedObjectUrl.substring(0, presignedObjectUrl.indexOf("?"));
+            return ObjectUrl;
+        } catch (Exception ex) {
+            log.error("涓婁紶瀵硅薄杩斿洖url寮傚父锛�" + ex.getMessage());
+        }
+        return "";
+    }
+
+    /**
+     * @鎻忚堪 涓婁紶MultipartFile鏂囦欢杩斿洖url
+     * @鍙傛暟 [bucketName, file]
+     * @杩斿洖鍊� java.lang.String
+     * @鍒涘缓浜� 鍒樿嫃涔�
+     * @鍒涘缓鏃堕棿 2023/5/18 12:16
+     * @淇敼浜哄拰鍏跺畠淇℃伅
+     */
+    public static String putObjectAndGetUrl(String bucketName, String folder, MultipartFile file) {
+        //鍒ゆ柇鏂囦欢鏄惁涓虹┖
+        if (null == file || 0 == file.getSize()) {
+            log.error("涓婁紶minio鏂囦欢鏈嶅姟鍣ㄩ敊璇紝涓婁紶鏂囦欢涓虹┖");
+        }
+        boolean exsit = exitsBucket(bucketName);
+        if (!exsit) {
+            boolean bucket = createBucket(bucketName);
+            if (bucket) {
+                log.info(bucketName + "-妗朵笉瀛樺湪,鎴愬姛鍒涘缓妗�");
+            }
+        }
+        //鏂囦欢鍚�
+        String originalFilename = file.getOriginalFilename();
+        //鏂扮殑鏂囦欢鍚�
+        String fileName = folder + "/" + IdUtils.fastSimpleUUID() + "_" + originalFilename;
+        try {
+            InputStream inputStream = file.getInputStream();
+            /*涓婁紶瀵硅薄*/
+            PutObjectArgs putObjectArgs = PutObjectArgs
+                    .builder()
+                    .bucket(bucketName)
+                    .object(fileName)
+                    .stream(inputStream, file.getSize(), -1)
+                    .contentType(file.getContentType())
+                    .build();
+            MinioClientSingleton.getMinioClient().putObject(putObjectArgs);
+            inputStream.close();
+            /*鑾峰彇url*/
+            GetPresignedObjectUrlArgs getPresignedObjectUrlArgs = GetPresignedObjectUrlArgs
+                    .builder()
+                    .bucket(bucketName)
+                    .object(fileName)
+                    .method(Method.GET)
+                    .build();
+            String presignedObjectUrl = MinioClientSingleton.getMinioClient().getPresignedObjectUrl(getPresignedObjectUrlArgs);
+            String ObjectUrl = presignedObjectUrl.substring(0, presignedObjectUrl.indexOf("?"));
             return ObjectUrl;
         } catch (Exception ex) {
             log.error("涓婁紶瀵硅薄杩斿洖url寮傚父锛�" + ex.getMessage());
@@ -435,14 +487,14 @@
     }
 
     /**
-     *@鎻忚堪 鑾峰彇妗朵腑鎵�鏈夊璞�
-     *@鍙傛暟 [bucketName]
-     *@杩斿洖鍊� java.lang.Iterable<io.minio.Result<io.minio.messages.Item>>
-     *@鍒涘缓浜� 鍒樿嫃涔�
-     *@鍒涘缓鏃堕棿 2023/2/6 10:32
-     *@淇敼浜哄拰鍏跺畠淇℃伅
+     * @鎻忚堪 鑾峰彇妗朵腑鎵�鏈夊璞�
+     * @鍙傛暟 [bucketName]
+     * @杩斿洖鍊� java.lang.Iterable<io.minio.Result < io.minio.messages.Item>>
+     * @鍒涘缓浜� 鍒樿嫃涔�
+     * @鍒涘缓鏃堕棿 2023/2/6 10:32
+     * @淇敼浜哄拰鍏跺畠淇℃伅
      */
-    public static Iterable<Result<Item>> getObjectsByBucket(String bucketName)  {
+    public static Iterable<Result<Item>> getObjectsByBucket(String bucketName) {
         Iterable<Result<Item>> listObjects = MinioClientSingleton.getMinioClient().listObjects(ListObjectsArgs.builder()
                 .bucket(bucketName)
                 .recursive(true)
diff --git a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
index 9a417f4..b28201b 100644
--- a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
+++ b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
@@ -59,7 +59,7 @@
 
     @Override
     public String addPath(String name, String rtspPath, String mode) {
-        String rtspUrl = "rtsp://" + mediamtxHost + ":8554/";
+        String rtspUrl = "rtsp://" + mediamtxHost + ":7554/";
         Conf mediaInfo = new Conf();
         //-vcodec libx264 //鎸囧畾瑙嗛缂栫爜鍣ㄤ负 libx264锛屼娇鐢� H.264 缂栫爜鏍煎紡杩涜瑙嗛鍘嬬缉
         //-preset ultrafast  //--preset鐨勫弬鏁颁富瑕佽皟鑺傜紪鐮侀�熷害鍜岃川閲忕殑骞宠 锛屾湁ultrafast锛堣浆鐮侀�熷害鏈�蹇紝瑙嗛寰�寰�涔熸渶妯$硦锛夈�乻uperfast銆乿eryfast銆乫aster銆乫ast銆乵edium銆乻low銆乻lower銆乿eryslow銆乸lacebo杩�10涓�夐」锛屼粠蹇埌鎱�
@@ -223,7 +223,7 @@
             String name = item.getName();
             info.setName(name);
             //RTSP鎾斁鍦板潃
-            String rtspUrl = "rtsp://" + mediamtxHost + ":8554/" + name;
+            String rtspUrl = "rtsp://" + mediamtxHost + ":7554/" + name;
             info.setRtspUrl(rtspUrl);
             Source source = item.getSource();
             if (source == null) {
diff --git a/ard-work/src/main/java/com/ruoyi/rongcloud/controller/RongCloudController.java b/ard-work/src/main/java/com/ruoyi/rongcloud/controller/RongCloudController.java
index 1fd77d9..fd62a92 100644
--- a/ard-work/src/main/java/com/ruoyi/rongcloud/controller/RongCloudController.java
+++ b/ard-work/src/main/java/com/ruoyi/rongcloud/controller/RongCloudController.java
@@ -38,13 +38,7 @@
         return AjaxResult.success(token);
     }
 
-    @PostMapping("/uploadPic")
-    @ApiOperation("涓婁紶鐢ㄦ埛澶村儚")
-    public AjaxResult uploadPic(MultipartFile file)
-    {
-        String url = MinioUtils.putObjectAndGetUrl("useravatar", file);
-        return AjaxResult.success(url);
-    }
+
 
     @PostMapping("/checkOnline")
     @ApiOperation("鏌ヨ鐢ㄦ埛鍦ㄧ嚎鐘舵��")
diff --git a/ard-work/src/main/java/com/ruoyi/rongcloud/service/Impl/RongCloudServiceImpl.java b/ard-work/src/main/java/com/ruoyi/rongcloud/service/Impl/RongCloudServiceImpl.java
index fa55088..1666afa 100644
--- a/ard-work/src/main/java/com/ruoyi/rongcloud/service/Impl/RongCloudServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/rongcloud/service/Impl/RongCloudServiceImpl.java
@@ -67,6 +67,18 @@
         return onlineMap;
     }
 
+    @Override
+    public Boolean checkOnline(String userId) {
+        RongCloudParam param = new RongCloudParam();
+        param.setUserId(userId);
+        Map isOnline = rongCloudClient.checkOnline(getRongCloudHead(), param);
+        if (isOnline.get("status").equals("1")) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
     /**
      * 鑾峰彇铻嶄簯绛惧悕淇℃伅
      */
@@ -76,11 +88,11 @@
         String nonce = RandomStringUtils.randomNumeric(18);
         String timestamp = String.valueOf(new Date().getTime());
         String signature = DigestUtils.sha1Hex(appSecret + nonce + timestamp);//App Secret + Nonce + T
-        Map<String, Object> headerMap=new HashMap<>();
-        headerMap.put("App-Key",appKey);
-        headerMap.put("Nonce",nonce);
-        headerMap.put("Timestamp",timestamp);
-        headerMap.put("Signature",signature);
+        Map<String, Object> headerMap = new HashMap<>();
+        headerMap.put("App-Key", appKey);
+        headerMap.put("Nonce", nonce);
+        headerMap.put("Timestamp", timestamp);
+        headerMap.put("Signature", signature);
         return headerMap;
     }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/rongcloud/service/RongCloudService.java b/ard-work/src/main/java/com/ruoyi/rongcloud/service/RongCloudService.java
index 1cdeac8..3d40277 100644
--- a/ard-work/src/main/java/com/ruoyi/rongcloud/service/RongCloudService.java
+++ b/ard-work/src/main/java/com/ruoyi/rongcloud/service/RongCloudService.java
@@ -14,4 +14,5 @@
 
     String getToken(String userId,String name);
     Map checkOnline(List<String>userIds);
+    Boolean checkOnline(String userId);
 }
diff --git a/ard-work/src/main/java/com/ruoyi/test/ReadAccessDatabase.java b/ard-work/src/main/java/com/ruoyi/test/ReadAccessDatabase.java
new file mode 100644
index 0000000..e146beb
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/test/ReadAccessDatabase.java
@@ -0,0 +1,85 @@
+package com.ruoyi.test;
+
+/**
+ * @Description:
+ * @ClassName: ReadAccessDatabase
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�07鏈�21鏃�16:00:57
+ * @Version: 1.0
+ **/
+
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
+import java.sql.*;
+
+public class ReadAccessDatabase {
+
+    public static void main(String[] args) {
+        // 澶氫釜鏁版嵁搴撴枃浠惰矾寰�
+        String[] dbPaths = {
+                "D:\\mdb\\閬撹矾涓績绾�.mdb",
+                "D:\\mdb\\闃查鏋�-鐏屾湪.mdb",
+                // 娣诲姞鏇村鐨勬暟鎹簱鏂囦欢璺緞
+        };
+
+        // 閬嶅巻姣忎釜鏁版嵁搴撴枃浠�
+        for (String dbPath : dbPaths) {
+            readDataFromAccessDatabase(dbPath);
+        }
+    }
+
+    public static void readDataFromAccessDatabase(String dbPath) {
+        try {
+            // 鍔犺浇JDBC椹卞姩
+            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
+
+            // 杩炴帴Access鏁版嵁搴�
+            String url = "jdbc:ucanaccess://" + dbPath + ";encoding=gb2312;";
+            Connection connection = DriverManager.getConnection(url);
+            // 鑾峰彇鎵�鏈夎〃鐨勫厓鏁版嵁
+            DatabaseMetaData metaData = connection.getMetaData();
+            ResultSet tables = metaData.getTables(null, null, null, new String[]{"TABLE"});
+
+            // 閬嶅巻琛�
+            while (tables.next()) {
+                String tableName = tables.getString("TABLE_NAME");
+                if (!tableName.equals("閬撹矾涓績绾�")) {
+                    continue;
+                }
+                System.out.println("琛ㄥ悕: " + tableName);
+
+                // 鑾峰彇琛ㄧ殑瀛楁鍏冩暟鎹�
+ //               ResultSet column = metaData.getColumns(null, null, tableName, null);
+                // 閬嶅巻瀛楁
+//                while (column.next()) {
+//                    String columnName = column.getString("COLUMN_NAME");
+//                    System.out.println("瀛楁鍚�: " + columnName);
+//                }
+//                column.close();
+                // 鎵ц鏌ヨ鎿嶄綔
+                String sql = "SELECT * FROM " + tableName; // 鏇挎崲涓轰綘瑕佹煡璇㈢殑琛ㄥ悕
+                Statement statement = connection.createStatement();
+                ResultSet resultSet = statement.executeQuery(sql);
+                // 澶勭悊鏌ヨ缁撴灉
+                while (resultSet.next()) {
+                    // 璇诲彇姣忎竴琛屾暟鎹�
+                    String id = resultSet.getString(1); // 鏍规嵁琛ㄤ腑鐨勫垪鍚嶈幏鍙栨暟鎹�
+                    String name = resultSet.getString("缂栧彿");
+
+                    // 鍙互鏍规嵁鍏蜂綋鐨勮〃缁撴瀯缁х画鑾峰彇鍏朵粬瀛楁鐨勬暟鎹�
+
+                    // 鍦ㄨ繖閲屽鐞嗚幏鍙栧埌鐨勬暟鎹紝渚嬪杈撳嚭鍒版帶鍒跺彴鎴栦繚瀛樺埌闆嗗悎涓�
+                    System.out.println("ID: " + id + ", Name: " + name);
+                }
+                // 鍏抽棴杩炴帴
+                resultSet.close();
+                statement.close();
+            }
+            tables.close();
+            connection.close();
+        } catch (ClassNotFoundException | SQLException e) {
+            e.printStackTrace();
+        }
+    }
+}
+
diff --git a/ard-work/src/main/resources/mapper/app/ArdAppPositionMapper.xml b/ard-work/src/main/resources/mapper/app/ArdAppPositionMapper.xml
index 2905557..1967f0f 100644
--- a/ard-work/src/main/resources/mapper/app/ArdAppPositionMapper.xml
+++ b/ard-work/src/main/resources/mapper/app/ArdAppPositionMapper.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.app.mapper.ArdAppPositionMapper">
+<mapper namespace="com.ruoyi.app.position.mapper.ArdAppPositionMapper">
     <resultMap type="ArdAppPosition" id="ArdAppPositionResult">
         <result property="id" column="id"/>
         <result property="userId" column="user_id"/>
diff --git a/lib/mediamtx/ffmpeg.exe b/lib/mediamtx/ffmpeg.exe
new file mode 100644
index 0000000..a562fa0
--- /dev/null
+++ b/lib/mediamtx/ffmpeg.exe
Binary files differ
diff --git a/lib/mediamtx/mediamtx.yml b/lib/mediamtx/mediamtx.yml
index 5b11bf9..ae9757b 100644
--- a/lib/mediamtx/mediamtx.yml
+++ b/lib/mediamtx/mediamtx.yml
@@ -40,17 +40,17 @@
 # Enable the HTTP API.
 api: yes
 # Address of the API listener.
-apiAddress: 192.168.1.227:9997
+apiAddress: 127.0.0.1:9997
 
 # Enable Prometheus-compatible metrics.
 metrics: no
 # Address of the metrics listener.
-metricsAddress: 192.168.1.227:9998
+metricsAddress: 127.0.0.1:9998
 
 # Enable pprof-compatible endpoint to monitor performances.
 pprof: no
 # Address of the pprof listener.
-pprofAddress: 192.168.1.227:9999
+pprofAddress: 127.0.0.1:9999
 
 # Command to run when a client connects to the server.
 # Prepend ./ to run an executable in the current folder (example: "./ffmpeg")
@@ -77,19 +77,19 @@
 # Available values are "no", "strict", "optional".
 encryption: "no"
 # Address of the TCP/RTSP listener. This is needed only when encryption is "no" or "optional".
-rtspAddress: :8554
+rtspAddress: :7554
 # Address of the TCP/TLS/RTSPS listener. This is needed only when encryption is "strict" or "optional".
-rtspsAddress: :8322
+rtspsAddress: :7322
 # Address of the UDP/RTP listener. This is needed only when "udp" is in protocols.
-rtpAddress: :8000
+rtpAddress: :7000
 # Address of the UDP/RTCP listener. This is needed only when "udp" is in protocols.
-rtcpAddress: :8001
+rtcpAddress: :7001
 # IP range of all UDP-multicast listeners. This is needed only when "multicast" is in protocols.
 multicastIPRange: 224.1.0.0/16
 # Port of all UDP-multicast/RTP listeners. This is needed only when "multicast" is in protocols.
-multicastRTPPort: 8002
+multicastRTPPort: 7002
 # Port of all UDP-multicast/RTCP listeners. This is needed only when "multicast" is in protocols.
-multicastRTCPPort: 8003
+multicastRTCPPort: 7003
 # Path to the server key. This is needed only when encryption is "strict" or "optional".
 # This can be generated with:
 # openssl genrsa -out server.key 2048
@@ -105,7 +105,7 @@
 # RTMP parameters
 
 # Disable support for the RTMP protocol.
-rtmpDisable: no
+rtmpDisable: yes
 # Address of the RTMP listener. This is needed only when encryption is "no" or "optional".
 rtmpAddress: :1935
 # Encrypt connections with TLS (RTMPS).
@@ -125,7 +125,7 @@
 # HLS parameters
 
 # Disable support for the HLS protocol.
-hlsDisable: no
+hlsDisable: yes
 # Address of the HLS listener.
 hlsAddress: :8888
 # Enable TLS/HTTPS on the HLS server.
@@ -181,7 +181,7 @@
 # WebRTC parameters
 
 # Disable support for the WebRTC protocol.
-webrtcDisable: no
+webrtcDisable: yes
 # Address of the WebRTC listener.
 webrtcAddress: :8889
 # Enable TLS/HTTPS on the WebRTC server.
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index ce2bf43..bf69eff 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -18,7 +18,13 @@
      * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅
      */
     public List<SysUser> selectUserList(SysUser sysUser);
-
+    /**
+     * 鏍规嵁鏉′欢鍒嗛〉鏌ヨAPP鐢ㄦ埛鍒楄〃
+     *
+     * @param sysUser APP鐢ㄦ埛淇℃伅
+     * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅
+     */
+    public List<SysUser> selectAppUserList(SysUser sysUser);
     /**
      * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸查厤鐢ㄦ埛瑙掕壊鍒楄〃
      * 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
index 980cb0d..897852b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -1,6 +1,7 @@
 package com.ruoyi.system.service;
 
 import java.util.List;
+import java.util.Map;
 
 import com.ruoyi.common.core.domain.entity.SysUser;
 
@@ -17,6 +18,14 @@
      * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅
      */
     public List<SysUser> selectUserList(SysUser user);
+
+    /**
+     * 鏍规嵁鏉′欢鍒嗛〉鏌ヨAPP鐢ㄦ埛鍒楄〃
+     *
+     * @param user APP鐢ㄦ埛淇℃伅
+     * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅
+     */
+    public List<SysUser> selectAppUserList(SysUser user);
 
     /**
      * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛�
@@ -225,4 +234,5 @@
      * @param userIds 鐢ㄦ埛id鏁扮粍
      */
     public void clearUserCache(String[] userIds);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 6b36d4f..93eca00 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -128,6 +128,11 @@
     public List<SysUser> selectUserList(SysUser user) {
         return userMapper.selectUserList(user);
     }
+    @Override
+    @DataScope(deptAlias = "d", userAlias = "u")
+    public List<SysUser> selectAppUserList(SysUser user) {
+        return userMapper.selectAppUserList(user);
+    }
 
     /**
      * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛�
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index e41ea2c..91528e4 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -117,7 +117,17 @@
         <!-- 鏁版嵁鑼冨洿杩囨护 -->
         ${params.dataScope}
     </select>
-
+    <select id="selectAppUserList" parameterType="SysUser" resultMap="SysUserResult">
+        <include refid="selectUserVo"/>
+        where u.del_flag = '0'
+        and r.role_name like '%app%'
+        <if test="deptId != null and deptId != 0">
+            AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE cast(#{deptId} as
+            varchar) = any(string_to_array(ancestors,',')) ))
+        </if>
+        <!-- 鏁版嵁鑼冨洿杩囨护 -->
+        ${params.dataScope}
+    </select>
     <select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
         select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
         from sys_user u

--
Gitblit v1.9.3