From bb22ca2e9b9c60b0138a322ad49cab7ea8aa06e1 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 25 十月 2023 17:12:54 +0800
Subject: [PATCH] 修复雷达引导2个相机引导录像重复问题;

---
 ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java
index 9bfeeb1..1ef2e1a 100644
--- a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java
@@ -4,14 +4,17 @@
 import java.util.stream.Collectors;
 
 import com.ruoyi.common.constant.CacheConstants;
+import com.ruoyi.common.constant.CameraConstants;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.device.camera.domain.CameraCmd;
 import com.ruoyi.device.channel.domain.ArdChannel;
 import com.ruoyi.device.channel.mapper.ArdChannelMapper;
+import com.ruoyi.media.service.IVtduService;
 import com.ruoyi.scheduling.domian.SchedulingParam;
 import com.ruoyi.utils.gis.GisUtil;
 import com.ruoyi.utils.tools.ArdTool;
@@ -45,10 +48,17 @@
 
     @Resource
     private ArdChannelMapper ardChannelMapper;
+    @Resource
+    private IVtduService vtduService;
 
 
     @PostConstruct
     public void loadCameras() {
+
+        //娓呯┖鐩告満缂撳瓨
+        Collection<String> cacheKeys = redisCache.keys(getCacheKey("*"));
+        redisCache.deleteObject(cacheKeys);
+        //閲嶆柊鍔犺浇鐩告満鍒扮紦瀛�
         List<ArdCameras> ardCameras = selectArdCamerasListNoDataScope(new ArdCameras());
         for (ArdCameras ardCamera : ardCameras) {
             redisCache.setCacheObject(getCacheKey(ardCamera.getId()), ardCamera);
@@ -74,7 +84,16 @@
      */
     @Override
     public ArdCameras selectArdCamerasById(String id) {
-        return ardCamerasMapper.selectArdCamerasById(id);
+        ArdCameras ardCameras = ardCamerasMapper.selectArdCamerasById(id);
+        if (ardCameras != null) {
+            ArdChannel ardChannel = new ArdChannel();
+            ardChannel.setDeviceId(ardCameras.getId());
+            List<ArdChannel> ardChannels = ardChannelMapper.selectArdChannelList(ardChannel);
+            if (ardChannels != null) {
+                ardCameras.setChannelList(ardChannels);
+            }
+        }
+        return ardCameras;
     }
 
     /**
@@ -156,6 +175,8 @@
         if (res > 0) {
             for (String id : ids) {
                 redisCache.deleteObject(getCacheKey(id));
+                //鍒犻櫎娴佸獟浣�
+                vtduService.deleteVtduByCameraId(id);
                 //鍒犻櫎褰撳墠鐩告満鐨勬墍鏈夐�氶亾
                 ardChannelMapper.deleteArdChannelByDeviceId(id);
             }
@@ -180,7 +201,15 @@
     }
 
     public List findOptions(ArdCameras ardCameras) {
-        return ardCamerasMapper.findOptions(ardCameras);
+        List<ArdCameras> options = ardCamerasMapper.findOptions(ardCameras);
+        for (ArdCameras camera :
+                options) {
+            ArdChannel ardChannel = new ArdChannel();
+            ardChannel.setDeviceId(camera.getId());
+            List<ArdChannel> ardChannels = ardChannelMapper.selectArdChannelList(ardChannel);
+            camera.setChannelList(ardChannels);
+        }
+        return options;
     }
 
     /**
@@ -393,4 +422,21 @@
         return null;
     }
 
+    /**
+     * 鏍¢獙鐩告満鏄惁鍞竴
+     *
+     * @param camera 鐩告満
+     * @return 缁撴灉
+     */
+    @Override
+    public String checkCameraIpAndPortUnique(ArdCameras camera) {
+        String id = camera.getId();
+        String ip = camera.getIp();
+        Integer port = camera.getPort();
+        ArdCameras info = ardCamerasMapper.checkCameraIpAndPortUnique(ip, port);
+        if (StringUtils.isNotNull(info) && !info.getId().equals(id)) {
+            return CameraConstants.NOT_UNIQUE;
+        }
+        return CameraConstants.UNIQUE;
+    }
 }

--
Gitblit v1.9.3