完善代码

yun-zuoyi
nies 3 years ago
parent 3f8a2e1233
commit ac474431e5

@ -1,284 +1,284 @@
package cn.estsh.i3plus.core.apiservice.controller.base; //package cn.estsh.i3plus.core.apiservice.controller.base;
//
import cn.estsh.i3plus.platform.common.util.CommonConstWords; //import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords; //import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; //import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.impp.framework.boot.auth.AuthUtil; //import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; //import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ImppRedis; //import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.ResultBean; //import cn.estsh.impp.framework.boot.util.ResultBean;
import com.alibaba.fastjson.JSON; //import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; //import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api; //import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; //import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Strings; //import org.apache.logging.log4j.util.Strings;
import org.springframework.web.bind.annotation.*; //import org.springframework.web.bind.annotation.*;
//
import javax.annotation.Resource; //import javax.annotation.Resource;
import java.io.UnsupportedEncodingException; //import java.io.UnsupportedEncodingException;
import java.net.URLDecoder; //import java.net.URLDecoder;
import java.util.*; //import java.util.*;
//
/** ///**
* @Description :RedisRDM // * @Description :获取Redis信息展示类似RDM
* @Reference : // * @Reference :
* @Author : Castle // * @Author : Castle
* @CreateDate : 2022/2/24 9:55 // * @CreateDate : 2022/2/24 9:55
* @Modify: // * @Modify:
**/ // **/
@Slf4j //@Slf4j
@Api(tags = "redis信息") //@Api(tags = "redis信息")
@RestController //@RestController
@RequestMapping(PlatformConstWords.BASE_URL + "/redis") //@RequestMapping(PlatformConstWords.BASE_URL + "/redis")
public class RedisInfoController { //public class RedisInfoController {
/** // /**
* redis db0 resource // * redis db0 resource
*/ // */
@Resource(name = CommonConstWords.IMPP_REDIS_RES) // @Resource(name = CommonConstWords.IMPP_REDIS_RES)
private ImppRedis redisRes; // private ImppRedis redisRes;
//
/** // /**
* redis db1 sessionDb // * redis db1 sessionDb
* // *
* @return // * @return
*/ // */
@Resource(name = CommonConstWords.IMPP_REDIS_SESSION) // @Resource(name = CommonConstWords.IMPP_REDIS_SESSION)
private ImppRedis redisSession; // private ImppRedis redisSession;
//
//
/** // /**
* redis db2 coreDb // * redis db2 coreDb
*/ // */
@Resource(name = CommonConstWords.IMPP_REDIS_CORE) // @Resource(name = CommonConstWords.IMPP_REDIS_CORE)
private ImppRedis redisCore; // private ImppRedis redisCore;
//
/** // /**
* redis db3 redisWms // * redis db3 redisWms
*/ // */
@Resource(name = CommonConstWords.IMPP_REDIS_WMS) // @Resource(name = CommonConstWords.IMPP_REDIS_WMS)
private ImppRedis redisWms; // private ImppRedis redisWms;
//
/** // /**
* redis db4 redisMes // * redis db4 redisMes
*/ // */
@Resource(name = CommonConstWords.IMPP_REDIS_MES) // @Resource(name = CommonConstWords.IMPP_REDIS_MES)
private ImppRedis redisMes; // private ImppRedis redisMes;
/** // /**
* redis db5 redisMesPcn // * redis db5 redisMesPcn
*/ // */
@Resource(name = CommonConstWords.IMPP_REDIS_MES_PCN) // @Resource(name = CommonConstWords.IMPP_REDIS_MES_PCN)
private ImppRedis redisMesPcn; // private ImppRedis redisMesPcn;
//
/** // /**
* redis db6 redisMes // * redis db6 redisMes
*/ // */
@Resource(name = CommonConstWords.IMPP_REDIS_SWEB) // @Resource(name = CommonConstWords.IMPP_REDIS_SWEB)
private ImppRedis redisSweb; // private ImppRedis redisSweb;
//
/** // /**
* redis db7 redisAndon // * redis db7 redisAndon
*/ // */
@Resource(name = CommonConstWords.IMPP_REDIS_ANDON) // @Resource(name = CommonConstWords.IMPP_REDIS_ANDON)
private ImppRedis redisAndon; // private ImppRedis redisAndon;
//
/** // /**
* redis db8 lacDb // * redis db8 lacDb
*/ // */
//
@Resource(name = CommonConstWords.IMPP_REDIS_LAC) // @Resource(name = CommonConstWords.IMPP_REDIS_LAC)
private ImppRedis redisLac; // private ImppRedis redisLac;
//
/** // /**
* redis db9 blockDb; // * redis db9 blockDb;
*/ // */
//
@Resource(name = CommonConstWords.IMPP_REDIS_BLOCK) // @Resource(name = CommonConstWords.IMPP_REDIS_BLOCK)
private ImppRedis redisBlock; // private ImppRedis redisBlock;
//
/** // /**
* redis db10 ptl // * redis db10 ptl
*/ // */
//
@Resource(name = CommonConstWords.IMPP_REDIS_PTL) // @Resource(name = CommonConstWords.IMPP_REDIS_PTL)
private ImppRedis redisPtl; // private ImppRedis redisPtl;
//
/** // /**
* redis db11 ptl_pcn // * redis db11 ptl_pcn
*/ // */
//
@Resource(name = CommonConstWords.IMPP_REDIS_PTL_PCN) // @Resource(name = CommonConstWords.IMPP_REDIS_PTL_PCN)
private ImppRedis redisPtlPcn; // private ImppRedis redisPtlPcn;
//
/** // /**
* redis db12 mdm // * redis db12 mdm
*/ // */
//
@Resource(name = CommonConstWords.IMPP_REDIS_MDM) // @Resource(name = CommonConstWords.IMPP_REDIS_MDM)
private ImppRedis redisMdm; // private ImppRedis redisMdm;
/** // /**
* redis db13 eam // * redis db13 eam
*/ // */
//
@Resource(name = CommonConstWords.IMPP_REDIS_EAM) // @Resource(name = CommonConstWords.IMPP_REDIS_EAM)
private ImppRedis redisEam; // private ImppRedis redisEam;
//
/** // /**
* redis db15 qms // * redis db15 qms
*/ // */
//
@Resource(name = CommonConstWords.IMPP_REDIS_QMS) // @Resource(name = CommonConstWords.IMPP_REDIS_QMS)
private ImppRedis redisQms; // private ImppRedis redisQms;
//
//
@ApiOperation(value = "获取redis的keyspace信息", notes = "获取redis的keyspace信息") // @ApiOperation(value = "获取redis的keyspace信息", notes = "获取redis的keyspace信息")
@GetMapping("/info") // @GetMapping("/info")
public ResultBean getInfo() { // public ResultBean getInfo() {
Map<String, Integer> keys = new HashMap<>(16); // Map<String, Integer> keys = new HashMap<>(16);
//获取所有的数据库信息 // //获取所有的数据库信息
Properties infos = redisRes.getRedisConnectionInfo("keyspace"); // Properties infos = redisRes.getRedisConnectionInfo("keyspace");
//分解infos信息 // //分解infos信息
for (int i = 0; i < 16; i++) { // for (int i = 0; i < 16; i++) {
// info信息db0=keys=19510,expires=0,avg_ttl=0, // // info信息db0=keys=19510,expires=0,avg_ttl=0,
String key = "db" + i; // String key = "db" + i;
String info = infos.getProperty(key); // String info = infos.getProperty(key);
if (Strings.isNotBlank(info)) { // if (Strings.isNotBlank(info)) {
JSONObject infoJson = JSON.parseObject(("{" + info + "}").replaceAll("=", ":")); // JSONObject infoJson = JSON.parseObject(("{" + info + "}").replaceAll("=", ":"));
keys.put(key, Integer.parseInt(infoJson.get("keys").toString())); // keys.put(key, Integer.parseInt(infoJson.get("keys").toString()));
} else { // } else {
keys.put(key, 0); // keys.put(key, 0);
} // }
} // }
return ResultBean.success("查询成功").setResultMap(keys); // return ResultBean.success("查询成功").setResultMap(keys);
} // }
//
@ApiOperation(value = "获取指定数据库的所有keys", notes = "获取指定数据库的所有keys") // @ApiOperation(value = "获取指定数据库的所有keys", notes = "获取指定数据库的所有keys")
@GetMapping("/db/{id}") // @GetMapping("/db/{id}")
public ResultBean getDbKeys(@PathVariable("id") Integer id) { // public ResultBean getDbKeys(@PathVariable("id") Integer id) {
//根据id获取所有的key // //根据id获取所有的key
ImppRedis redis = getRedis(id); // ImppRedis redis = getRedis(id);
Set<String> keySet = redis.findKeySet("*"); // Set<String> keySet = redis.findKeySet("*");
return ResultBean.success("查询成功").setResultList(new ArrayList<>(keySet)); // return ResultBean.success("查询成功").setResultList(new ArrayList<>(keySet));
} // }
//
@ApiOperation(value = "根据key获取redis对应的值", notes = "根据key获取redis对应的值") // @ApiOperation(value = "根据key获取redis对应的值", notes = "根据key获取redis对应的值")
@GetMapping("/get/{id}/{key}") // @GetMapping("/get/{id}/{key}")
public ResultBean getValue(@PathVariable("id") Integer id, @PathVariable("key") String key) { // public ResultBean getValue(@PathVariable("id") Integer id, @PathVariable("key") String key) {
ImppRedis redis = getRedis(id); // ImppRedis redis = getRedis(id);
try { // try {
key = URLDecoder.decode(key, "UTF-8"); // key = URLDecoder.decode(key, "UTF-8");
} catch (UnsupportedEncodingException e) { // } catch (UnsupportedEncodingException e) {
throw ImppExceptionBuilder.newInstance().setErrorDetail("redisDb:{},key:{}解码失败", id, key).build(); // throw ImppExceptionBuilder.newInstance().setErrorDetail("redisDb:{},key:{}解码失败", id, key).build();
} // }
String keyType = redis.getKeyType(key).toLowerCase(); // String keyType = redis.getKeyType(key).toLowerCase();
Object result; // Object result;
switch (keyType) { // switch (keyType) {
case "string": // case "string":
result = redis.getObject(key); // result = redis.getObject(key);
break; // break;
case "hash": // case "hash":
result = redis.getHashMap(key); // result = redis.getHashMap(key);
break; // break;
case "list": // case "list":
result = redis.getList(key, 0, -1); // result = redis.getList(key, 0, -1);
break; // break;
case "set": // case "set":
result = redis.getSet(key); // result = redis.getSet(key);
break; // break;
case "zset": // case "zset":
result = null; // result = null;
break; // break;
default: // default:
throw ImppExceptionBuilder.newInstance().setErrorDetail("无效的key类型,请检查传入的key").build(); // throw ImppExceptionBuilder.newInstance().setErrorDetail("无效的key类型,请检查传入的key").build();
} // }
return ResultBean.success("查询成功").setResultObject(result); // return ResultBean.success("查询成功").setResultObject(result);
} // }
//
@ApiOperation(value = "删除对应key的值", notes = "删除对应key的值") // @ApiOperation(value = "删除对应key的值", notes = "删除对应key的值")
@DeleteMapping("/del/{id}/{key}") // @DeleteMapping("/del/{id}/{key}")
public ResultBean deleteKey(@PathVariable("id") Integer id, @PathVariable("key") String key) { // public ResultBean deleteKey(@PathVariable("id") Integer id, @PathVariable("key") String key) {
ImppRedis redis = getRedis(id); // ImppRedis redis = getRedis(id);
try { // try {
key = URLDecoder.decode(key, "UTF-8"); // key = URLDecoder.decode(key, "UTF-8");
} catch (UnsupportedEncodingException e) { // } catch (UnsupportedEncodingException e) {
throw ImppExceptionBuilder.newInstance().setErrorDetail("redisDb:{},key:{}解码失败", id, key).build(); // throw ImppExceptionBuilder.newInstance().setErrorDetail("redisDb:{},key:{}解码失败", id, key).build();
} // }
String keyType = redis.getKeyType(key).toLowerCase(); // String keyType = redis.getKeyType(key).toLowerCase();
switch (keyType) { // switch (keyType) {
case "string": // case "string":
redis.deleteKey(key); // redis.deleteKey(key);
break; // break;
case "hash": // case "hash":
redis.deleteHash(key); // redis.deleteHash(key);
break; // break;
case "list": // case "list":
redis.removeList(key,0,null); // redis.removeList(key,0,null);
break; // break;
default: // default:
throw ImppExceptionBuilder.newInstance().setErrorDetail("暂不支持的key类型").build(); // throw ImppExceptionBuilder.newInstance().setErrorDetail("暂不支持的key类型").build();
} // }
//
log.info("sysUser:{}, delete key:{}", AuthUtil.getSessionUser().getUserName(), key); // log.info("sysUser:{}, delete key:{}", AuthUtil.getSessionUser().getUserName(), key);
return ResultBean.success("删除成功"); // return ResultBean.success("删除成功");
} // }
//
/** // /**
* DBredis // * 根据DB选取不同的redis链接实例
* // *
* @param indexDb // * @param indexDb
* @return // * @return
*/ // */
private ImppRedis getRedis(Integer indexDb) { // private ImppRedis getRedis(Integer indexDb) {
ImppRedis redis; // ImppRedis redis;
switch (indexDb) { // switch (indexDb) {
case 0: // case 0:
redis = redisRes; // redis = redisRes;
break; // break;
case 1: // case 1:
redis = redisSession; // redis = redisSession;
break; // break;
case 2: // case 2:
redis = redisCore; // redis = redisCore;
break; // break;
case 3: // case 3:
redis = redisWms; // redis = redisWms;
break; // break;
case 4: // case 4:
redis = redisMes; // redis = redisMes;
break; // break;
case 5: // case 5:
redis = redisMesPcn; // redis = redisMesPcn;
break; // break;
case 6: // case 6:
redis = redisSweb; // redis = redisSweb;
break; // break;
case 7: // case 7:
redis = redisAndon; // redis = redisAndon;
break; // break;
case 8: // case 8:
redis = redisLac; // redis = redisLac;
break; // break;
case 9: // case 9:
redis = redisBlock; // redis = redisBlock;
break; // break;
case 10: // case 10:
redis = redisPtl; // redis = redisPtl;
break; // break;
case 11: // case 11:
redis = redisPtlPcn; // redis = redisPtlPcn;
break; // break;
case 12: // case 12:
redis = redisMdm; // redis = redisMdm;
break; // break;
case 13: // case 13:
redis = redisEam; // redis = redisEam;
break; // break;
case 15: // case 15:
redis = redisQms; // redis = redisQms;
break; // break;
default: // default:
redis = redisRes; // redis = redisRes;
} // }
return redis; // return redis;
} // }
} //}

