From 4548c5045b3a5522ad14df7c939f0303c1e17587 Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Sat, 11 Oct 2025 19:07:29 +0800
Subject: [PATCH] 配送费

---
 oying-common/src/main/java/com/oying/utils/RedisUtils.java |   33 ++++++++++++++++++++++++++-------
 1 files changed, 26 insertions(+), 7 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 4467f18..eb0b2a4 100644
--- a/oying-common/src/main/java/com/oying/utils/RedisUtils.java
+++ b/oying-common/src/main/java/com/oying/utils/RedisUtils.java
@@ -24,10 +24,8 @@
 @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;
+    @Value("${oying.enabled}")
+    private Boolean oyingEnabled;
     private static final String T = "T-";
     private static final String OY = "OY-";
     private RedisTemplate<Object, Object> redisTemplate;
@@ -44,10 +42,10 @@
      * @param i
      * @return
      */
-    public String generateOrderSn(Integer i) {
+    public String generateSn(String generate, Integer i) {
         StringBuilder sb = new StringBuilder();
         String date = new SimpleDateFormat("yyyyMMdd").format(new Date());
-        String key = generateOrderSn + i + date;
+        String key = generate + i + date;
         Long increment = increment(key);
         sb.append(date);
         sb.append(String.format("%04d", i));
@@ -57,7 +55,7 @@
         } else {
             sb.append(incrementStr);
         }
-        if (wxEnabled) {
+        if (oyingEnabled) {
             // 生产环境
             return OY + sb.toString();
         } else {
@@ -392,6 +390,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=================================
 
     /**

--
Gitblit v1.9.3