From 88e57e3b85cced4509607ceb8a81576363f954c2 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Tue, 24 Jun 2025 10:11:56 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=E8=AE=BE=E5=A4=87=E7=BB=84=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=A2=9E=E5=8A=A0redis=E7=BC=93=E5=AD=98=E2=91=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DeviceProServiceImpl.java | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java index 3daed16..fcd1d34 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java @@ -144,7 +144,7 @@ public class DeviceProServiceImpl implements IDeviceProService { } //更新设备组redis缓存 - Boolean flag = updateDeviceProCache(); + Boolean flag = updateDeviceProCache("update",null); return true; } catch (ServiceException e) { @@ -153,7 +153,11 @@ public class DeviceProServiceImpl implements IDeviceProService { } } - private Boolean updateDeviceProCache() { + /** + * 更新设备组人员缓存 + * @return + */ + private Boolean updateDeviceProCache(String operateType,Long proUserId) { try { // -------------------------------------- redis缓存 --------------------------------------------------- @@ -171,12 +175,22 @@ public class DeviceProServiceImpl implements IDeviceProService { )); + //如果是删除操作 + if (operateType.equalsIgnoreCase("delete")){ + if (!proUserMap.containsKey(proUserId)){ + if (RedisUtils.hasKey("device_pro:" + proUserId)){ + RedisUtils.deleteObject("device_pro:" + proUserId); + } + } + } + + //更新redis设备组信息 proUserMap.keySet().forEach(userId -> { //获取最新的用户设备组信息 List currentProId = proUserMap.get(userId); - List cacheList = RedisUtils.getCacheList("device_pro:" + userId); + List cacheList = RedisUtils.getCacheList("device_pro:" + userId); log.info("设备组缓存:{}",cacheList); @@ -317,10 +331,12 @@ public class DeviceProServiceImpl implements IDeviceProService { wrapper.eq(DeviceProUserEntity::getDeviceProId,proId); wrapper.eq(DeviceProUserEntity::getId,proUserId); + DeviceProUserEntity deviceProUserEntity = deviceProUserMapper.selectById(proUserId); + int flag = deviceProUserMapper.delete(wrapper); //更新缓存 - updateDeviceProCache(); + updateDeviceProCache("delete",deviceProUserEntity.getUserId()); return flag > 0; }