@ -70,3 +70,4 @@ redis.resource.db=0
redis.session.db=1 redis.session.db=1
#\u7CFB\u7EDF\u5168\u5C40\u7F13\u5B58\u5E93\uFF0C\u5B58\u653E\u5E73\u53F0\u6838\u5FC3\u6570\u636E\u7F13\u5B58 #\u7CFB\u7EDF\u5168\u5C40\u7F13\u5B58\u5E93\uFF0C\u5B58\u653E\u5E73\u53F0\u6838\u5FC3\u6570\u636E\u7F13\u5B58
redis.core.db=2 redis.core.db=2
wms.redis.open=true

@ -38,7 +38,7 @@
<app.charset>UTF-8</app.charset> <app.charset>UTF-8</app.charset>
<app.jdk.version>1.8</app.jdk.version> <app.jdk.version>1.8</app.jdk.version>
<project.dependency.version>1.0-TEST-SNAPSHOT</project.dependency.version> <project.dependency.version>1.0-TEST-SNAPSHOT</project.dependency.version>
<log4j2.version>2.17.0</log4j2.version> <log4j2.version>2.17.1</log4j2.version>
</properties> </properties>
<dependencies> <dependencies>
@ -251,22 +251,22 @@
<dependency> <dependency>
<groupId>org.apache.shiro</groupId> <groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId> <artifactId>shiro-core</artifactId>
<version>1.4.0</version> <version>1.8.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.shiro</groupId> <groupId>org.apache.shiro</groupId>
<artifactId>shiro-web</artifactId> <artifactId>shiro-web</artifactId>
<version>1.4.0</version> <version>1.8.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.shiro</groupId> <groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId> <artifactId>shiro-spring</artifactId>
<version>1.4.0</version> <version>1.8.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.shiro</groupId> <groupId>org.apache.shiro</groupId>
<artifactId>shiro-ehcache</artifactId> <artifactId>shiro-ehcache</artifactId>
<version>1.4.0</version> <version>1.8.0</version>
</dependency> </dependency>
<!-- json --> <!-- json -->

Loading…
Cancel
Save