diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/java/com/orion/ops/framework/mybatis/core/generator/CodeGenerators.java b/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/java/com/orion/ops/framework/mybatis/core/generator/CodeGenerators.java index 22248915..87f4827f 100644 --- a/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/java/com/orion/ops/framework/mybatis/core/generator/CodeGenerators.java +++ b/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/java/com/orion/ops/framework/mybatis/core/generator/CodeGenerators.java @@ -45,19 +45,9 @@ public class CodeGenerators { // .color("blue", "gray", "red", "green", "white") // .valueUseFields() // .build(), - Template.create("data_group", "数据分组", "data") + Template.create("data_permission", "数据权限", "data") .enableProviderApi() .disableUnitTest() - .cache("data:group:{}", "数据分组 ${type}") - .expire(1, TimeUnit.DAYS) - .vue("system", "data-group") - .build(), - Template.create("data_group_rel", "数据分组关联", "data") - .enableProviderApi() - .disableUnitTest() - .cache("data:group-rel:{}", "数据分组关联 ${groupId}") - .expire(1, TimeUnit.DAYS) - .vue("system", "data-group-rel") .build(), }; // jdbc 配置 - 使用配置文件 diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/resources/templates/orion-server-module-service-impl.java.vm b/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/resources/templates/orion-server-module-service-impl.java.vm index 9339f141..272a1456 100644 --- a/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/resources/templates/orion-server-module-service-impl.java.vm +++ b/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/resources/templates/orion-server-module-service-impl.java.vm @@ -13,6 +13,7 @@ import com.orion.ops.framework.common.utils.FileNames; import com.orion.ops.framework.common.utils.Valid; #if($meta.enableCache) import com.orion.ops.framework.redis.core.utils.RedisMaps; +import com.orion.ops.framework.redis.core.utils.barrier.CacheBarriers; #end #foreach($pkg in ${customModuleFilePackages}) import ${pkg}.*; @@ -138,13 +139,12 @@ public class ${table.serviceImplName} implements ${table.serviceName} { // 查询数据库 list = ${typeLower}DAO.of().list(${type}Convert.MAPPER::toCache); // 设置屏障 防止穿透 - RedisMaps.checkBarrier(list, ${type}CacheDTO::new); + CacheBarriers.checkBarrier(list, ${type}CacheDTO::new); // 设置缓存 - RedisMaps.putAllJson(${type}CacheKeyDefine.${typeConst}.getKey(), s -> s.getId().toString(), list); - RedisMaps.setExpire(${type}CacheKeyDefine.${typeConst}); + RedisMaps.putAllJson(${type}CacheKeyDefine.${typeConst}, s -> s.getId().toString(), list); } // 删除屏障 - RedisMaps.removeBarrier(list); + CacheBarriers.removeBarrier(list); // 转换 return list.stream() .map(${type}Convert.MAPPER::to) diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/resources/templates/orion-vue-views-index.vue.vm b/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/resources/templates/orion-vue-views-index.vue.vm index 6db22603..574f60d5 100644 --- a/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/resources/templates/orion-vue-views-index.vue.vm +++ b/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/resources/templates/orion-vue-views-index.vue.vm @@ -76,7 +76,7 @@ #if($vue.enableCardView) const appStore = useAppStore(); - // FIXME 这里需要修改一下字段名称 同时 appStore 的类型和 AppPreferenceModel 都需要定义该字段类型 + // FIXME 这里需要修改一下字段名称 并且在 appStore 定义该字段 const renderTable = computed(() => appStore.${vue.featureEntityFirstLower}View === 'table'); #end diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisLists.java b/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisLists.java index c2279f54..69b44c18 100644 --- a/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisLists.java +++ b/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisLists.java @@ -11,6 +11,8 @@ import java.util.stream.Collectors; /** * redis list 工具类 + *

+ * 写操作会自动设置过期时间 如果有 * * @author Jiahang Li * @version 1.0.0 @@ -82,6 +84,92 @@ public class RedisLists extends RedisUtils { .collect(Collectors.toList()); } + /** + * list 添加元素 + * + * @param key key + * @param value value + * @param T + */ + public static void push(CacheKeyDefine key, String value) { + push(key.getKey(), key, value, Function.identity()); + } + + /** + * list 添加元素 + * + * @param key key + * @param value value + * @param T + */ + public static void push(String key, String value) { + push(key, null, value, Function.identity()); + } + + /** + * list 添加元素 + * + * @param key key + * @param define define + * @param value value + * @param T + */ + public static void push(String key, CacheKeyDefine define, String value) { + push(key, define, value, Function.identity()); + } + + /** + * list 添加元素 + * + * @param key key + * @param value value + * @param mapper mapper + * @param T + */ + public static void push(CacheKeyDefine key, T value, Function mapper) { + push(key.getKey(), key, value, mapper); + } + + /** + * list 添加元素 + * + * @param key key + * @param value value + * @param mapper mapper + * @param T + */ + public static void push(String key, T value, Function mapper) { + push(key, null, value, mapper); + redisTemplate.opsForList().rightPush(key, mapper.apply(value)); + } + + /** + * list 添加元素 + * + * @param key key + * @param define define + * @param value value + * @param mapper mapper + * @param T + */ + public static void push(String key, CacheKeyDefine define, T value, Function mapper) { + redisTemplate.opsForList().rightPush(key, mapper.apply(value)); + if (define != null) { + setExpire(key, define); + } + } + + /** + * list 添加元素 + * + * @param key key + * @param value value + * @param T + */ + public static void pushJson(String key, T value) { + redisTemplate.opsForList().rightPush(key, JSON.toJSONString(value)); + } + /** * list 添加元素 * @@ -129,45 +217,37 @@ public class RedisLists extends RedisUtils { * @param list list * @param T */ - public static void pushAllJson(String key, List list) { - List values = list.stream() - .map(JSON::toJSONString) - .collect(Collectors.toList()); - redisTemplate.opsForList().rightPushAll(key, values); + public static void pushAllJson(CacheKeyDefine key, List list) { + pushAllJson(key.getKey(), key, list); } /** * list 添加元素 * - * @param key key - * @param value value - * @param T + * @param key key + * @param list list + * @param T */ - public static void push(String key, String value) { - redisTemplate.opsForList().rightPush(key, value); + public static void pushAllJson(String key, List list) { + pushAllJson(key, null, list); } /** * list 添加元素 * * @param key key - * @param value value - * @param mapper mapper + * @param define define + * @param list list * @param T */ - public static void push(String key, T value, Function mapper) { - redisTemplate.opsForList().rightPush(key, mapper.apply(value)); - } - - /** - * list 添加元素 - * - * @param key key - * @param value value - * @param T - */ - public static void pushJson(String key, T value) { - redisTemplate.opsForList().rightPush(key, JSON.toJSONString(value)); + public static void pushAllJson(String key, CacheKeyDefine define, List list) { + List values = list.stream() + .map(JSON::toJSONString) + .collect(Collectors.toList()); + redisTemplate.opsForList().rightPushAll(key, values); + if (define != null) { + setExpire(key, define); + } } /** diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisMaps.java b/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisMaps.java index 011630c6..936ee32b 100644 --- a/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisMaps.java +++ b/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisMaps.java @@ -15,6 +15,8 @@ import java.util.stream.Collectors; /** * redis hash 工具类 + *

+ * 写操作会自动设置过期时间 如果有 * * @author Jiahang Li * @version 1.0.0 @@ -34,7 +36,7 @@ public class RedisMaps extends RedisUtils { * @param value value */ public static void put(CacheKeyDefine key, Object hashKey, Object value) { - put(key.getKey(), hashKey, value); + put(key.getKey(), key, hashKey, value); } /** @@ -45,7 +47,22 @@ public class RedisMaps extends RedisUtils { * @param value value */ public static void put(String key, Object hashKey, Object value) { + put(key, null, hashKey, value); + } + + /** + * 插入数据 + * + * @param key key + * @param define define + * @param hashKey hashKey + * @param value value + */ + public static void put(String key, CacheKeyDefine define, Object hashKey, Object value) { redisTemplate.opsForHash().put(key, Objects1.toString(hashKey), Objects1.toString(value)); + if (define != null) { + setExpire(key, define); + } } /** @@ -56,7 +73,7 @@ public class RedisMaps extends RedisUtils { * @param value value */ public static void putJson(CacheKeyDefine key, Object hashKey, Object value) { - put(key.getKey(), hashKey, JSON.toJSONString(value)); + put(key.getKey(), key, hashKey, JSON.toJSONString(value)); } /** @@ -67,7 +84,19 @@ public class RedisMaps extends RedisUtils { * @param value value */ public static void putJson(String key, Object hashKey, Object value) { - put(key, hashKey, JSON.toJSONString(value)); + put(key, null, hashKey, JSON.toJSONString(value)); + } + + /** + * 插入数据 json + * + * @param key key + * @param define define + * @param hashKey hashKey + * @param value value + */ + public static void putJson(String key, CacheKeyDefine define, Object hashKey, Object value) { + put(key, define, hashKey, JSON.toJSONString(value)); } /** @@ -79,7 +108,7 @@ public class RedisMaps extends RedisUtils { * @param V */ public static void putJson(CacheKeyDefine key, Function keyMapper, V value) { - put(key.getKey(), keyMapper.apply(value), JSON.toJSONString(value)); + put(key.getKey(), key, keyMapper.apply(value), JSON.toJSONString(value)); } /** @@ -91,7 +120,20 @@ public class RedisMaps extends RedisUtils { * @param V */ public static void putJson(String key, Function keyMapper, V value) { - put(key, keyMapper.apply(value), JSON.toJSONString(value)); + put(key, null, keyMapper.apply(value), JSON.toJSONString(value)); + } + + /** + * 插入数据 json + * + * @param key key + * @param define define + * @param keyMapper keyMapper + * @param value value + * @param V + */ + public static void putJson(String key, CacheKeyDefine define, Function keyMapper, V value) { + put(key, define, keyMapper.apply(value), JSON.toJSONString(value)); } /** @@ -101,7 +143,7 @@ public class RedisMaps extends RedisUtils { * @param values values */ public static void putAll(CacheKeyDefine key, Map values) { - putAll(key.getKey(), values); + putAll(key.getKey(), key, values); } /** @@ -111,19 +153,22 @@ public class RedisMaps extends RedisUtils { * @param values values */ public static void putAll(String key, Map values) { - Map map = Maps.map(values, Objects1::toString, Objects1::toString); - redisTemplate.opsForHash().putAll(key, map); + putAll(key, null, values); } /** - * 插入数据 json + * 插入数据 * * @param key key + * @param define define * @param values values - * @param V */ - public static void putAllJson(CacheKeyDefine key, Map values) { - putAllJson(key.getKey(), values); + public static void putAll(String key, CacheKeyDefine define, Map values) { + Map map = Maps.map(values, Objects1::toString, Objects1::toString); + redisTemplate.opsForHash().putAll(key, map); + if (define != null) { + setExpire(key, define); + } } /** @@ -134,20 +179,34 @@ public class RedisMaps extends RedisUtils { * @param V */ public static void putAllJson(String key, Map values) { - Map map = Maps.map(values, Objects1::toString, JSON::toJSONString); - redisTemplate.opsForHash().putAll(key, map); + putAllJson(key, null, values); } /** * 插入数据 json * - * @param key key - * @param keyMapper keyMapper - * @param values values - * @param V + * @param key key + * @param values values + * @param V */ - public static void putAllJson(CacheKeyDefine key, Function keyMapper, List values) { - putAllJson(key.getKey(), keyMapper, values); + public static void putAllJson(CacheKeyDefine key, Map values) { + putAllJson(key.getKey(), key, values); + } + + /** + * 插入数据 json + * + * @param key key + * @param define define + * @param values values + * @param V + */ + public static void putAllJson(String key, CacheKeyDefine define, Map values) { + Map map = Maps.map(values, Objects1::toString, JSON::toJSONString); + redisTemplate.opsForHash().putAll(key, map); + if (define != null) { + setExpire(key, define); + } } /** @@ -159,9 +218,38 @@ public class RedisMaps extends RedisUtils { * @param V */ public static void putAllJson(String key, Function keyMapper, List values) { + putAllJson(key, null, keyMapper, values); + } + + /** + * 插入数据 json + * + * @param key key + * @param keyMapper keyMapper + * @param values values + * @param V + */ + public static void putAllJson(CacheKeyDefine key, Function keyMapper, List values) { + putAllJson(key.getKey(), key, keyMapper, values); + } + + /** + * 插入数据 json + * + * @param key key + * @param define define + * @param keyMapper keyMapper + * @param values values + * @param V + */ + public static void putAllJson(String key, CacheKeyDefine define, + Function keyMapper, List values) { Map map = values.stream() .collect(Collectors.toMap(keyMapper, JSON::toJSONString, Functions.right())); redisTemplate.opsForHash().putAll(key, map); + if (define != null) { + setExpire(key, define); + } } /** diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisStrings.java b/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisStrings.java index c8f71158..48a55d21 100644 --- a/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisStrings.java +++ b/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisStrings.java @@ -14,6 +14,8 @@ import java.util.stream.Collectors; /** * redis string 工具类 + *

+ * 写操作会自动设置过期时间 如果有 * * @author Jiahang Li * @version 1.0.0 @@ -224,7 +226,17 @@ public class RedisStrings extends RedisUtils { } /** - * 设置 json + * 设置值 + * + * @param define define + * @param value value + */ + public static void set(CacheKeyDefine define, Object value) { + set(define.getKey(), define, value); + } + + /** + * 设置值 * * @param key key * @param define define @@ -234,7 +246,7 @@ public class RedisStrings extends RedisUtils { if (value == null) { value = Strings.EMPTY; } - if (define.getTimeout() == 0) { + if (define == null || define.getTimeout() == 0) { // 不过期 redisTemplate.opsForValue().set(key, value.toString()); } else { @@ -245,6 +257,16 @@ public class RedisStrings extends RedisUtils { } } + /** + * 设置 json + * + * @param define define + * @param value value + */ + public static void setJson(CacheKeyDefine define, Object value) { + setJson(define.getKey(), define, value); + } + /** * 设置 json * @@ -253,7 +275,7 @@ public class RedisStrings extends RedisUtils { * @param value value */ public static void setJson(String key, CacheKeyDefine define, Object value) { - if (define.getTimeout() == 0) { + if (define == null || define.getTimeout() == 0) { // 不过期 redisTemplate.opsForValue().set(key, JSON.toJSONString(value)); } else { diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisUtils.java b/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisUtils.java index 7783c46a..23834e22 100644 --- a/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisUtils.java +++ b/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/RedisUtils.java @@ -20,7 +20,7 @@ import java.util.Set; * @version 1.0.0 * @since 2021/11/6 11:09 */ -public class RedisUtils extends CacheUtils { +public class RedisUtils { protected static RedisTemplate redisTemplate; @@ -112,7 +112,7 @@ public class RedisUtils extends CacheUtils { * @param define define */ public static void setExpire(String key, CacheKeyDefine define) { - if (define.getTimeout() != 0) { + if (define != null && define.getTimeout() != 0) { // 设置过期时间 redisTemplate.expire(key, define.getTimeout(), define.getUnit()); } diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/CacheUtils.java b/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/barrier/CacheBarriers.java similarity index 78% rename from orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/CacheUtils.java rename to orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/barrier/CacheBarriers.java index 06897402..1111ec09 100644 --- a/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/CacheUtils.java +++ b/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/barrier/CacheBarriers.java @@ -1,25 +1,26 @@ -package com.orion.ops.framework.redis.core.utils; +package com.orion.ops.framework.redis.core.utils.barrier; import com.orion.lang.define.cache.key.model.LongCacheIdModel; import com.orion.lang.utils.collect.Lists; import com.orion.ops.framework.common.constant.Const; import java.util.Collection; -import java.util.List; import java.util.function.Supplier; /** - * 缓存工具类 + * 缓存屏障工具类 * * @author Jiahang Li * @version 1.0.0 * @since 2023/11/15 1:22 */ -public class CacheUtils { +public class CacheBarriers { - protected CacheUtils() { + private CacheBarriers() { } + public static final GenericsListBarrier LONG = GenericsListBarrier.create(Const.NONE_ID); + /** * 创建屏障对象 防止穿透 * @@ -33,15 +34,14 @@ public class CacheUtils { return val; } - /** - * 检测是否需要 创建屏障对象 防止穿透 + * 检测是否需要添加屏障对象 防止穿透 * * @param list list * @param supplier supplier * @param T */ - public static void checkBarrier(List list, Supplier supplier) { + public static void checkBarrier(Collection list, Supplier supplier) { if (list != null && list.isEmpty()) { // 添加屏障对象 list.add(createBarrier(supplier)); diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/barrier/GenericsListBarrier.java b/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/barrier/GenericsListBarrier.java new file mode 100644 index 00000000..ba6470e4 --- /dev/null +++ b/orion-ops-framework/orion-ops-spring-boot-starter-redis/src/main/java/com/orion/ops/framework/redis/core/utils/barrier/GenericsListBarrier.java @@ -0,0 +1,57 @@ +package com.orion.ops.framework.redis.core.utils.barrier; + +import com.orion.lang.utils.collect.Lists; + +import java.util.Collection; + +/** + * 标准集合屏障 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2023/11/21 11:46 + */ +public class GenericsListBarrier { + + private final T barrierValue; + + public GenericsListBarrier(T barrierValue) { + this.barrierValue = barrierValue; + } + + /** + * 创建屏障 + * + * @param barrierValue barrierValue + * @param T + * @return barrier + */ + public static GenericsListBarrier create(T barrierValue) { + return new GenericsListBarrier<>(barrierValue); + } + + + /** + * 检测是否需要添加屏障对象 防止穿透 + * + * @param list list + */ + public void check(Collection list) { + if (list != null && list.isEmpty()) { + // 添加屏障对象 + list.add(barrierValue); + } + } + + /** + * 移除屏障对象 + * + * @param list list + */ + public void remove(Collection list) { + if (!Lists.isEmpty(list)) { + list.removeIf(s -> s.equals(barrierValue)); + } + } + +} diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/HostController.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/HostController.java index 0f1207e3..13778313 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/HostController.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/HostController.java @@ -45,8 +45,6 @@ public class HostController { @Resource private HostConfigService hostConfigService; - // fixme host_config 设置为缓存 - @OperatorLog(HostOperatorType.CREATE) @PostMapping("/create") @Operation(summary = "创建主机") diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostIdentityServiceImpl.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostIdentityServiceImpl.java index 134263ef..2b139c4d 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostIdentityServiceImpl.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostIdentityServiceImpl.java @@ -6,12 +6,12 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.orion.lang.define.wrapper.DataGrid; import com.orion.lang.utils.Strings; -import com.orion.lang.utils.collect.Lists; import com.orion.ops.framework.biz.operator.log.core.uitls.OperatorLogs; import com.orion.ops.framework.common.constant.ErrorMessage; import com.orion.ops.framework.common.security.PasswordModifier; import com.orion.ops.framework.common.utils.Valid; import com.orion.ops.framework.redis.core.utils.RedisMaps; +import com.orion.ops.framework.redis.core.utils.barrier.CacheBarriers; import com.orion.ops.module.asset.convert.HostIdentityConvert; import com.orion.ops.module.asset.dao.HostConfigDAO; import com.orion.ops.module.asset.dao.HostIdentityDAO; @@ -118,13 +118,12 @@ public class HostIdentityServiceImpl implements HostIdentityService { // 查询数据库 list = hostIdentityDAO.of().list(HostIdentityConvert.MAPPER::toCache); // 设置屏障 防止穿透 - RedisMaps.checkBarrier(list, HostIdentityCacheDTO::new); + CacheBarriers.checkBarrier(list, HostIdentityCacheDTO::new); // 设置缓存 - RedisMaps.putAllJson(HostCacheKeyDefine.HOST_IDENTITY.getKey(), s -> s.getId().toString(), list); - RedisMaps.setExpire(HostCacheKeyDefine.HOST_IDENTITY); + RedisMaps.putAllJson(HostCacheKeyDefine.HOST_IDENTITY, s -> s.getId().toString(), list); } // 删除屏障 - RedisMaps.removeBarrier(list); + CacheBarriers.removeBarrier(list); // 转换 return list.stream() .map(HostIdentityConvert.MAPPER::to) diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostKeyServiceImpl.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostKeyServiceImpl.java index 9cd41145..2f4b3c80 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostKeyServiceImpl.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostKeyServiceImpl.java @@ -4,13 +4,13 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.orion.lang.define.wrapper.DataGrid; import com.orion.lang.utils.Strings; -import com.orion.lang.utils.collect.Lists; import com.orion.ops.framework.biz.operator.log.core.uitls.OperatorLogs; import com.orion.ops.framework.common.constant.ErrorMessage; import com.orion.ops.framework.common.security.PasswordModifier; import com.orion.ops.framework.common.utils.CryptoUtils; import com.orion.ops.framework.common.utils.Valid; import com.orion.ops.framework.redis.core.utils.RedisMaps; +import com.orion.ops.framework.redis.core.utils.barrier.CacheBarriers; import com.orion.ops.module.asset.convert.HostKeyConvert; import com.orion.ops.module.asset.dao.HostConfigDAO; import com.orion.ops.module.asset.dao.HostIdentityDAO; @@ -132,13 +132,12 @@ public class HostKeyServiceImpl implements HostKeyService { // 查询数据库 list = hostKeyDAO.of().list(HostKeyConvert.MAPPER::toCache); // 设置屏障 防止穿透 - RedisMaps.checkBarrier(list, HostKeyCacheDTO::new); + CacheBarriers.checkBarrier(list, HostKeyCacheDTO::new); // 设置缓存 - RedisMaps.putAllJson(HostCacheKeyDefine.HOST_KEY.getKey(), s -> s.getId().toString(), list); - RedisMaps.setExpire(HostCacheKeyDefine.HOST_KEY); + RedisMaps.putAllJson(HostCacheKeyDefine.HOST_KEY, s -> s.getId().toString(), list); } // 删除屏障 - RedisMaps.removeBarrier(list); + CacheBarriers.removeBarrier(list); // 转换 return list.stream() .map(HostKeyConvert.MAPPER::to) diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostServiceImpl.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostServiceImpl.java index 7066a76a..03ff9f03 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostServiceImpl.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostServiceImpl.java @@ -10,6 +10,7 @@ import com.orion.ops.framework.biz.operator.log.core.uitls.OperatorLogs; import com.orion.ops.framework.common.constant.ErrorMessage; import com.orion.ops.framework.common.utils.Valid; import com.orion.ops.framework.redis.core.utils.RedisMaps; +import com.orion.ops.framework.redis.core.utils.barrier.CacheBarriers; import com.orion.ops.module.asset.convert.HostConvert; import com.orion.ops.module.asset.dao.HostConfigDAO; import com.orion.ops.module.asset.dao.HostDAO; @@ -155,13 +156,12 @@ public class HostServiceImpl implements HostService { // 查询数据库 list = hostDAO.of().list(HostConvert.MAPPER::toCache); // 设置屏障 防止穿透 - RedisMaps.checkBarrier(list, HostCacheDTO::new); + CacheBarriers.checkBarrier(list, HostCacheDTO::new); // 设置缓存 - RedisMaps.putAllJson(HostCacheKeyDefine.HOST_INFO.getKey(), s -> s.getId().toString(), list); - RedisMaps.setExpire(HostCacheKeyDefine.HOST_INFO); + RedisMaps.putAllJson(HostCacheKeyDefine.HOST_INFO, s -> s.getId().toString(), list); } // 删除屏障 - RedisMaps.removeBarrier(list); + CacheBarriers.removeBarrier(list); // 转换 return list.stream() .map(HostConvert.MAPPER::to) diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/handler/preference/model/AppPreferenceModel.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/handler/preference/model/AppPreferenceModel.java index e2fb270e..22037f9f 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/handler/preference/model/AppPreferenceModel.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/handler/preference/model/AppPreferenceModel.java @@ -40,13 +40,4 @@ public class AppPreferenceModel implements PreferenceModel { @Schema(description = "菜单宽度") private Number menuWidth; - @Schema(description = "主机视图") - private String hostView; - - @Schema(description = "主机秘钥视图") - private String hostKeyView; - - @Schema(description = "主机身份视图") - private String hostIdentityView; - } diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/handler/preference/strategy/SystemPreferenceStrategy.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/handler/preference/strategy/SystemPreferenceStrategy.java index 37445e76..db687d58 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/handler/preference/strategy/SystemPreferenceStrategy.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/handler/preference/strategy/SystemPreferenceStrategy.java @@ -13,10 +13,6 @@ import org.springframework.stereotype.Component; @Component public class SystemPreferenceStrategy implements IPreferenceStrategy { - private static final String TABLE = "table"; - - private static final String CARD = "card"; - @Override public AppPreferenceModel getDefault() { return AppPreferenceModel.builder() @@ -27,9 +23,6 @@ public class SystemPreferenceStrategy implements IPreferenceStrategy rows = this.getDataGroupListByCache(type); // 设置屏障 防止穿透 - RedisStrings.checkBarrier(rows, DataGroupCacheDTO::new); + CacheBarriers.checkBarrier(rows, DataGroupCacheDTO::new); if (!Lists.isEmpty(rows)) { // 构建树 DataGroupCacheDTO rootNode = DataGroupCacheDTO.builder() @@ -191,7 +192,7 @@ public class DataGroupServiceImpl implements DataGroupService { RedisStrings.setJson(key, DataGroupCacheKeyDefine.DATA_GROUP_LIST, treeData); } // 删除屏障 - RedisStrings.removeBarrier(treeData); + CacheBarriers.removeBarrier(treeData); return treeData; } diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DictKeyServiceImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DictKeyServiceImpl.java index 04453f06..2954b455 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DictKeyServiceImpl.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DictKeyServiceImpl.java @@ -15,6 +15,7 @@ import com.orion.ops.framework.common.utils.Valid; import com.orion.ops.framework.redis.core.utils.RedisMaps; import com.orion.ops.framework.redis.core.utils.RedisStrings; import com.orion.ops.framework.redis.core.utils.RedisUtils; +import com.orion.ops.framework.redis.core.utils.barrier.CacheBarriers; import com.orion.ops.module.infra.convert.DictKeyConvert; import com.orion.ops.module.infra.dao.DictKeyDAO; import com.orion.ops.module.infra.define.cache.DictCacheKeyDefine; @@ -107,13 +108,12 @@ public class DictKeyServiceImpl implements DictKeyService { // 查询数据库 list = dictKeyDAO.of().list(DictKeyConvert.MAPPER::toCache); // 设置屏障 防止穿透 - RedisMaps.checkBarrier(list, DictKeyCacheDTO::new); + CacheBarriers.checkBarrier(list, DictKeyCacheDTO::new); // 设置缓存 - RedisMaps.putAllJson(DictCacheKeyDefine.DICT_KEY.getKey(), s -> s.getId().toString(), list); - RedisMaps.setExpire(DictCacheKeyDefine.DICT_KEY); + RedisMaps.putAllJson(DictCacheKeyDefine.DICT_KEY, s -> s.getId().toString(), list); } // 删除屏障 - RedisMaps.removeBarrier(list); + CacheBarriers.removeBarrier(list); // 转换 return list.stream() .map(DictKeyConvert.MAPPER::to) diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/FavoriteServiceImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/FavoriteServiceImpl.java index a4dc2fee..a24f1f86 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/FavoriteServiceImpl.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/FavoriteServiceImpl.java @@ -2,9 +2,9 @@ package com.orion.ops.module.infra.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.orion.lang.utils.collect.Lists; -import com.orion.ops.framework.common.constant.Const; import com.orion.ops.framework.common.utils.Valid; import com.orion.ops.framework.redis.core.utils.RedisLists; +import com.orion.ops.framework.redis.core.utils.barrier.CacheBarriers; import com.orion.ops.framework.security.core.utils.SecurityUtils; import com.orion.ops.module.infra.convert.FavoriteConvert; import com.orion.ops.module.infra.dao.FavoriteDAO; @@ -86,26 +86,24 @@ public class FavoriteServiceImpl implements FavoriteService { Long userId = request.getUserId(); String cacheKey = FavoriteCacheKeyDefine.FAVORITE.format(type, userId); // 获取缓存 - List cacheRelIdList = RedisLists.range(cacheKey, Long::valueOf); - if (cacheRelIdList.isEmpty()) { + List list = RedisLists.range(cacheKey, Long::valueOf); + if (list.isEmpty()) { // 条件 LambdaQueryWrapper wrapper = this.buildQueryWrapper(request); // 查询数据库 - cacheRelIdList = favoriteDAO.of(wrapper) + list = favoriteDAO.of(wrapper) .stream() .map(FavoriteDO::getRelId) .distinct() .collect(Collectors.toList()); - // 添加默认值 防止穿透 - if (cacheRelIdList.isEmpty()) { - cacheRelIdList.add(Const.NONE_ID); - } + // 设置屏障 防止穿透 + CacheBarriers.LONG.check(list); // 设置缓存 - RedisLists.pushAll(cacheKey, FavoriteCacheKeyDefine.FAVORITE, cacheRelIdList, String::valueOf); + RedisLists.pushAll(cacheKey, FavoriteCacheKeyDefine.FAVORITE, list, String::valueOf); } - // 删除默认值 - cacheRelIdList.remove(Const.NONE_ID); - return cacheRelIdList; + // 删除屏障 + CacheBarriers.LONG.remove(list); + return list; } @Override diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemUserServiceImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemUserServiceImpl.java index b27081c8..bd95f4c8 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemUserServiceImpl.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/SystemUserServiceImpl.java @@ -14,6 +14,7 @@ import com.orion.ops.framework.common.utils.Valid; import com.orion.ops.framework.redis.core.utils.RedisMaps; import com.orion.ops.framework.redis.core.utils.RedisStrings; import com.orion.ops.framework.redis.core.utils.RedisUtils; +import com.orion.ops.framework.redis.core.utils.barrier.CacheBarriers; import com.orion.ops.framework.security.core.utils.SecurityUtils; import com.orion.ops.module.infra.convert.SystemUserConvert; import com.orion.ops.module.infra.dao.OperatorLogDAO; @@ -164,13 +165,12 @@ public class SystemUserServiceImpl implements SystemUserService { // 查询数据库 list = systemUserDAO.of().list(SystemUserConvert.MAPPER::toUserInfo); // 设置屏障 防止穿透 - RedisMaps.checkBarrier(list, UserInfoDTO::new); + CacheBarriers.checkBarrier(list, UserInfoDTO::new); // 设置缓存 - RedisMaps.putAllJson(UserCacheKeyDefine.USER_LIST.getKey(), s -> s.getId().toString(), list); - RedisMaps.setExpire(UserCacheKeyDefine.USER_LIST); + RedisMaps.putAllJson(UserCacheKeyDefine.USER_LIST, s -> s.getId().toString(), list); } // 删除屏障 - RedisMaps.removeBarrier(list); + CacheBarriers.removeBarrier(list); // 转换 return list.stream() .map(SystemUserConvert.MAPPER::to) diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/TagServiceImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/TagServiceImpl.java index 68e90984..8f52e2fe 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/TagServiceImpl.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/TagServiceImpl.java @@ -2,10 +2,10 @@ package com.orion.ops.module.infra.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.orion.lang.utils.collect.Lists; import com.orion.ops.framework.common.constant.Const; import com.orion.ops.framework.mybatis.core.query.Conditions; import com.orion.ops.framework.redis.core.utils.RedisLists; +import com.orion.ops.framework.redis.core.utils.barrier.CacheBarriers; import com.orion.ops.module.infra.convert.TagConvert; import com.orion.ops.module.infra.dao.TagDAO; import com.orion.ops.module.infra.define.cache.TagCacheKeyDefine; @@ -69,13 +69,12 @@ public class TagServiceImpl implements TagService { LambdaQueryWrapper wrapper = Conditions.eq(TagDO::getType, type); list = tagDAO.of(wrapper).list(TagConvert.MAPPER::toCache); // 设置屏障 防止穿透 - RedisLists.checkBarrier(list, TagCacheDTO::new); + CacheBarriers.checkBarrier(list, TagCacheDTO::new); // 设置到缓存 - RedisLists.pushAllJson(cacheKey, list); - RedisLists.setExpire(cacheKey, TagCacheKeyDefine.TAG_NAME); + RedisLists.pushAllJson(cacheKey, TagCacheKeyDefine.TAG_NAME, list); } // 删除屏障 - RedisLists.removeBarrier(list); + CacheBarriers.removeBarrier(list); // 转换 return list.stream() .map(TagConvert.MAPPER::to) diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/TipsServiceImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/TipsServiceImpl.java index 30d6aacc..ee6d1df1 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/TipsServiceImpl.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/TipsServiceImpl.java @@ -23,8 +23,7 @@ public class TipsServiceImpl implements TipsService { public void tipped(String tippedKey) { Long userId = SecurityUtils.getLoginUserId(); String key = TipsCacheKeyDefine.TIPS.format(userId); - RedisLists.push(key, tippedKey); - RedisLists.setExpire(key, TipsCacheKeyDefine.TIPS); + RedisLists.push(key, TipsCacheKeyDefine.TIPS, tippedKey); } @Override