From 508efaad8b2e23a046c36594a9d16b372ea58a26 Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Thu, 21 Sep 2023 10:44:39 +0800
Subject: [PATCH] feat:添加测试更新guid

---
 screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java                     |    5 +-
 screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java          |    8 ++--
 screen-manage/src/main/resources/mapper/DeviceMapper.xml                               |    5 ++
 screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java |   60 +++++++++++++++++-------------
 screen-manage/src/main/java/com/moral/api/util/CacheUtils.java                         |   20 ++++++++-
 5 files changed, 61 insertions(+), 37 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java
index 5eb2191..fd13764 100644
--- a/screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java
+++ b/screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java
@@ -1,7 +1,5 @@
 package com.moral.api.mapper;
 
-import org.apache.ibatis.annotations.Param;
-
 import java.util.List;
 import java.util.Map;
 
@@ -11,6 +9,7 @@
 import com.moral.api.entity.Device;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.moral.api.pojo.vo.device.DeviceVO;
+import io.lettuce.core.dynamic.annotation.Param;
 
 /**
  * <p>
@@ -24,6 +23,6 @@
 
     DeviceVO selectDeviceInfoById(Integer deviceId);
 
-    List<Device> queryDeviceUnitAlarmInfo();
+    List<Device> queryDeviceUnitAlarmInfo(@Param("region") String mac);
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
index bfc1a41..f707242 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -191,7 +191,7 @@
         //������������������redis
         setDeviceInfoToRedis(mac, deviceInfo);
         //������deviceInfo������
-        CacheUtils.refreshDeviceAlarmInfo();
+        CacheUtils.refreshDeviceAlarmInfo(mac);
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         StringBuilder content = new StringBuilder();
@@ -629,9 +629,9 @@
     public void setRedisDevice() {
         List<Device> list = lambdaQuery().eq(Device::getIsDelete,0).list();
         for(Device d : list){
-           Map<String, Object> deviceInfo = selectDeviceInfoById(d.getId());
-           redisTemplate.opsForHash().delete(RedisConstants.DEVICE, d.getMac());
-           setDeviceInfoToRedis(d.getMac(), deviceInfo);
+            redisTemplate.opsForHash().delete(RedisConstants.DEVICE, d.getMac());
+            Map<String, Object> deviceInfo = selectDeviceInfoById(d.getId());
+            setDeviceInfoToRedis(d.getMac(), deviceInfo);
         }
     }
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
index 2c9f744..9a0f119 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
@@ -37,6 +37,8 @@
 
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import java.util.stream.Collectors;
 
 /**
@@ -221,6 +223,7 @@
     @Override
     @Transactional
     public void updateList(Integer id, String guid) {
+        ExecutorService executorService = Executors.newFixedThreadPool(2);
         QueryWrapper<GovMonitorPoint> wrapper_govMonitorPoint = new QueryWrapper<>();
         wrapper_govMonitorPoint.eq("is_delete", Constants.NOT_DELETE);
         wrapper_govMonitorPoint.eq("id", id);
@@ -230,33 +233,38 @@
         }
         GovMonitorPoint govMonitorPoint = govMonitorPoints.get(0);
         String oldGuid = govMonitorPoint.getGuid();
-        if(!oldGuid.equals(guid)){
-            govMonitorPoint.setGuid(guid);
-            govMonitorPointMapper.updateById(govMonitorPoint);
-            //������redis
-            delGovMonitorPointInfoFromRedis(id.toString());
-            //������redis
-            setGovMonitorPointInfoToRedis(id.toString(), selectGovMonitorPointInfoById(id));
-            //������������������
-            HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
-            StringBuilder content = new StringBuilder();
-            content.append("������������������������").append("id:").append(govMonitorPoint.getId() + ";");
-            if (!ObjectUtils.isEmpty(govMonitorPoint.getGuid())) {
-                content.append("guid:").append(oldGuid).append("->").append(guid).append(";");
-            }
-            LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
-            LambdaQueryChainWrapper<Device> wrapper = deviceService.lambdaQuery();
-            wrapper.eq(Device::getIsDelete,0);
-            wrapper.eq(Device::getGuid,oldGuid);
-            List<Device> list = wrapper.list();
-            list.forEach(it->it.setGuid(guid));
-            deviceService.updateBatchById(list);
-            for(Device d : list){
-                Map<String, Object> deviceInfo = deviceService.selectDeviceInfoById(d.getId());
-                redisTemplate.opsForHash().delete(RedisConstants.DEVICE, d.getMac());
-                redisTemplate.opsForHash().put(RedisConstants.DEVICE, d.getMac(), deviceInfo);
-            }
+        LambdaQueryChainWrapper<Device> wrapper = deviceService.lambdaQuery();
+        wrapper.eq(Device::getIsDelete,0);
+        wrapper.eq(Device::getGuid,oldGuid);
+        List<Device> list = wrapper.list();
+        list.forEach(it->it.setGuid(guid));
+
+        deviceService.updateBatchById(list);
+
+        govMonitorPoint.setGuid(guid);
+        govMonitorPointMapper.updateById(govMonitorPoint);
+        //������redis
+        delGovMonitorPointInfoFromRedis(id.toString());
+        //������redis
+        setGovMonitorPointInfoToRedis(id.toString(), selectGovMonitorPointInfoById(id));
+        //������������������
+        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+        StringBuilder content = new StringBuilder();
+        content.append("������������������������").append("id:").append(govMonitorPoint.getId() + ";");
+        if (!ObjectUtils.isEmpty(govMonitorPoint.getGuid())) {
+            content.append("guid:").append(oldGuid).append("->").append(guid).append(";");
         }
+        LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
+        for(Device d : list){
+            executorService.submit(()->{
+                redisTemplate.opsForHash().delete(RedisConstants.DEVICE, d.getMac());
+                Map<String, Object> deviceInfo = deviceService.selectDeviceInfoById(d.getId());
+                redisTemplate.opsForHash().put(RedisConstants.DEVICE, d.getMac(), deviceInfo);
+
+            });
+        }
+        // ���������������
+        executorService.shutdown();
     }
 
     @Override
diff --git a/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java b/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java
index 4d6e791..cecec02 100644
--- a/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java
+++ b/screen-manage/src/main/java/com/moral/api/util/CacheUtils.java
@@ -17,6 +17,7 @@
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
 
 import java.util.HashMap;
 import java.util.List;
@@ -82,10 +83,21 @@
 
 
     public static void refreshDeviceAlarmInfo() {
-        //������������
-        redisTemplate.delete(RedisConstants.DEVICE_INFO);
+
+        refreshDeviceAlarmInfo(null);
+
+
+    }
+    public static void refreshDeviceAlarmInfo(String mac){
+        if(StringUtils.isEmpty(mac)){
+            //������������
+            redisTemplate.delete(RedisConstants.DEVICE_INFO);
+        }else {
+            redisTemplate.opsForHash().delete(RedisConstants.DEVICE_INFO,mac);
+        }
         //������������������
-        List<Device> devices = deviceMapper.queryDeviceUnitAlarmInfo();
+        List<Device> devices = deviceMapper.queryDeviceUnitAlarmInfo(mac);
+
         Map<String, SysDictData> unitMap = sysDictDataService.getDictDatasByType("unit");
         //���������������������������������������������
         Map<String,Device> result = new HashMap<>();
@@ -132,6 +144,8 @@
         redisTemplate.opsForHash().putAll(RedisConstants.DEVICE_INFO,result);
     }
 
+
+
     public static void refreshSpecialDeviceAlarmInfo() {
         //������������
         redisTemplate.delete(RedisConstants.SPECIAL_DEVICE_INFO);
diff --git a/screen-manage/src/main/resources/mapper/DeviceMapper.xml b/screen-manage/src/main/resources/mapper/DeviceMapper.xml
index f394f1e..ead9eb8 100644
--- a/screen-manage/src/main/resources/mapper/DeviceMapper.xml
+++ b/screen-manage/src/main/resources/mapper/DeviceMapper.xml
@@ -251,7 +251,10 @@
         on
             d.`device_version_id` = oua.`version_id`   and d.`organization_id` = oua.`organization_id` and oua.`is_delete` = 0
         where
-            d.`is_delete` = 0;
+            d.`is_delete` = 0
+        <if test="mac != null and mac != '' ">
+            and d.mac = #{mac}
+        </if>
     </select>
 
 

--
Gitblit v1.8.0