From 7b46d1d38540333a59f7bba25af9d5aeabbc16bd Mon Sep 17 00:00:00 2001 From: xin <1099200748@qq.com> Date: Tue, 15 Jul 2025 15:39:26 +0800 Subject: [PATCH] 配送类型 --- oying-common/src/main/java/com/oying/utils/RedisUtils.java | 41 +++++++++++++++++++++++++++++++++-------- 1 files changed, 33 insertions(+), 8 deletions(-) diff --git a/oying-common/src/main/java/com/oying/utils/RedisUtils.java b/oying-common/src/main/java/com/oying/utils/RedisUtils.java index bf5b094..361c573 100644 --- a/oying-common/src/main/java/com/oying/utils/RedisUtils.java +++ b/oying-common/src/main/java/com/oying/utils/RedisUtils.java @@ -21,14 +21,15 @@ * @author Z */ @Component -@SuppressWarnings({"unchecked","all"}) +@SuppressWarnings({"unchecked", "all"}) public class RedisUtils { private static final Logger log = LoggerFactory.getLogger(RedisUtils.class); @Value("${jwt.generate-order-sn}") private String generateOrderSn; @Value("${wx.enabled}") private Boolean wxEnabled; - private static final String T = "-T-"; + private static final String T = "T-"; + private static final String OY = "OY-"; private RedisTemplate<Object, Object> redisTemplate; public RedisUtils(RedisTemplate<Object, Object> redisTemplate) { @@ -46,7 +47,7 @@ public String generateOrderSn(Integer i) { StringBuilder sb = new StringBuilder(); String date = new SimpleDateFormat("yyyyMMdd").format(new Date()); - String key = generateOrderSn + date; + String key = generateOrderSn + i + date; Long increment = increment(key); sb.append(date); sb.append(String.format("%04d", i)); @@ -58,7 +59,7 @@ } if (wxEnabled) { // 生产环境 - return sb.toString(); + return OY + sb.toString(); } else { // 测试环境 return T + sb.toString(); @@ -227,9 +228,10 @@ /** * 批量模糊删除key + * * @param pattern */ - public void scanDel(String pattern){ + public void scanDel(String pattern) { ScanOptions options = ScanOptions.scanOptions().match(pattern).build(); try (Cursor<byte[]> cursor = redisTemplate.executeWithStickyConnection( (RedisCallback<Cursor<byte[]>>) connection -> (Cursor<byte[]>) new ConvertingCursor<>( @@ -273,7 +275,7 @@ /** * 普通缓存获取 * - * @param key 键 + * @param key 键 * @param clazz 列表中元素的类型 * @return 值 */ @@ -300,7 +302,7 @@ * @return 值 */ public String getStr(String key) { - if(StrUtil.isBlank(key)){ + if (StrUtil.isBlank(key)) { return null; } Object value = redisTemplate.opsForValue().get(key); @@ -320,7 +322,7 @@ public List<Object> multiGet(List<String> keys) { List list = redisTemplate.opsForValue().multiGet(Sets.newHashSet(keys)); List resultList = Lists.newArrayList(); - Optional.ofNullable(list).ifPresent(e-> list.forEach(ele-> Optional.ofNullable(ele).ifPresent(resultList::add))); + Optional.ofNullable(list).ifPresent(e -> list.forEach(ele -> Optional.ofNullable(ele).ifPresent(resultList::add))); return resultList; } @@ -390,6 +392,27 @@ } } + /** + * 分布式ID生成器 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期,注意:这里将会替换原有的时间 + * @return true成功 false 失败 + */ + public boolean setIfAbsent(String key, Object value, long time) { + try { + if (time > 0) { + Boolean result = redisTemplate.opsForValue().setIfAbsent(key, value, time, TimeUnit.SECONDS); + return result; + } else { + return false; + } + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } // ================================Map================================= /** @@ -816,6 +839,7 @@ /** * 递增 + * * @param key * @return */ @@ -825,6 +849,7 @@ /** * 递减 + * * @param key * @return */ -- Gitblit v1.9.3