ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java
@@ -223,4 +223,19 @@ List<Map<String,Object>> camerasList = ardCamerasService.getCamerasByDeptId(deptId); return AjaxResult.success(camerasList); } @PostMapping("/getCameraOperationByCameraId") @ApiOperation("查看相机可否操控") public AjaxResult getCameraOperationByCameraId(@RequestBody Map<String,String> map) { String userId = SecurityUtils.getUserId(); Boolean flag = ardCamerasService.getCameraOperationByCameraId(map.get("id"),userId); return AjaxResult.success(flag); } @PostMapping("/getChannelByCameraId") @ApiOperation("获取相机通道") public AjaxResult getChannelByCameraId(@RequestBody Map<String,String> map) { Map<String,Object> result = ardCamerasService.getChannelByCameraId(map.get("id")); return AjaxResult.success(result); } } ard-work/src/main/java/com/ruoyi/device/camera/mapper/ArdCamerasMapper.java
@@ -91,4 +91,8 @@ public ArdCameras checkCameraIpAndPortUnique(@Param("ip") String ip, @Param("port")Integer port); public List<Map<String, Object>> getCamerasByDeptId(Long deptId); public Boolean getCameraOperationByCameraId(@Param("id") String id, @Param("userId") String userId); public List<Map<String, Object>> getChannelByCameraId(String id); } ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java
@@ -133,4 +133,8 @@ public String checkCameraIpAndPortUnique(ArdCameras camera); public List<Map<String,Object>> getCamerasByDeptId(Long deptId); public Boolean getCameraOperationByCameraId(String id,String userId); public Map<String,Object> getChannelByCameraId(String id); } ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java
@@ -1,5 +1,6 @@ package com.ruoyi.device.camera.service.impl; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -566,4 +567,47 @@ List<Map<String, Object>> result = ardCamerasMapper.getCamerasByDeptId(deptId); return result; } @Override public Boolean getCameraOperationByCameraId(String id, String userId) { Boolean result = ardCamerasMapper.getCameraOperationByCameraId(id,userId); return result; } @Override public Map<String, Object> getChannelByCameraId(String id) { List<Map<String,Object>> result = ardCamerasMapper.getChannelByCameraId(id); Map<String,Object> resultMap = new HashMap(); if(result.size() == 1){ resultMap.put("chanNo", result.get(0).get("chan_no")); return resultMap; }else{ String configValue = (String) result.get(0).get("config_value"); String beginTime = configValue.split("-")[0]; String endTime = configValue.split("-")[1]; Date now = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String nowDay = sdf.format(now); try{ Long beginDate = sdf.parse(nowDay).getTime() + Integer.parseInt(beginTime.split(":")[0]) * 60 * 60 *1000 + Integer.parseInt(beginTime.split(":")[1]) * 60 *1000; Long endDate = sdf.parse(nowDay).getTime() + Integer.parseInt(endTime.split(":")[0]) * 60 * 60 *1000 + Integer.parseInt(endTime.split(":")[1]) * 60 *1000; if(now.getTime() >= beginDate && now.getTime() <= endDate){ result = result.stream().filter(map -> ((Integer)map.get("chan_no")) == 1).collect(Collectors.toList()); resultMap.put("chanNo", result.get(0).get("chan_no")); return resultMap; }else{ result = result.stream().filter(map -> ((Integer)map.get("chan_no")) == 2).collect(Collectors.toList()); resultMap.put("chanNo", result.get(0).get("chan_no")); return resultMap; } }catch (Exception e){ e.printStackTrace(); return resultMap; } } } } ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml
@@ -324,4 +324,24 @@ ) select distinct * from rsd order by "dictLabel" </select> <select id="getCameraOperationByCameraId" resultType="java.lang.Boolean" parameterType="java.lang.String"> select case now() > ac.operator_expired or ac.operator_expired is null when true then true when ( case ((select cast(su.camera_priority as integer) from sys_user su where su.user_id = #{userId}) > (select cast(su.camera_priority as integer) from sys_user su inner join ard_cameras ac on su.user_id = ac.operator_id where ac.id = #{id} )) when true then true when false then false end) then false end from ard_cameras ac where ac.id = #{id} </select> <select id="getChannelByCameraId" resultType="java.util.Map" parameterType="java.lang.String"> select * from ard_channel ac inner join sys_config sc on sc.config_key = 'dayNightTime' where ac.device_id = #{id} </select> </mapper>