Browse Source

缓存加入

gaodm 5 years ago
parent
commit
96dc3dc599

+ 6 - 0
common-biz-client/pom.xml

@@ -51,6 +51,12 @@
             <scope>provided</scope>
         </dependency>
 
+        <dependency>
+            <groupId>com.alicp.jetcache</groupId>
+            <artifactId>jetcache-starter-redis</artifactId>
+            <version>2.5.16</version>
+        </dependency>
+
         <dependency>
             <groupId>com.diagbot</groupId>
             <artifactId>common</artifactId>

+ 19 - 0
common-biz-client/src/main/java/com/diagbot/config/JetcacheConfigurer.java

@@ -0,0 +1,19 @@
+package com.diagbot.config;
+
+
+import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation;
+import com.alicp.jetcache.anno.config.EnableMethodCache;
+import org.springframework.context.annotation.Configuration;
+
+
+/**
+ * @Description: Swagger配置类
+ * @author: gaodm
+ * @time: 2018/8/2 14:21
+ */
+@Configuration
+@EnableMethodCache(basePackages = "com.diagbot.facade")
+@EnableCreateCacheAnnotation
+public class JetcacheConfigurer {
+
+}

+ 15 - 0
common-biz-client/src/main/java/com/diagbot/dto/PermissionDTO.java

@@ -0,0 +1,15 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/2/17 19:55
+ */
+@Getter
+@Setter
+public class PermissionDTO {
+    private String test;
+}

+ 35 - 0
common-biz-client/src/main/java/com/diagbot/facade/PermissionFacade.java

@@ -0,0 +1,35 @@
+package com.diagbot.facade;
+
+import com.alicp.jetcache.anno.CacheInvalidate;
+import com.alicp.jetcache.anno.CacheType;
+import com.alicp.jetcache.anno.Cached;
+import com.diagbot.dto.PermissionDTO;
+import com.diagbot.vo.PermissionVO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/2/17 19:44
+ */
+@Component
+@Slf4j
+public class PermissionFacade {
+
+    @Cached(name = "permissionCache", cacheType = CacheType.LOCAL, key = "'_hc_' + #permissionVO.hospitalCode + '_st_' + #permissionVO.sysType")
+    public PermissionDTO getPermission(PermissionVO permissionVO) {
+        log.info("获取了缓存");
+        PermissionDTO permissionDTO = new PermissionDTO();
+        permissionDTO.setTest("yyyyyy");
+        return permissionDTO;
+    }
+
+    @CacheInvalidate(name = "permissionCache")
+    public Boolean delPermission() {
+        log.info("清理了缓存");
+        return true;
+    }
+
+
+}

+ 5 - 0
common-biz-client/src/main/java/com/diagbot/util/PermissionUtil.java

@@ -2,8 +2,10 @@ package com.diagbot.util;
 
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.facade.PermissionFacade;
 import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.JoinPoint;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.DefaultParameterNameDiscoverer;
 import org.springframework.core.ParameterNameDiscoverer;
 import org.springframework.web.context.request.RequestAttributes;
