From c3bb4d2a6181e27b58cca56def0f392d6df7d7a1 Mon Sep 17 00:00:00 2001
From: zhujie <693337446@qq.com>
Date: 星期五, 26 十一月 2021 13:01:00 +0800
Subject: [PATCH] add 新增导入支持开启Validator数据验证,支持开启导入异常行继续读取,支持返回导入回执

---
 ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 56 insertions(+), 1 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java
index 5fcfb9d..89206c9 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java
@@ -26,6 +26,32 @@
     private static RedissonClient client = SpringUtils.getBean(RedissonClient.class);
 
     /**
+     * 闄愭祦
+     *
+     * @param key          闄愭祦key
+     * @param rateType     闄愭祦绫诲瀷
+     * @param rate         閫熺巼
+     * @param rateInterval 閫熺巼闂撮殧
+     * @return -1 琛ㄧず澶辫触
+     */
+    public static long rateLimiter(String key, RateType rateType, int rate, int rateInterval) {
+        RRateLimiter rateLimiter = client.getRateLimiter(key);
+        rateLimiter.trySetRate(rateType, rate, rateInterval, RateIntervalUnit.SECONDS);
+        if (rateLimiter.tryAcquire()) {
+            return rateLimiter.availablePermits();
+        } else {
+            return -1L;
+        }
+    }
+
+    /**
+     * 鑾峰彇瀹炰緥id
+     */
+    public static String getClientId() {
+        return client.getId();
+    }
+
+    /**
      * 鍙戝竷閫氶亾娑堟伅
      *
      * @param channelKey 閫氶亾key
@@ -62,7 +88,24 @@
      * @param value 缂撳瓨鐨勫��
      */
     public static <T> void setCacheObject(final String key, final T value) {
-        client.getBucket(key).set(value);
+        setCacheObject(key, value, false);
+    }
+
+    /**
+     * 缂撳瓨鍩烘湰鐨勫璞★紝淇濈暀褰撳墠瀵硅薄 TTL 鏈夋晥鏈�
+     *
+     * @param key   缂撳瓨鐨勯敭鍊�
+     * @param value 缂撳瓨鐨勫��
+     * @param isSaveTtl 鏄惁淇濈暀TTL鏈夋晥鏈�(渚嬪: set涔嬪墠ttl鍓╀綑90 set涔嬪悗杩樻槸涓�90)
+     * @since Redis 6.0.0 浠ヤ笂鏈夋晥
+     */
+    public static <T> void setCacheObject(final String key, final T value, final boolean isSaveTtl) {
+        RBucket<Object> bucket = client.getBucket(key);
+        if (isSaveTtl) {
+            bucket.setAndKeepTTL(value);
+        } else {
+            bucket.set(value);
+        }
     }
 
     /**
@@ -234,6 +277,18 @@
     }
 
     /**
+     * 鍒犻櫎Hash涓殑鏁版嵁
+     *
+     * @param key  Redis閿�
+     * @param hKey Hash閿�
+     * @return Hash涓殑瀵硅薄
+     */
+    public static <T> T delCacheMapValue(final String key, final String hKey) {
+        RMap<String, T> rMap = client.getMap(key);
+        return rMap.remove(hKey);
+    }
+
+    /**
      * 鑾峰彇澶氫釜Hash涓殑鏁版嵁
      *
      * @param key   Redis閿�

--
Gitblit v1.9.3