修改redis模糊查询服务

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