zxfqwert пре 4 месеци
родитељ
комит
486057c266

+ 16 - 0
suishenbang-admin/src/main/resources/application-dev.yml

@@ -67,6 +67,22 @@ user:
 
 # Spring配置
 spring:
+  redis:
+    host: 127.0.0.1
+    port: 6379
+    password: 'Ssbtest#1207'
+    # 连接超时时间
+    timeout: 10s
+    lettuce:
+      pool:
+        # 连接池中的最小空闲连接
+        min-idle: 1
+        # 连接池中的最大空闲连接
+        max-idle: 8
+        # 连接池的最大数据库连接数
+        max-active: 20
+        # #连接池最大阻塞等待时间(使用负值表示没有限制)
+        max-wait: -1ms
   # 模板引擎
   thymeleaf:
     mode: HTML

+ 5 - 0
suishenbang-wxportal/suishenbang-wxportal-common/pom.xml

@@ -47,5 +47,10 @@
             <artifactId>itext-asian</artifactId>
             <version>5.2.0</version>
         </dependency>
+        <dependency>
+            <groupId>redis.clients</groupId>
+            <artifactId>jedis</artifactId>
+            <version>5.0.2</version>
+        </dependency>
     </dependencies>
 </project>

+ 13 - 0
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/domain/RedisDbParam.java

@@ -0,0 +1,13 @@
+package com.dgtly.wxportal.domain;
+
+
+import lombok.Data;
+
+@Data
+public class RedisDbParam {
+    // redis库数组
+    private Integer[]  redisDb;
+    // 具体key值
+    private String keyName;
+
+}

+ 49 - 0
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/utils/JedisPoolUtil.java

@@ -0,0 +1,49 @@
+package com.dgtly.wxportal.utils;
+
+import org.springframework.stereotype.Service;
+import redis.clients.jedis.Jedis;
+import redis.clients.jedis.JedisPool;
+import redis.clients.jedis.JedisPoolConfig;
+
+
+@Service
+public class JedisPoolUtil {
+    private static volatile JedisPool jedisPool = null;
+    private static final String HOST="127.0.0.1" ;
+    private static final int PORT = 6379;
+    private static final String PASSWORD = "Ssbtest#1207";
+    private static final int TIMEOUT = 2000;
+    private JedisPoolUtil() {}
+    public static JedisPool getPool() {
+        if (jedisPool == null) {
+            synchronized (JedisPoolUtil.class) {
+                if (jedisPool == null) {
+                    JedisPoolConfig config = new JedisPoolConfig();
+                    config.setMaxTotal(200);       // 最大连接数
+                    config.setMaxIdle(50);         // 最大空闲连接
+                    config.setMinIdle(10);         // 最小空闲连接
+                    config.setTestOnBorrow(true);  // 借出连接时校验
+                    config.setTestOnReturn(true);  // 归还连接时校验
+                    config.setMaxWaitMillis(1000); // 等待连接超时时间(ms)
+
+                    jedisPool = new JedisPool(
+                            config, HOST, PORT, TIMEOUT, PASSWORD
+                    );
+                }
+            }
+        }
+        return jedisPool;
+    }
+
+    public static Jedis getResource() {
+        return getPool().getResource();
+    }
+
+    public static void close(Jedis jedis) {
+        if (jedis != null) {
+            jedis.close();
+        }
+    }
+}
+
+

+ 37 - 0
suishenbang-wxportal/suishenbang-wxportal-manager/src/main/java/com/dgtly/wxportal/controller/WxMagnetController.java

@@ -10,18 +10,24 @@ import com.dgtly.common.core.domain.Ztree;
 import com.dgtly.common.core.page.TableDataInfo;
 import com.dgtly.common.enums.BusinessType;
 import com.dgtly.common.exception.BusinessException;
+import com.dgtly.common.utils.StringUtils;
 import com.dgtly.framework.util.ShiroUtils;
 import com.dgtly.system.domain.SysRole;
 import com.dgtly.system.domain.SysUser;
 import com.dgtly.wxportal.domain.HomeIconConfig;
+import com.dgtly.wxportal.domain.RedisDbParam;
 import com.dgtly.wxportal.domain.WxMagnet;
 import com.dgtly.wxportal.service.IWxMagnetService;
+import com.dgtly.wxportal.utils.JedisPoolUtil;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import redis.clients.jedis.Jedis;
 
 import java.io.IOException;
 import java.util.List;
@@ -37,6 +43,8 @@ import java.util.Map;
 @RequestMapping("/wxportal/magnet")
 public class WxMagnetController extends BaseController
 {
+    private static final Logger log = LoggerFactory.getLogger(WxMagnetController.class);
+
     private String prefix = "wxportal/magnet";
 
     @Autowired
@@ -198,6 +206,35 @@ public class WxMagnetController extends BaseController
        return  AjaxResult.success("保存成功!");
     }
 
+
+
+    @Log(title = "redis缓存清除", businessType = BusinessType.UPDATE)
+    @PostMapping("/cleanRedisByDb")
+    @ResponseBody
+    public AjaxResult cleanRedisByDb(@RequestBody RedisDbParam redisDbParam)
+    {
+
+
+        if(redisDbParam.getRedisDb().length==0){
+            return AjaxResult.error(201,"redis库未指定!");
+        }
+        for (int db : redisDbParam.getRedisDb()) {
+            try (Jedis jedis = JedisPoolUtil.getResource()) {
+                jedis.select(db);
+                if(StringUtils.isNotBlank(redisDbParam.getKeyName())){
+                    jedis.del(redisDbParam.getKeyName());
+                    log.info("清空库" + db+"下的"+redisDbParam.getKeyName());
+                }
+                else{
+                    jedis.flushDB();
+                    log.info("清空库" + db);
+                }
+            }
+        }
+        return AjaxResult.success("200","操作成功!");
+    }
+
+
     @PostMapping("/getHomeIconInfo")
     @ResponseBody
     public AjaxResult getHoemIconCongif() throws IOException {