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; }