فهرست منبع

fix: get redis list error

wuweihao 4 سال پیش
والد
کامیت
7e4db129b7

+ 12 - 7
gis_admin/src/main/java/com/gis/admin/service/impl/SysResourceServiceImpl.java

@@ -1,6 +1,5 @@
 package com.gis.admin.service.impl;
 
-import com.alibaba.fastjson.JSON;
 import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.common.base.service.impl.IBaseServiceImpl;
 import com.gis.common.util.Result;
@@ -16,7 +15,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
-import java.util.concurrent.TimeUnit;
 
 
 /**
@@ -101,6 +99,7 @@ public class SysResourceServiceImpl extends IBaseServiceImpl<SysResourceEntity,
 
     @Override
     public Result testCatch() {
+//        List<SysResourceEntity> cacheAll2 = findCacheAll2();
         List<SysResourceEntity> cacheAll2 = findCacheAll2();
 
         SysResourceTreeUtil tree = new SysResourceTreeUtil(cacheAll2);
@@ -146,20 +145,26 @@ public class SysResourceServiceImpl extends IBaseServiceImpl<SysResourceEntity,
      */
 
     private List<SysResourceEntity> findCacheAll(){
-        return this.findAll();
+        List all = redisUtil.getJsonList(REDIS_RESOURCE_KEY, SysResourceEntity.class);
+        if (all == null) {
+            log.info("从数据库获取");
+            all = this.findAll();
+            // 21600-> 6h
+            redisUtil.setObjectToJson(REDIS_RESOURCE_KEY, all, 21600);
+        }
+        log.info("走缓存");
+        return all;
 
     }
 
 
     private List<SysResourceEntity> findCacheAll2(){
-        List<SysResourceEntity> all = new ArrayList<>();
-        all = (List<SysResourceEntity> ) redisUtil.get(REDIS_RESOURCE_KEY);
-
+        List all = redisUtil.getJsonList(REDIS_RESOURCE_KEY, SysResourceEntity.class);
         if (all == null) {
             log.info("从数据库获取");
             all = this.findAll();
             // 21600-> 6h
-            redisUtil.set(REDIS_RESOURCE_KEY, all, 21600);
+            redisUtil.setObjectToJson(REDIS_RESOURCE_KEY, all, 21600);
         }
         log.info("走缓存");
         return all;

+ 43 - 0
gis_common/src/main/java/com/gis/common/util/RedisUtil.java

@@ -1,11 +1,14 @@
 package com.gis.common.util;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import java.util.List;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -85,4 +88,44 @@ public class RedisUtil {
     public Object get(String key) {
         return key == null ? null : redisTemplate.opsForValue().get(key);
     }
+
+
+    /**
+     * list to JSON
+     * @param key
+     * @param value
+     * @param time
+     * @return
+     */
+    public boolean setObjectToJson(String key, Object value, long time) {
+        try {
+            redisTemplate.opsForValue().set(key, JSON.toJSONString(value), time, TimeUnit.SECONDS);
+            return true;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+
+
+    /**
+     * json to list
+     * @param key
+     * @param classType
+     * @return
+     */
+    public List getJsonList(String key, Class classType) {
+        try {
+            String o = (String)get(key);
+            if (o == null) {
+                return null;
+            }
+            JSONArray objects = JSONArray.parseArray(o);
+            List list = objects.toJavaList(classType);
+            return list;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
 }

+ 57 - 0
gis_scene/pom.xml

@@ -0,0 +1,57 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <parent>
+        <artifactId>army_xinjiang</artifactId>
+        <groupId>com.gis</groupId>
+        <version>1.0.0</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>gis_scene</artifactId>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.gis</groupId>
+            <artifactId>gis_common</artifactId>
+        </dependency>
+
+
+        <!-- 针对proto包 转换格式用-->
+        <dependency>
+            <groupId>com.google.protobuf</groupId>
+            <artifactId>protobuf-java</artifactId>
+            <version>3.2.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.googlecode.protobuf-java-format</groupId>
+            <artifactId>protobuf-java-format</artifactId>
+            <version>1.4</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-mapper-asl</artifactId>
+            <version>1.9.11</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-smile</artifactId>
+            <version>1.9.12</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.belerweb</groupId>
+            <artifactId>pinyin4j</artifactId>
+            <version>2.5.1</version>
+        </dependency>
+
+    </dependencies>
+
+
+
+
+
+</project>