Ver código fonte

公共模块拓展

xucaiqin 2 anos atrás
pai
commit
f030934382

+ 4 - 0
iot-framework/iot-common/pom.xml

@@ -60,6 +60,10 @@
             <artifactId>jakarta.servlet-api</artifactId>
             <scope>provided</scope> <!-- 设置为 provided,只有工具类需要使用到 -->
         </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.github.pagehelper</groupId>
             <artifactId>pagehelper</artifactId>

+ 13 - 0
iot-framework/iot-common/src/main/java/com/middle/platform/common/core/KeyValue.java

@@ -0,0 +1,13 @@
+package com.middle.platform.common.core;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class KeyValue<K, V> {
+    private K key;
+    private V value;
+}

+ 40 - 0
iot-framework/iot-common/src/main/java/com/middle/platform/common/modle/BasePara.java

@@ -0,0 +1,40 @@
+package com.middle.platform.common.modle;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author xucaiqin
+ * @date 2023-07-07 16:58:41
+ */
+@Getter
+@Setter
+public class BasePara implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1881051859375157819L;
+    /**
+     * 当前页
+     */
+    private int page;
+    /**
+     * 每页数量
+     */
+    private int pageSize;
+    /**
+     * 关键字搜索
+     */
+    private String keywords;
+
+    public BasePara() {
+        this(1, 10, "");
+    }
+
+    public BasePara(int page, int pageSize, String keywords) {
+        this.page = page;
+        this.pageSize = pageSize;
+        this.keywords = keywords;
+    }
+}

+ 26 - 0
iot-framework/iot-common/src/main/java/com/middle/platform/common/utils/CacheUtils.java

@@ -0,0 +1,26 @@
+package com.middle.platform.common.utils;
+
+
+import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.CacheLoader;
+import com.google.common.cache.LoadingCache;
+
+
+import java.time.Duration;
+import java.util.concurrent.Executors;
+
+/**
+ * Cache 工具类
+ *
+ */
+public class CacheUtils {
+
+    public static <K, V> LoadingCache<K, V> buildAsyncReloadingCache(Duration duration, CacheLoader<K, V> loader) {
+        return CacheBuilder.newBuilder()
+                // 只阻塞当前数据加载线程,其他线程返回旧值
+                .refreshAfterWrite(duration)
+                // 通过 asyncReloading 实现全异步加载,包括 refreshAfterWrite 被阻塞的加载线程
+                .build(CacheLoader.asyncReloading(loader, Executors.newCachedThreadPool()));
+    }
+
+}

+ 7 - 11
iot-framework/iot-common/src/main/java/com/middle/platform/common/utils/PageRes.java

@@ -40,7 +40,13 @@ public class PageRes<T> {
     public PageRes() {
         this.list = new ArrayList<>();
     }
-
+    public PageRes(int page, int pageSize) {
+        this.page = page;
+        this.pageSize = pageSize;
+        this.total = 0;
+        this.pages = 0;
+        this.list = new ArrayList<>();;
+    }
     public PageRes(int page, int pageSize, long total, int pages, List<T> list) {
         this.page = page;
         this.pageSize = pageSize;
@@ -74,16 +80,6 @@ public class PageRes<T> {
         this.list = pageInfo.getList();
     }
 
-    //todo
-    public static <T> PageRes<T> change(PageInfo<?> pagInfo, List<T> list) {
-        PageRes<T> tPageRes = new PageRes<>();
-        tPageRes.setPage(pagInfo.getPageNum());
-        tPageRes.setPageSize(pagInfo.getPageSize());
-        tPageRes.setTotal(pagInfo.getTotal());
-        tPageRes.setPages(pagInfo.getPages());
-        tPageRes.setList(list);
-        return tPageRes;
-    }
 
     /**
      * 构建返回数据