Kaynağa Gözat

fix: 用户注册接口-异常事务回滚失效;需要把注解放到controller层

wuweihao 4 yıl önce
ebeveyn
işleme
a880c36ebf

+ 8 - 0
gis_admin/src/main/java/com/gis/admin/controller/SysResourceController.java

@@ -48,4 +48,12 @@ public class SysResourceController  {
         return entityService.refreshRedisResource();
     }
 
+
+    @WebControllerLog(description = "资源管理-测试缓存", addDb = true)
+    @ApiOperation(value = "测试缓存", notes = "更新资源表,需要刷新缓存")
+    @GetMapping("testCatch")
+    public Result testCatch() {
+        return entityService.testCatch();
+    }
+
 }

+ 2 - 2
gis_admin/src/main/java/com/gis/admin/entity/po/SysUserEntity.java

@@ -40,8 +40,8 @@ public class SysUserEntity extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "单位")
     private String unit;
 
-//    @ApiModelProperty(value = "地址")
-//    private String address;
+    @ApiModelProperty(value = "地址")
+    private String address;
 
 //    @ApiModelProperty(value = "超级管理员,1:是, 0:否")
 //    private Integer sysManager;

+ 1 - 0
gis_admin/src/main/java/com/gis/admin/service/SysResourceService.java

@@ -24,4 +24,5 @@ public interface SysResourceService extends IBaseService<SysResourceEntity, Long
 
     List<SysResourceTree> getTreeAllPermissionsByRoleId(Long roleId);
 
+    Result testCatch();
 }

+ 21 - 6
gis_admin/src/main/java/com/gis/admin/service/impl/SysResourceServiceImpl.java

@@ -33,7 +33,7 @@ public class SysResourceServiceImpl extends IBaseServiceImpl<SysResourceEntity,
     @Autowired
     SysRoleService sysRoleService;
 
-    static String REDIS_RESOURCE = "resource";
+    static String REDIS_RESOURCE_KEY = "army_xinjiang_resource";
 
 
     @Override
@@ -99,6 +99,14 @@ public class SysResourceServiceImpl extends IBaseServiceImpl<SysResourceEntity,
         return new SysResourceTreeUtil(allPer).buildTree();
     }
 
+    @Override
+    public Result testCatch() {
+        List<SysResourceEntity> cacheAll2 = findCacheAll2();
+
+        SysResourceTreeUtil tree = new SysResourceTreeUtil(cacheAll2);
+        return Result.success(tree.buildTree());
+    }
+
     /**
      * 处理authority 是否有权限
      * @param perIds 有权限的id集合
@@ -124,8 +132,7 @@ public class SysResourceServiceImpl extends IBaseServiceImpl<SysResourceEntity,
 
     @Override
     public Result refreshRedisResource() {
-        String resourceKey = configConstant.redisPrefix + REDIS_RESOURCE;
-        redisUtil.del(resourceKey);
+        redisUtil.del(REDIS_RESOURCE_KEY);
         return Result.success();
     }
 
@@ -134,17 +141,25 @@ public class SysResourceServiceImpl extends IBaseServiceImpl<SysResourceEntity,
     /**
      * 获取db所有资源, authority默认true
      * @return
+     *
+     * 2021-07-16 list放到redis后, id会为null
      */
 
     private List<SysResourceEntity> findCacheAll(){
-        String resourceKey = configConstant.redisPrefix + REDIS_RESOURCE;
-        List all = (List) redisUtil.get(resourceKey);
+        return this.findAll();
+
+    }
+
+
+    private List<SysResourceEntity> findCacheAll2(){
+        List<SysResourceEntity> all = new ArrayList<>();
+        all = (List<SysResourceEntity> ) redisUtil.get(REDIS_RESOURCE_KEY);
 
         if (all == null) {
             log.info("从数据库获取");
             all = this.findAll();
             // 21600-> 6h
-            redisUtil.set(resourceKey, all, 21600);
+            redisUtil.set(REDIS_RESOURCE_KEY, all, 21600);
         }
         log.info("走缓存");
         return all;

+ 2 - 2
gis_admin/src/main/java/com/gis/admin/tree/SysResourceTreeUtil.java

@@ -47,7 +47,7 @@ public class SysResourceTreeUtil {
             Long id = node.getParentId();
             if (id == null) {//通过循环一级节点 就可以通过递归获取二级以下节点
                 resultNodes.add(node);//添加一级节点
-//                node.setLevel(1);
+                node.setLevel(1);
                 build(node, node.getLevel());//递归获取二级、三级、。。。节点
             }
         }
@@ -65,7 +65,7 @@ public class SysResourceTreeUtil {
             node.setChildren(children);
 //        	level++;
             for (SysResourceTree child : children) {//将子节点遍历加入返回值中
-//        		child.setLevel(level);
+        		child.setLevel(level);
                 build(child, child.getLevel());
             }
         }

+ 1 - 0
gis_common/pom.xml

@@ -37,6 +37,7 @@
             <artifactId>spring-boot-starter-data-redis</artifactId>
         </dependency>
 
+
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-validation</artifactId>

+ 35 - 0
gis_common/src/main/java/com/gis/common/base/exception/BaseRuntimeException.java

@@ -0,0 +1,35 @@
+package com.gis.common.base.exception;
+
+public class BaseRuntimeException extends RuntimeException{
+
+    private static final long serialVersionUID = -1518945670203783450L;
+    private Integer code;
+    private String msg;
+
+    public BaseRuntimeException(String msg){
+        super(msg);
+        this.msg = msg;
+    }
+
+    public BaseRuntimeException(Integer code, String msg){
+        super(msg);
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+}

+ 57 - 0
gis_common/src/main/java/com/gis/common/config/MyRedisConfig.java

@@ -0,0 +1,57 @@
+package com.gis.common.config;
+
+import com.alibaba.fastjson.support.spring.FastJsonRedisSerializer;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+import java.net.UnknownHostException;
+
+/**
+ * Created by owen on 2021/7/16 0016 17:21
+ *
+ * redis 全局序列化
+ * redis管理界面可以看到参数
+ * 对象序列化有字段泛型字段值不丢失
+ */
+
+@Configuration
+public class MyRedisConfig {
+
+
+
+        @Bean
+        public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
+            RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
+            redisTemplate.setConnectionFactory(connectionFactory);
+
+            // 使用Jackson2JsonRedisSerialize替换默认序列化
+            Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
+
+            ObjectMapper objectMapper = new ObjectMapper();
+            objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+            objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+
+            jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
+
+            // 设置key和value的序列化规则
+            redisTemplate.setKeySerializer(new StringRedisSerializer());
+//            redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
+            redisTemplate.setHashKeySerializer(new StringRedisSerializer());
+            redisTemplate.setHashValueSerializer(new StringRedisSerializer());
+            redisTemplate.setValueSerializer(new FastJsonRedisSerializer<>(Object.class));
+
+            redisTemplate.afterPropertiesSet();
+
+            return redisTemplate;
+
+        }
+
+
+}