字典修改

parent d8aab99b
package com.xzxtshiro.controller.admin;
import com.xzxtshiro.pojo.*;
import com.xzxtshiro.redis.JedisClient;
import com.xzxtshiro.service.SysDictitemService;
import com.xzxtshiro.service.SysRoleService;
import com.xzxtshiro.service.SysUserService;
......@@ -41,6 +42,9 @@ public class SysUserController {
@Autowired
private SysDictitemService dictitemService;
@Autowired
private JedisClient jedisClient;
/**
* 跳转到用户列表
*
......@@ -51,7 +55,7 @@ public class SysUserController {
/*if (msg!=null&&msg!=""){
model.addAttribute("msg","用户添加成功!");
}*/
setZtreeData(model,userService,dictitemService,roleService);
setZtreeData(model,userService,dictitemService,roleService,jedisClient);
return "admin/user/list";
}
......@@ -114,15 +118,15 @@ public class SysUserController {
*/
@RequestMapping(value = "/add", method = RequestMethod.GET)
public String addIndex(Model model) {
setZtreeData(model,userService,dictitemService,roleService);
setZtreeData(model,userService,dictitemService,roleService,jedisClient);
return "admin/user/add";
}
/**
* 设置添加用户页面所需要的角色和单位代码数据
*/
private static void setZtreeData(Model model,SysUserService userService,SysDictitemService dictitemService, SysRoleService roleService) {
new ZtreeDataUtil().setUnitAndRole(model,dictitemService,userService,roleService);
private static void setZtreeData(Model model,SysUserService userService,SysDictitemService dictitemService, SysRoleService roleService,JedisClient jedisClient) {
new ZtreeDataUtil().setUnitAndRole(model,dictitemService,userService,roleService,jedisClient);
}
/**
......@@ -145,7 +149,7 @@ public class SysUserController {
public String add(SysUser user, Model model) {
SysUser add = userService.add(user);
if (add.getUsername() == null) {
setZtreeData(model,userService,dictitemService,roleService);
setZtreeData(model,userService,dictitemService,roleService,jedisClient);
model.addAttribute("user", user);
model.addAttribute("msg", "用户名已存在,请修改用户名!");
return "admin/user/add";
......@@ -209,7 +213,7 @@ public class SysUserController {
user.setPassword(new Base64PasswordEncrypter().decryptPassword(user.getPassword()));
List<SysRole> roles = userService.selectSysRoleByUserId(id);
JSONArray oldRole = JSONArray.fromObject(roles);
setZtreeData(model,userService,dictitemService,roleService);
setZtreeData(model,userService,dictitemService,roleService,jedisClient);
model.addAttribute("oldRole", oldRole);
model.addAttribute("user", user);
return "admin/user/update";
......@@ -231,7 +235,7 @@ public class SysUserController {
//查询用户原先的角色
List<SysRole> roles = userService.selectSysRoleByUserId(user.getId());
JSONArray oldRole = JSONArray.fromObject(roles);
setZtreeData(model,userService,dictitemService,roleService);
setZtreeData(model,userService,dictitemService,roleService,jedisClient);
model.addAttribute("oldRole", oldRole);
model.addAttribute("user", user);
model.addAttribute("msg", "用户修改失败!");
......
package com.xzxtshiro.redis;
public interface JedisClient {
String get(String key);
String set(String key, String value);
String hget(String hkey, String key);
long hset(String hkey, String key, String value);
long incr(String key);// Incr 命令将 key 中储存的数字值增一
long expire(String key, int second);//为给定 key 设置生存时间,默认1000
long ttl(String key);//TTL 命令以秒为单位返回 key 的剩余过期时间 判断key是否过期 -1 就是正常,
long del(String key);//删除给定的一个或多个 key 。
long hdel(String hkey, String key);//
}
package com.xzxtshiro.redis.impl;
import com.xzxtshiro.redis.JedisClient;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.JedisCluster;
public class JedisClientCluster implements JedisClient {
@Autowired
private JedisCluster jedisCluster;
@Override
public String get(String key) {
return jedisCluster.get(key);
}
@Override
public String set(String key, String value) {
return jedisCluster.set(key, value);
}
@Override
public String hget(String hkey, String key) {
return jedisCluster.hget(hkey, key);
}
@Override
public long hset(String hkey, String key, String value) {
return jedisCluster.hset(hkey, key, value);
}
@Override
public long incr(String key) {
return jedisCluster.incr(key);
}
@Override
public long expire(String key, int second) {
return jedisCluster.expire(key, second);
}
@Override
public long ttl(String key) {
return jedisCluster.ttl(key);
}
@Override
public long del(String key) {
return jedisCluster.del(key);
}
@Override
public long hdel(String hkey, String key) {
return jedisCluster.hdel(hkey, key);
}
}
package com.xzxtshiro.redis.impl;
import com.xzxtshiro.redis.JedisClient;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
public class JedisClientSingle implements JedisClient {
@Autowired
private JedisPool jedisPool;
@Override
public String get(String key) {
Jedis jedis = jedisPool.getResource();
String string = jedis.get(key);
jedis.close();
return string;
}
@Override
public String set(String key, String value) {
Jedis jedis = jedisPool.getResource();
String string = jedis.set(key, value);
jedis.close();
return string;
}
@Override
public String hget(String hkey, String key) {
Jedis jedis = jedisPool.getResource();
String string = jedis.hget(hkey, key);
jedis.close();
return string;
}
@Override
public long hset(String hkey, String key, String value) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hset(hkey, key, value);
jedis.close();
return result;
}
@Override
//incr递增1并返回递增后的结果
public long incr(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.incr(key);
jedis.close();
return result;
}
@Override
//为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。
public long expire(String key, int second) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.expire(key, second);
jedis.close();
return result;
}
@Override
//以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)
public long ttl(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.ttl(key);
jedis.close();
return result;
}
@Override
public long del(String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.del(key);
jedis.close();
return result;
}
@Override
public long hdel(String hkey, String key) {
Jedis jedis = jedisPool.getResource();
Long result = jedis.hdel(hkey, key);
jedis.close();
return result;
}
}
......@@ -4,11 +4,14 @@ import com.xzxtshiro.pojo.SysDictitem;
import com.xzxtshiro.pojo.SysPermissionNew;
import com.xzxtshiro.pojo.SysRole;
import com.xzxtshiro.pojo.SysUser;
import com.xzxtshiro.redis.JedisClient;
import com.xzxtshiro.service.SysDictitemService;
import com.xzxtshiro.service.SysPermissionNewService;
import com.xzxtshiro.service.SysRoleService;
import com.xzxtshiro.service.SysUserService;
import net.sf.json.JSONArray;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import java.util.List;
......@@ -20,7 +23,6 @@ import java.util.List;
*/
public class ZtreeDataUtil {
/**
* 设置单位和角色ztree数据
* @param model
......@@ -28,8 +30,8 @@ public class ZtreeDataUtil {
* @param userService
* @param roleService
*/
public static void setUnitAndRole(Model model,SysDictitemService dictitemService,SysUserService userService,SysRoleService roleService) {
setUnitZtreeData(model,dictitemService);
public static void setUnitAndRole(Model model,SysDictitemService dictitemService,SysUserService userService,SysRoleService roleService,JedisClient jedisClient) {
setUnitZtreeData(model,dictitemService,jedisClient);
setRoleZtreeData(model,userService,roleService);
}
......@@ -43,14 +45,49 @@ public class ZtreeDataUtil {
* @param model
* @param dictitemService
*/
public static void setUnitZtreeData(Model model,SysDictitemService dictitemService){
public static void setUnitZtreeData(Model model,SysDictitemService dictitemService,JedisClient jedisClient){
SysUser user = TokenUtil.getUser();
String unitStr = user.getUnitcode();
String usergrade = user.getGrade();
SysDictitem dictitem = new SysDictitem();
dictitem.setGroupid("CODE_UNIT");
dictitem.setCodeStr(unitStr.substring(0,2)+"%");
if(usergrade==null||usergrade.equals("")){
dictitem.setCodeStr(unitStr+"%");
}else{
if (usergrade.equals("S") || usergrade.equals("T")) {
dictitem.setCodeStr(unitStr.substring(0,2)+"%");
} else if (usergrade.equals("D")) {
if(unitStr.equals("150000S10000")){//内蒙特殊处理
dictitem.setCodeStr(unitStr.substring(0,8)+"%");
}else{
dictitem.setCodeStr(unitStr.substring(0,4)+"%");
}
} else if (usergrade.equals("X")) {
dictitem.setCodeStr(unitStr.substring(0,6)+"%");
}
else if (usergrade.equals("P")) {
dictitem.setCodeStr(unitStr+"%");
}
}
//从缓存中取内容
try {
String result = jedisClient.hget("CODE_UNIT", dictitem.getCodeStr());
if (!StringUtils.isBlank(result)) {
//把字符串转换成JSONArray
JSONArray unit = JSONArray.fromObject(result);
model.addAttribute("unit", unit);
}
} catch (Exception e) {
e.printStackTrace();
}
JSONArray unit = dictitemService.selectDictitemByCondition(dictitem);
model.addAttribute("unit", unit);
//向缓存中添加内容
try {
jedisClient.hset("CODE_UNIT", dictitem.getCodeStr(), unit.toString());
model.addAttribute("unit", unit);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
......
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
<!-- 连接池配置 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<!-- 最大连接数 -->
<property name="maxTotal" value="30" />
<!-- 最大空闲连接数 -->
<property name="maxIdle" value="10" />
<!-- 每次释放连接的最大数目 -->
<property name="numTestsPerEvictionRun" value="1024" />
<!-- 释放连接的扫描间隔(毫秒) -->
<property name="timeBetweenEvictionRunsMillis" value="30000" />
<!-- 连接最小空闲时间 -->
<property name="minEvictableIdleTimeMillis" value="1800000" />
<!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->
<property name="softMinEvictableIdleTimeMillis" value="10000" />
<!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 -->
<property name="maxWaitMillis" value="1500" />
<!-- 在获取连接的时候检查有效性, 默认false -->
<property name="testOnBorrow" value="true" />
<!-- 在空闲时检查有效性, 默认false -->
<property name="testWhileIdle" value="true" />
<!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true -->
<property name="blockWhenExhausted" value="false" />
</bean>
<!-- jedis客户端单机版 -->
<bean id="redisClient" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.193.128"></constructor-arg>
<constructor-arg name="port" value="6379"></constructor-arg>
<constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg>
</bean>
<bean id="jedisClient" class="com.xzxtshiro.redis.impl.JedisClientSingle"/>
<!-- jedis集群版配置 -->
<!--<bean id="redisClient" class="redis.clients.jedis.JedisCluster">
<constructor-arg name="nodes">
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.193.128"></constructor-arg>
<constructor-arg name="port" value="7001"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.193.128"></constructor-arg>
<constructor-arg name="port" value="7002"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.193.128"></constructor-arg>
<constructor-arg name="port" value="7003"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.193.128"></constructor-arg>
<constructor-arg name="port" value="7004"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.193.128"></constructor-arg>
<constructor-arg name="port" value="7005"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.193.128"></constructor-arg>
<constructor-arg name="port" value="7006"></constructor-arg>
</bean>
</set>
</constructor-arg>
<constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg>
</bean>
<bean id="jedisClientCluster" class="com.taotao.rest.dao.impl.JedisClientCluster"></bean>-->
</beans>
\ No newline at end of file
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