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