@@ -22,6 +24,9 @@ import java.util.Map;
  */
 @Slf4j
 public class PermissionUtil {
+    @Autowired
+    private PermissionFacade permissionFacade;
+
     /**
      * 功能可配置权限拦截
      *

+ 16 - 0
common-biz-client/src/main/java/com/diagbot/vo/PermissionVO.java

@@ -0,0 +1,16 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/2/17 19:46
+ */
+@Getter
+@Setter
+public class PermissionVO {
+    private String hospitalCode;
+    private Integer sysType;
+}

+ 8 - 0
config-server/src/main/resources/shared/application-dev.yml

@@ -83,6 +83,14 @@ crypt:
 permission:
   enable: true
 
+jetcache:
+  statIntervalMinutes: 15
+  areaInCacheName: false
+  local:
+    default:
+      type: linkedhashmap
+      keyConvertor: fastjson
+
 mrqc:
   server:
     address: http://192.168.2.234:8090

+ 8 - 0
config-server/src/main/resources/shared/application-local.yml

@@ -83,6 +83,14 @@ crypt:
 permission:
   enable: true
 
+jetcache:
+  statIntervalMinutes: 15
+  areaInCacheName: false
+  local:
+    default:
+      type: linkedhashmap
+      keyConvertor: fastjson
+
 mrqc:
   server:
     address: http://192.168.2.234:8090

+ 8 - 0
config-server/src/main/resources/shared/application-pre.yml

@@ -83,6 +83,14 @@ crypt:
 permission:
   enable: true
 
+jetcache:
+  statIntervalMinutes: 15
+  areaInCacheName: false
+  local:
+    default:
+      type: linkedhashmap
+      keyConvertor: fastjson
+
 mrqc:
   server:
     address: http://192.168.2.186:8090

+ 8 - 0
config-server/src/main/resources/shared/application-pro.yml

@@ -83,6 +83,14 @@ crypt:
 permission:
   enable: true
 
+jetcache:
+  statIntervalMinutes: 15
+  areaInCacheName: false
+  local:
+    default:
+      type: linkedhashmap
+      keyConvertor: fastjson
+
 mrqc:
   server:
     address: http://192.168.2.123:8090

+ 8 - 0
config-server/src/main/resources/shared/application-test.yml

@@ -83,6 +83,14 @@ crypt:
 permission:
   enable: true
 
+jetcache:
+  statIntervalMinutes: 15
+  areaInCacheName: false
+  local:
+    default:
+      type: linkedhashmap
+      keyConvertor: fastjson
+
 mrqc:
   server:
     address: http://192.168.2.241:8090

+ 45 - 0
data-service/src/main/java/com/diagbot/web/PermissionCacheController.java

@@ -0,0 +1,45 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.PermissionDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.PermissionFacade;
+import com.diagbot.vo.PermissionVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/2/17 20:26
+ */
+@RestController
+@RequestMapping("/permissionCache")
+@Api(value = "权限缓存相关API", tags = { "权限缓存相关API" })
+@SuppressWarnings("unchecked")
+public class PermissionCacheController {
+
+    @Autowired
+    private PermissionFacade permissionFacade;
+
+    @ApiOperation(value = "清空权限缓存[by:gaodm]",
+            notes = "")
+    @PostMapping("/delPermission")
+    @SysLogger("delPermission")
+    public RespDTO<Boolean> delPermission() {
+        return RespDTO.onSuc(permissionFacade.delPermission());
+    }
+
+    @ApiOperation(value = "获取权限缓存[by:gaodm]",
+            notes = "")
+    @PostMapping("/getPermission")
+    @SysLogger("getPermission")
+    public RespDTO<PermissionDTO> getPermission(@RequestBody PermissionVO permissionVO) {
+        return RespDTO.onSuc(permissionFacade.getPermission(permissionVO));
+    }
+}

+ 45 - 0
icss-service/src/main/java/com/diagbot/web/PermissionCacheController.java

@@ -0,0 +1,45 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.PermissionDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.PermissionFacade;
+import com.diagbot.vo.PermissionVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/2/17 20:26
+ */
+@RestController
+@RequestMapping("/permissionCache")
+@Api(value = "权限缓存相关API", tags = { "权限缓存相关API" })
+@SuppressWarnings("unchecked")
+public class PermissionCacheController {
+
+    @Autowired
+    private PermissionFacade permissionFacade;
+
+    @ApiOperation(value = "清空权限缓存[by:gaodm]",
+            notes = "")
+    @PostMapping("/delPermission")
+    @SysLogger("delPermission")
+    public RespDTO<Boolean> delPermission() {
+        return RespDTO.onSuc(permissionFacade.delPermission());
+    }
+
+    @ApiOperation(value = "获取权限缓存[by:gaodm]",
+            notes = "")
+    @PostMapping("/getPermission")
+    @SysLogger("getPermission")
+    public RespDTO<PermissionDTO> getPermission(@RequestBody PermissionVO permissionVO) {
+        return RespDTO.onSuc(permissionFacade.getPermission(permissionVO));
+    }
+}