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