keys = RedisUtils.keys(Constants.SYS_DICT_KEY + "*");
+ RedisUtils.deleteObject(keys);
}
/**
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java
index 676de013a..7246b0af6 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java
@@ -4,6 +4,9 @@ import cn.hutool.core.util.ArrayUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ruoyi.common.utils.spring.SpringUtils;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
import java.io.IOException;
import java.util.ArrayList;
@@ -15,20 +18,10 @@ import java.util.Map;
*
* @author 芋道源码
*/
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class JsonUtils {
- private static ObjectMapper objectMapper = new ObjectMapper();
-
- /**
- * 初始化 objectMapper 属性
- *
- * 通过这样的方式,使用 Spring 创建的 ObjectMapper Bean
- *
- * @param objectMapper ObjectMapper 对象
- */
- public static void init(ObjectMapper objectMapper) {
- JsonUtils.objectMapper = objectMapper;
- }
+ private static ObjectMapper objectMapper = SpringUtils.getBean(ObjectMapper.class);
public static String toJsonString(Object object) {
if (StringUtils.isNull(object)) {
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java
index 27125ab8f..a0b4d3c65 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java
@@ -57,15 +57,12 @@ public class PageUtils {
Integer pageSize = ServletUtils.getParameterToInt(PAGE_SIZE, DEFAULT_PAGE_SIZE);
String orderByColumn = ServletUtils.getParameter(ORDER_BY_COLUMN);
String isAsc = ServletUtils.getParameter(IS_ASC);
- PagePlus page = new PagePlus<>(pageNum, pageSize);
- if (StringUtils.isNotBlank(orderByColumn)) {
- String orderBy = SqlUtil.escapeOrderBySql(orderByColumn);
- if ("asc".equals(isAsc)) {
- page.addOrder(OrderItem.asc(orderBy));
- } else if ("desc".equals(isAsc)) {
- page.addOrder(OrderItem.desc(orderBy));
- }
+ if (pageNum <= 0) {
+ pageNum = DEFAULT_PAGE_NUM;
}
+ PagePlus page = new PagePlus<>(pageNum, pageSize);
+ OrderItem orderItem = buildOrderItem(orderByColumn, isAsc);
+ page.addOrder(orderItem);
return page;
}
@@ -83,23 +80,32 @@ public class PageUtils {
Integer pageSize = ServletUtils.getParameterToInt(PAGE_SIZE, DEFAULT_PAGE_SIZE);
String orderByColumn = ServletUtils.getParameter(ORDER_BY_COLUMN, defaultOrderByColumn);
String isAsc = ServletUtils.getParameter(IS_ASC, defaultIsAsc);
- // 兼容前端排序类型
- if ("ascending".equals(isAsc)) {
- isAsc = "asc";
- } else if ("descending".equals(isAsc)) {
- isAsc = "desc";
- }
+ if (pageNum <= 0) {
+ pageNum = DEFAULT_PAGE_NUM;
+ }
Page page = new Page<>(pageNum, pageSize);
+ OrderItem orderItem = buildOrderItem(orderByColumn, isAsc);
+ page.addOrder(orderItem);
+ return page;
+ }
+
+ private static OrderItem buildOrderItem(String orderByColumn, String isAsc) {
+ // 兼容前端排序类型
+ if ("ascending".equals(isAsc)) {
+ isAsc = "asc";
+ } else if ("descending".equals(isAsc)) {
+ isAsc = "desc";
+ }
if (StringUtils.isNotBlank(orderByColumn)) {
String orderBy = SqlUtil.escapeOrderBySql(orderByColumn);
orderBy = StringUtils.toUnderScoreCase(orderBy);
if ("asc".equals(isAsc)) {
- page.addOrder(OrderItem.asc(orderBy));
+ return OrderItem.asc(orderBy);
} else if ("desc".equals(isAsc)) {
- page.addOrder(OrderItem.desc(orderBy));
+ return OrderItem.desc(orderBy);
}
}
- return page;
+ return null;
}
public static TableDataInfo buildDataInfo(PagePlus page) {
@@ -129,4 +135,11 @@ public class PageUtils {
return rspData;
}
+ public static TableDataInfo buildDataInfo() {
+ TableDataInfo rspData = new TableDataInfo<>();
+ rspData.setCode(HttpStatus.HTTP_OK);
+ rspData.setMsg("查询成功");
+ return rspData;
+ }
+
}
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
new file mode 100644
index 000000000..5fcfb9dee
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/RedisUtils.java
@@ -0,0 +1,258 @@
+package com.ruoyi.common.utils;
+
+import com.google.common.collect.Lists;
+import com.ruoyi.common.utils.spring.SpringUtils;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.redisson.api.*;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Consumer;
+
+/**
+ * redis 工具类
+ *
+ * @author Lion Li
+ * @version 3.1.0 新增
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+@SuppressWarnings(value = {"unchecked", "rawtypes"})
+public class RedisUtils {
+
+ private static RedissonClient client = SpringUtils.getBean(RedissonClient.class);
+
+ /**
+ * 发布通道消息
+ *
+ * @param channelKey 通道key
+ * @param msg 发送数据
+ * @param consumer 自定义处理
+ */
+ public static void publish(String channelKey, T msg, Consumer consumer) {
+ RTopic topic = client.getTopic(channelKey);
+ topic.publish(msg);
+ consumer.accept(msg);
+ }
+
+ public static void publish(String channelKey, T msg) {
+ RTopic topic = client.getTopic(channelKey);
+ topic.publish(msg);
+ }
+
+ /**
+ * 订阅通道接收消息
+ *
+ * @param channelKey 通道key
+ * @param clazz 消息类型
+ * @param consumer 自定义处理
+ */
+ public static void subscribe(String channelKey, Class clazz, Consumer consumer) {
+ RTopic topic = client.getTopic(channelKey);
+ topic.addListener(clazz, (channel, msg) -> consumer.accept(msg));
+ }
+
+ /**
+ * 缓存基本的对象,Integer、String、实体类等
+ *
+ * @param key 缓存的键值
+ * @param value 缓存的值
+ */
+ public static void setCacheObject(final String key, final T value) {
+ client.getBucket(key).set(value);
+ }
+
+ /**
+ * 缓存基本的对象,Integer、String、实体类等
+ *
+ * @param key 缓存的键值
+ * @param value 缓存的值
+ * @param timeout 时间
+ * @param timeUnit 时间颗粒度
+ */
+ public static void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit) {
+ RBucket result = client.getBucket(key);
+ result.set(value);
+ result.expire(timeout, timeUnit);
+ }
+
+ /**
+ * 设置有效时间
+ *
+ * @param key Redis键
+ * @param timeout 超时时间
+ * @return true=设置成功;false=设置失败
+ */
+ public static boolean expire(final String key, final long timeout) {
+ return expire(key, timeout, TimeUnit.SECONDS);
+ }
+
+ /**
+ * 设置有效时间
+ *
+ * @param key Redis键
+ * @param timeout 超时时间
+ * @param unit 时间单位
+ * @return true=设置成功;false=设置失败
+ */
+ public static boolean expire(final String key, final long timeout, final TimeUnit unit) {
+ RBucket rBucket = client.getBucket(key);
+ return rBucket.expire(timeout, unit);
+ }
+
+ /**
+ * 获得缓存的基本对象。
+ *
+ * @param key 缓存键值
+ * @return 缓存键值对应的数据
+ */
+ public static T getCacheObject(final String key) {
+ RBucket rBucket = client.getBucket(key);
+ return rBucket.get();
+ }
+
+ /**
+ * 删除单个对象
+ *
+ * @param key
+ */
+ public static boolean deleteObject(final String key) {
+ return client.getBucket(key).delete();
+ }
+
+ /* */
+
+ /**
+ * 删除集合对象
+ *
+ * @param collection 多个对象
+ * @return
+ */
+ public static void deleteObject(final Collection collection) {
+ RBatch batch = client.createBatch();
+ collection.forEach(t -> {
+ batch.getBucket(t.toString()).deleteAsync();
+ });
+ batch.execute();
+ }
+
+ /**
+ * 缓存List数据
+ *
+ * @param key 缓存的键值
+ * @param dataList 待缓存的List数据
+ * @return 缓存的对象
+ */
+ public static boolean setCacheList(final String key, final List dataList) {
+ RList rList = client.getList(key);
+ return rList.addAll(dataList);
+ }
+
+ /**
+ * 获得缓存的list对象
+ *
+ * @param key 缓存的键值
+ * @return 缓存键值对应的数据
+ */
+ public static List getCacheList(final String key) {
+ RList rList = client.getList(key);
+ return rList.readAll();
+ }
+
+ /**
+ * 缓存Set
+ *
+ * @param key 缓存键值
+ * @param dataSet 缓存的数据
+ * @return 缓存数据的对象
+ */
+ public static boolean setCacheSet(final String key, final Set dataSet) {
+ RSet rSet = client.getSet(key);
+ return rSet.addAll(dataSet);
+ }
+
+ /**
+ * 获得缓存的set
+ *
+ * @param key
+ * @return
+ */
+ public static Set getCacheSet(final String key) {
+ RSet