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