From 548bead175143ab846aaf0816f2ff1129050e94a Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Mon, 21 Jul 2025 16:20:40 +0800
Subject: [PATCH] Merge branch 'master' into xin

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