修改redis模糊查询服务

parent 7553d3aa
......@@ -41,131 +41,79 @@ public class RedisRsetController {
private SysDictitemService dictitemService;
/**
* redis存储服务
* hkey:省份 山西:14_CODE_UNIT
* key:hkey_CODE_UNIT_141181991700
* value:字典对应的数据
* type:save:更新,read:读取
* name 模糊条件 name
* key:查询条件 (15_CODE_AJDLB_05000300_诈骗案_05000000)
* 15_CODE_AJDLB_0500*
* 15_CODE_AJDLB_0500*_诈*
*/
@RequestMapping(value = "/ReadRedisRestList",method = {RequestMethod.POST,RequestMethod.GET})
@RequestMapping(value = "/ReadRedisRest",method = {RequestMethod.POST,RequestMethod.GET})
@ResponseBody
public XzxtRestResult ReadRedisRestList(@RequestParam String hkey, @RequestParam String key, String name,String pid) {
public XzxtRestResult ReadRedisRest(@RequestParam String key) {
//存储redis
XzxtRestResult result=new XzxtRestResult(100,"","");
//读取redis
Set<String> dictitemKeys= (Set<String>) (redisService.HkeysRedisRest(hkey)).getData();
Set<String> dictitemKeys= (Set<String>) (redisService.keysRedisRest(key)).getData();
String AllKey="";
String keys="";
List<SysDictitem> SysDictitems=new ArrayList<SysDictitem>();
List<SysDictitem> SysDictitems2=new ArrayList<SysDictitem>();
//模糊查询
//1.shiro 项目字典特殊处理
if (key.equals("15_SHIRO_UNIT")){
result=redisService.ReadRedisRest(key);
return XzxtRestResult.build(202,"成功读取redis",result);
}
else{
for (String key1 : dictitemKeys) {
if(key1.contains(key)){
AllKey+=key1+"__";
result=redisService.ReadRedisRest(hkey, key1);
result=redisService.ReadRedisRest(key1);
String json=JSONObject.toJSONString(result);
XzxtRestResult XzxtRestResult1= XzxtRestResult.formatToPojo(json,SysDictitem.class);
SysDictitems.add((SysDictitem) XzxtRestResult1.getData());
}
}
System.out.print("AllKey========================="+AllKey);
//模糊条件2进行筛选
if(!StringUtils.isEmpty(name)) {
for (SysDictitem SysDictitem : SysDictitems) {
if (SysDictitem.getName().contains(name)) {
SysDictitems2.add(SysDictitem);
}
}
return XzxtRestResult.build(202, "成功读取redis", SysDictitems2);
}else if(!StringUtils.isEmpty(pid)){
for(SysDictitem SysDictitem :SysDictitems){
if(pid.equals("null")){
if(SysDictitem.getPid()==null){
SysDictitems2.add(SysDictitem);
}
}else{
if(null!=SysDictitem.getPid() && SysDictitem.getPid().equals(pid)){
SysDictitems2.add(SysDictitem);
}
}
}
return XzxtRestResult.build(202,"成功读取redis",SysDictitems2);
}else{
return XzxtRestResult.build(202,"成功读取redis",SysDictitems);
}
}
/**
* redis存储服务 shiro字典
* hkey:省份 山西:14
* key:hkey_CODE_UNIT_141181991700
* value:字典对应的数据
* type:save:更新,read:读取
*/
@RequestMapping(value = "/ReadRedisRest",method = {RequestMethod.POST,RequestMethod.GET})
@ResponseBody
public XzxtRestResult ReadRedisRest(@RequestParam String hkey, @RequestParam String key) {
//存储redis
XzxtRestResult result=new XzxtRestResult(100,"","");
//读取redis
Set<String> dictitemKeys= (Set<String>) (redisService.HkeysRedisRest(hkey)).getData();
String AllKey="";
List<SysDictitem> SysDictitems=new ArrayList<SysDictitem>();
//模糊查询
for (String key1 : dictitemKeys) {
if(key1.contains(key)){
AllKey+=key1+"__";
result=redisService.ReadRedisRest(hkey, key1);
}
}
System.out.print("AllKey========================="+AllKey);
return result;
}
/**
* redis存储服务
* hkey:省份 山西:14_CODE_UNIT
* type::CODE_UNIT 去匹配 1、 14_CODE_UNIT_141181991700
* CODE_UNIT_ALL 去匹配 2、 14_CODE_UNIT_ALL
* ssdw:省份 山西:14
* type::CODE_UNIT
*/
@RequestMapping(value = "/UpdateRedisRest",method = {RequestMethod.POST,RequestMethod.GET})
@ResponseBody
public XzxtRestResult UpdateRedisRest(@RequestParam String hkey, String type) {
public XzxtRestResult UpdateRedisRest(String ssdw,String type) {
//存储redis
XzxtRestResult result=new XzxtRestResult();
SysDictitem dictitem = new SysDictitem();
//先删除指定key缓存
result =redisService.HkeysRedisRest(hkey);
String keys="";
if(null!=type && "null"!=type){
keys=ssdw+"_"+type+"*";
}else{
keys=ssdw+"*";
}
result =redisService.keysRedisRest(keys);
Set<String> dictitemKeys= (Set<String>) result.getData();
String AllKey="";
//删除对应的数据源
for (String key1 : dictitemKeys) {
if(key1.contains(type)){
AllKey+=key1+"__";
redisService.DelRedisRest(hkey, key1);
for (String key : dictitemKeys) {
AllKey+=key+"__";
redisService.DelRedisRest(key);
}
}
System.out.print("AllKey========================="+AllKey);
System.out.print("匹配出的AllKey========================="+AllKey);
//存储所有字典------------------------------------------------------
//1.shiro 项目字典特殊处理
//shiro 单位字典特殊处理
if (type.equals("SHIRO_UNIT")){
dictitem.setGroupid("CODE_UNIT");
dictitem.setCode(hkey+"%");
dictitem.setCode(ssdw+"%");
JSONArray unit = dictitemService.selectDictitemByCondition(dictitem);
result = redisService.SaveRedisRest(hkey, "SHIRO_UNIT",unit.toString());
}
//2.传统项目字典特殊处理
else{
result = redisService.SaveRedisRest("15_SHIRO_UNIT",unit.toString());
}else{
//传统项目字典特殊处理
dictitem.setGroupid(type);
List<SysDictitem> SysDictitemList = dictitemService.findCodeAllByType(dictitem);
for(SysDictitem node:SysDictitemList){
String nodeStr= JSON.toJSONString(node);
String key1 = hkey+"_"+node.getCode()+"_"+node.getName()+"_"+node.getPid();
result = redisService.SaveRedisRest(hkey,key1,nodeStr);
String key = ssdw+"_"+node.getGroupid()+"_"+node.getCode()+"_"+node.getName()+"_"+node.getPid();
result = redisService.SaveRedisRest(key,nodeStr);
}
}
return result;
......
......@@ -14,6 +14,7 @@ public interface JedisClient {
long ttl(String key);
long del(String key);
long hdel(String hkey, String key);
Set<String> hkeys(String hkey);
Set<String> hkeys(String key);
Set<String> keys(String key);
List<String> hvals (String hkey);
}
......@@ -65,7 +65,10 @@ public class JedisClientCluster implements JedisClient {
public Set<String> hkeys(String hkey) {
return jedisCluster.hkeys(hkey);
}
@Override
public Set<String> keys(String key) {
return jedisCluster.hkeys(key);
}
@Override
public List<String> hvals(String hkey) {
return jedisCluster.hvals(hkey);
......
......@@ -98,7 +98,13 @@ public class JedisClientSingle implements JedisClient {
jedis.close();
return result;
}
@Override
public Set<String> keys(String key) {
Jedis jedis = jedisPool.getResource();
Set<String> result = jedis.keys(key);
jedis.close();
return result;
}
@Override
public List<String> hvals(String hkey) {
Jedis jedis = jedisPool.getResource();
......
......@@ -4,9 +4,9 @@ package com.cc.service;
public interface RedisService {
XzxtRestResult SaveRedisRest(String hkey, String key, String value);
XzxtRestResult ReadRedisRest(String hkey, String key);
XzxtRestResult DelRedisRest(String hkey, String key);
XzxtRestResult HkeysRedisRest(String hkey);
XzxtRestResult SaveRedisRest(String key, String value);
XzxtRestResult ReadRedisRest(String key);
XzxtRestResult DelRedisRest(String key);
XzxtRestResult keysRedisRest(String key);
XzxtRestResult hvalsRedisRest(String hkey);
}
......@@ -27,9 +27,9 @@ public class RedisServiceImpl implements RedisService {
* 返回状态码:205:获取指定key对应的value
**/
@Override
public XzxtRestResult SaveRedisRest(String hkey, String key, String value) {
public XzxtRestResult SaveRedisRest(String key, String value) {
try {
jedisClient.hset(hkey, key,value);
jedisClient.set(key,value);
} catch (Exception e) {
e.printStackTrace();
return XzxtRestResult.build(500, ExceptionUtil.getStackTrace(e));
......@@ -37,10 +37,10 @@ public class RedisServiceImpl implements RedisService {
return XzxtRestResult.build(201,"成功存入redis");
}
@Override
public XzxtRestResult ReadRedisRest(String hkey, String key) {
public XzxtRestResult ReadRedisRest( String key) {
String result="";
try {
result=jedisClient.hget(hkey,key);
result=jedisClient.get(key);
} catch (Exception e) {
e.printStackTrace();
return XzxtRestResult.build(500, ExceptionUtil.getStackTrace(e));
......@@ -49,10 +49,10 @@ public class RedisServiceImpl implements RedisService {
}
@Override
public XzxtRestResult DelRedisRest(String hkey, String key) {
public XzxtRestResult DelRedisRest( String key) {
long result=0;
try {
result=jedisClient.hdel(hkey,key);
result=jedisClient.del(key);
} catch (Exception e) {
e.printStackTrace();
return XzxtRestResult.build(500, ExceptionUtil.getStackTrace(e));
......@@ -61,10 +61,10 @@ public class RedisServiceImpl implements RedisService {
}
@Override
public XzxtRestResult HkeysRedisRest(String hkey) {
public XzxtRestResult keysRedisRest(String key) {
Set<String> result=new HashSet<>();
try {
result=jedisClient.hkeys(hkey);
result=jedisClient.keys(key);
} catch (Exception e) {
e.printStackTrace();
return XzxtRestResult.build(500, ExceptionUtil.getStackTrace(e));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment