Commit cca7de71 authored by 李德才's avatar 李德才

将用户、系统、机构信息保存到redis,提供保存和查询的方式

parent 2bfe1e9d
...@@ -5,6 +5,8 @@ import com.archser.aserver.model.System; ...@@ -5,6 +5,8 @@ import com.archser.aserver.model.System;
import com.archser.aserver.service.LogService; import com.archser.aserver.service.LogService;
import com.archser.aserver.service.SystemService; import com.archser.aserver.service.SystemService;
import com.archser.aserver.util.JwtUtils; import com.archser.aserver.util.JwtUtils;
import com.archser.aserver.util.redis.InfoSystem;
import com.archser.aserver.util.redis.RedisConvert;
import com.jfinal.aop.Before; import com.jfinal.aop.Before;
import com.jfinal.aop.Clear; import com.jfinal.aop.Clear;
import com.jfinal.aop.Inject; import com.jfinal.aop.Inject;
...@@ -13,6 +15,7 @@ import com.jfinal.kit.Ret; ...@@ -13,6 +15,7 @@ import com.jfinal.kit.Ret;
import com.jfinal.kit.StrKit; import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.tx.Tx; import com.jfinal.plugin.activerecord.tx.Tx;
import com.jfinal.plugin.redis.Redis;
import java.util.List; import java.util.List;
/** /**
...@@ -46,6 +49,7 @@ public class SystemController extends Controller { ...@@ -46,6 +49,7 @@ public class SystemController extends Controller {
System system = getModel(System.class, "", true); System system = getModel(System.class, "", true);
if (system == null) { if (system == null) {
renderJson(Ret.fail("msg", "请填写完整数据")); renderJson(Ret.fail("msg", "请填写完整数据"));
return ;
} else if (system.getId() == null || system.getId() == 0) { } else if (system.getId() == null || system.getId() == 0) {
system.set("ID", System.SEQ_NEXTVAL); system.set("ID", System.SEQ_NEXTVAL);
system.save(); system.save();
...@@ -58,6 +62,9 @@ public class SystemController extends Controller { ...@@ -58,6 +62,9 @@ public class SystemController extends Controller {
logService.saveAsLog("operate", getAttr("username"), JwtInterceptor.getIpAddr(getRequest()), logService.saveAsLog("operate", getAttr("username"), JwtInterceptor.getIpAddr(getRequest()),
"修改-" + system.getName() + "-系统模块成功", "aserver"); "修改-" + system.getName() + "-系统模块成功", "aserver");
} }
new Thread(() ->{
InfoSystem.saveSystem(system);
}).start();
} }
/** /**
...@@ -80,6 +87,10 @@ public class SystemController extends Controller { ...@@ -80,6 +87,10 @@ public class SystemController extends Controller {
} }
if (success) { if (success) {
renderJson(Ret.ok()); renderJson(Ret.ok());
String finalSystemName = systemName;
new Thread(() ->{
InfoSystem.deleteSystem(finalSystemName);
}).start();
logService.saveAsLog("operate", getAttr("username"), JwtInterceptor.getIpAddr(getRequest()), logService.saveAsLog("operate", getAttr("username"), JwtInterceptor.getIpAddr(getRequest()),
"删除" + systemName, "aserver"); "删除" + systemName, "aserver");
} else { } else {
......
package com.archser.aserver.controller; package com.archser.aserver.controller;
import com.archser.aserver.util.redis.InfoUser;
import com.jfinal.upload.UploadFile; import com.jfinal.upload.UploadFile;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
...@@ -17,6 +18,7 @@ import com.jfinal.kit.Ret; ...@@ -17,6 +18,7 @@ import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.redis.Redis; import com.jfinal.plugin.redis.Redis;
import javax.sound.sampled.Line.Info;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
/** /**
...@@ -27,8 +29,6 @@ import org.apache.commons.codec.binary.Base64; ...@@ -27,8 +29,6 @@ import org.apache.commons.codec.binary.Base64;
*/ */
public class UserController extends Controller { public class UserController extends Controller {
@Inject
UserService userService;
private static final String _INFO = "_INFO"; private static final String _INFO = "_INFO";
...@@ -37,8 +37,8 @@ public class UserController extends Controller { ...@@ -37,8 +37,8 @@ public class UserController extends Controller {
*/ */
public void info() { public void info() {
String username = this.getAttr("username"); String username = this.getAttr("username");
User user = User.dao.template("getUser", username).findFirst(); User user = InfoUser.getUser(username);
user.remove("password"); user.remove("password");
Organ organ = Organ.dao.findById(user.getOrganId()); Organ organ = Organ.dao.findById(user.getOrganId());
if (organ != null) { if (organ != null) {
Iterator<Entry<String, Object>> organIterator = organ._getAttrsEntrySet().iterator(); Iterator<Entry<String, Object>> organIterator = organ._getAttrsEntrySet().iterator();
...@@ -55,21 +55,17 @@ public class UserController extends Controller { ...@@ -55,21 +55,17 @@ public class UserController extends Controller {
* 修改用户密码 * 修改用户密码
* @throws SQLException * @throws SQLException
*/ */
public void updatePwd() { public void updatePwd() {
String username = this.getAttr("username"); String username = this.getAttr("username");
String password = this.getPara("newPwd"); String password = this.getPara("newPwd");
password = HashKit.sha256(password); password = HashKit.sha256(password);
int flag = Db.update(Db.getSql("updatePassword"), password, username); int flag = Db.update(Db.getSql("updatePassword"), password, username);
if (flag == 0) { if (flag == 0) {
this.renderJson(Ret.fail("msg","修改失败")); this.renderJson(Ret.fail("msg", "修改失败"));
return ; return;
} }
try { this.renderJson(Ret.ok("msg", "修改成功"));
Redis.use().hset(username+ _INFO, "password", password); InfoUser.saveUser(InfoUser.getUser(username).setPassword(password));
}catch (Exception e) {
e.printStackTrace();
}
this.renderJson(Ret.ok("msg","修改成功"));
} }
/** /**
...@@ -83,56 +79,36 @@ public class UserController extends Controller { ...@@ -83,56 +79,36 @@ public class UserController extends Controller {
} }
boolean flag = user.update(); boolean flag = user.update();
if (flag) { if (flag) {
updateUserForRedis(user);
renderJson(Ret.ok("msg", "数据修改成功!")); renderJson(Ret.ok("msg", "数据修改成功!"));
return; InfoUser.saveUser(user);
} else { } else {
renderJson(Ret.fail("msg", "Error ! 请联系管理员解决。")); renderJson(Ret.fail("msg", "Error ! 请联系管理员解决。"));
} }
} }
/**
* 修改Redis中的用户信息
*@Time:2020年7月10日 - 上午8:48:48
* @author:李德才
* @param: @param user
* @return: void
* @throws
*/
public void updateUserForRedis(User user) {
try {
Iterator<Entry<String, Object>> userIterator = user._getAttrsEntrySet().iterator();
Map<Object, Object> userMap = new HashMap<>();
Entry<String, Object> userAttr = null;
while (userIterator.hasNext()) {
userAttr = userIterator.next();
userMap.put(userAttr.getKey().toString().trim().toLowerCase(), userAttr.getValue());
}
Redis.use().hmset(user.getUsername() + _INFO, userMap);
} catch (Exception e) {
e.printStackTrace();
}
}
/** /**
* 查询角色 * 查询角色
*/ */
public void getRoleData() { public void getRoleData() {
String username = this.getAttr("username"); String username = this.getAttr("username");
User user = User.dao.template("getUser", username).findFirst(); if ("admin".equals(username)) {
int userId = user.getId(); this.renderJson(Ret.ok("list", null));
List<Record> records = Db.find(Db.getSql("getRolesByUserId"), userId); return;
List<Integer> ids = new ArrayList<Integer>(); }
for (Record record : records) { User user = InfoUser.getUser(username);
ids.add(record.getInt("ROLE_ID")); int userId = user.getId();
} List<Record> records = Db.find(Db.getSql("getRolesByUserId"), userId);
List<Record> dataList = Db.find(Db.getSqlPara("getRole",Kv.by("ids", ids))); List<Integer> ids = new ArrayList<Integer>();
if (dataList != null) { for (Record record : records) {
this.renderJson(Ret.ok("list", dataList)); ids.add(record.getInt("ROLE_ID"));
} else { }
this.renderJson(Ret.fail("msg", "未找到数据")); List<Record> dataList = Db.find(Db.getSqlPara("getRole", Kv.by("ids", ids)));
} if (dataList != null) {
this.renderJson(Ret.ok("list", dataList));
} else {
this.renderJson(Ret.fail("msg", "未找到数据"));
}
} }
/** /**
...@@ -162,6 +138,9 @@ public class UserController extends Controller { ...@@ -162,6 +138,9 @@ public class UserController extends Controller {
if (imgBase != null) { if (imgBase != null) {
user.setImage(imgBase); user.setImage(imgBase);
user.update(); user.update();
new Thread(() -> {
InfoUser.saveUser(InfoUser.getUser(username).setImage(imgBase));
}).start();
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -188,7 +167,7 @@ public class UserController extends Controller { ...@@ -188,7 +167,7 @@ public class UserController extends Controller {
public void getImage() { public void getImage() {
String username = this.getAttr("username"); String username = this.getAttr("username");
User user = User.dao.template("getUser", username).findFirst(); User user = InfoUser.getUser(username);
byte[] image = user.getImage(); byte[] image = user.getImage();
if (image == null) { if (image == null) {
renderJson(Ret.ok("baseStr", image)); renderJson(Ret.ok("baseStr", image));
......
package com.archser.aserver.util.redis;
import com.archser.aserver.model.Organ;
/**
* 20201127 lidecai
* 操作redis中的机构信息
*/
public class InfoOrgan {
private static final String ORGAN = "ORGAN_";
/**
* 保存机构信息
*
* @param organ
* @return
*/
public static boolean saveOrgan(Organ organ) {
return RedisConvert.saveObject(ORGAN + organ.getId(), organ);
}
}
...@@ -38,4 +38,26 @@ public class InfoSystem { ...@@ -38,4 +38,26 @@ public class InfoSystem {
return system; return system;
} }
/**
* 保存系统信息
*
* @param system
* @return
*/
public static boolean saveSystem(System system) {
return RedisConvert.saveObject(SYSTEM + system.getName() + _INFO, system);
}
/**
* 删除系统信息
*
* @param systemName
* @return
*/
public static boolean deleteSystem(String systemName) {
return RedisConvert.deleteKey(SYSTEM + systemName + _INFO) > 0;
}
} }
...@@ -2,9 +2,11 @@ package com.archser.aserver.util.redis; ...@@ -2,9 +2,11 @@ package com.archser.aserver.util.redis;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.archser.aserver.model.User; import com.archser.aserver.model.User;
import java.io.Serializable;
public class InfoUser implements Serializable { /**
* 20201127 lidecai 操作redis中的用户信息
*/
public class InfoUser {
private static final String _INFO = "_INFO"; private static final String _INFO = "_INFO";
private static final String USER = "USER_"; private static final String USER = "USER_";
...@@ -19,22 +21,26 @@ public class InfoUser implements Serializable { ...@@ -19,22 +21,26 @@ public class InfoUser implements Serializable {
Object object = RedisConvert.getObject(USER + userName + _INFO); Object object = RedisConvert.getObject(USER + userName + _INFO);
User user = JSONObject.parseObject(JSONObject.toJSONString(object), User.class); User user = JSONObject.parseObject(JSONObject.toJSONString(object), User.class);
if (user.getId() == null) { if (user.getId() == null) {
return getUserByDataBase(userName); User userByDataBase = getUserByDataBase(userName);
saveUser(userByDataBase);
return userByDataBase;
} }
return user; return user;
} }
public static boolean saveUser(User user) {
return RedisConvert.saveObject(USER + user.getUsername() + _INFO, user);
}
/** /**
* 备用方案,从数据库获取用户信息 * 备用方案,从数据库获取用户信息
* *
* @param userName * @param userName
* @return * @return
*/ */
private static User getUserByDataBase(String userName) { public static User getUserByDataBase(String userName) {
User user = User.dao.template("getUser", userName).findFirst(); return User.dao.template("getUser", userName).findFirst();
RedisConvert.saveObject(USER + userName + _INFO, user);
return user;
} }
......
...@@ -38,8 +38,9 @@ public class RedisConvert { ...@@ -38,8 +38,9 @@ public class RedisConvert {
* @param key * @param key
* @param object * @param object
*/ */
public static void saveObject(String key, Object object) { public static boolean saveObject(String key, Object object) {
Redis.use().hmset(key, objectToMap(object)); String hamlet = Redis.use().hmset(key, objectToMap(object));
return hamlet.equalsIgnoreCase("Ok");
} }
/** /**
...@@ -52,13 +53,20 @@ public class RedisConvert { ...@@ -52,13 +53,20 @@ public class RedisConvert {
return Redis.use().hgetAll(key); return Redis.use().hgetAll(key);
} }
public static Long deleteKey(String key){
return Redis.use().del(key);
}
/** /**
* 反射获取对象全部属性 * 对象转map
*
* @param obj * @param obj
* @return * @return
*/ */
public static Map objectToMap(Object obj) { public static Map objectToMap(Object obj) {
return JSONObject.parseObject(JSONObject.toJSONString(obj), Map.class); return JSONObject.parseObject(JSONObject.toJSONString(obj), Map.class);
} }
} }
cron4j=task
#凌晨4点执行一次
##每间隔一分钟删除一次
##task.cron=*/1 * * * *
##凌晨一点执行一次
task.cron=0 1 * * *
task.class=com.archser.aserver.itask.GoodSync
task.enable=true
#task1用于删除批量导出时产生的临时文件
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