提交 f970a940 编写于 作者: 黄勇

【I】代码优化

上级 42c5f0ff
......@@ -33,7 +33,6 @@ public class UserAction {
public View index() {
List<UserBean> userBeanList = userService.findUserBeanList();
DataContext.Request.put("userBeanList", userBeanList);
return new View("user.jsp");
}
......@@ -42,7 +41,6 @@ public class UserAction {
String username = params.getString("username");
List<UserBean> userBeanList = userService.findUserBeanListByUsername(username);
DataContext.Request.put("userBeanList", userBeanList);
return new View("user_list.jsp");
}
......@@ -50,7 +48,6 @@ public class UserAction {
public View create() {
List<Role> roleList = roleService.getRoleList();
DataContext.Request.put("roleList", roleList);
return new View("user_create.jsp");
}
......@@ -58,7 +55,6 @@ public class UserAction {
public Result save(Params params) {
Map<String, Object> fieldMap = params.getFieldMap();
boolean result = userService.saveUser(fieldMap);
return new Result(result);
}
......@@ -77,14 +73,12 @@ public class UserAction {
public Result update(long id, Params params) {
Map<String, Object> fieldMap = params.getFieldMap();
boolean result = userService.updateUser(id, fieldMap);
return new Result(result);
}
@Request.Delete("/user/{id}")
public Result delete(long id) {
boolean result = userService.deleteUser(id);
return new Result(result);
}
}
......@@ -39,6 +39,22 @@ public class UserServiceImpl implements UserService {
return getUserBeanList(userList);
}
private List<UserBean> getUserBeanList(List<User> userList) {
List<UserBean> userBeanList = new ArrayList<UserBean>();
for (User user : userList) {
UserBean userBean = createUserBean(user);
userBeanList.add(userBean);
}
return userBeanList;
}
private UserBean createUserBean(User user) {
long userId = user.getId();
List<Role> roleList = DatabaseHelper.queryEntityList(Role.class, roleListSql, userId);
List<Permission> permissionList = DatabaseHelper.queryEntityList(Permission.class, permissionListSql, userId);
return new UserBean(user, roleList, permissionList);
}
@Override
public List<User> findUserListByUsername(String username) {
return DataSet.selectListWithCondition(User.class, "username like ?", "%" + username + "%");
......@@ -59,79 +75,66 @@ public class UserServiceImpl implements UserService {
public UserBean findUserBean(long id) {
User user = DataSet.select(User.class, "id = ?", id);
if (user == null) return null;
long userId = user.getId();
List<Role> roleList = DatabaseHelper.queryEntityList(Role.class, roleListSql, userId);
List<Permission> permissionList = DatabaseHelper.queryEntityList(Permission.class, permissionListSql, userId);
return new UserBean(user, roleList, permissionList);
return createUserBean(user);
}
@Override
@Transaction
public boolean saveUser(Map<String, Object> fieldMap) {
// 创建用户
User user = new User();
// 加密密码
String password = CastUtil.castString(fieldMap.get("password"));
password = SecurityHelper.encrypt(password);
user.setPassword(password);
// 插入用户
String username = CastUtil.castString(fieldMap.get("username"));
long userId = (Long) DatabaseHelper.insertReturnPK("insert into user (username, password) values (?, ?)", username, password);
// 获取角色 ID 数组
long[] roleIdArray = getRoleIdArray(fieldMap);
// 插入 用户-角色 关系表
insertUserRole(userId, roleIdArray);
String password = SecurityHelper.encrypt(CastUtil.castString(fieldMap.get("password")));
long userId = insertUser(username, password);
String roleIdStr = CastUtil.castString(fieldMap.get("roleId"));
insertUserRole(userId, roleIdStr);
return true;
}
private long insertUser(String username, String password) {
return CastUtil.castLong(DatabaseHelper.insertReturnPK(
"insert into user (username, password) values (?, ?)",
username, password
));
}
private void insertUserRole(long userId, String roleIdStr) {
long[] roleIdArray = CastUtil.castLongArray(roleIdStr.split(StringUtil.SEPARATOR));
for (long roleId : roleIdArray) {
DatabaseHelper.update(
"insert user_role (user_id, role_id) values (?, ?)",
userId, roleId
);
}
}
@Override
@Transaction
public boolean updateUser(long userId, Map<String, Object> fieldMap) {
// 查询用户
User user = DataSet.select(User.class, "id = ?", userId);
if (user == null) return false;
// 若密码不为空,则加密密码
String password = CastUtil.castString(fieldMap.get("password"));
if (StringUtil.isNotEmpty(password)) {
password = SecurityHelper.encrypt(password);
user.setPassword(password);
}
// 在 用户-角色 关系表中删除该用户所对应的记录
DatabaseHelper.update("delete from user_role where user_id = ?", userId);
// 获取角色 ID 数组
long[] roleIdArray = getRoleIdArray(fieldMap);
// 插入 用户-角色 关系表
insertUserRole(userId, roleIdArray);
// 更新用户
deleteUserRole(userId);
String roleIdStr = CastUtil.castString(fieldMap.get("roleId"));
insertUserRole(userId, roleIdStr);
return DataSet.update(user);
}
private void deleteUserRole(long userId) {
DatabaseHelper.update(
"delete from user_role where user_id = ?",
userId
);
}
@Override
@Transaction
public boolean deleteUser(long userId) {
return DataSet.delete(User.class, "id = ?", userId);
}
private List<UserBean> getUserBeanList(List<User> userList) {
List<UserBean> userBeanList = new ArrayList<UserBean>();
for (User user : userList) {
long userId = user.getId();
List<Role> roleList = DatabaseHelper.queryEntityList(Role.class, roleListSql, userId);
List<Permission> permissionList = DatabaseHelper.queryEntityList(Permission.class, permissionListSql, userId);
UserBean userBean = new UserBean(user, roleList, permissionList);
userBeanList.add(userBean);
}
return userBeanList;
}
private long[] getRoleIdArray(Map<String, Object> fieldMap) {
String roleIdStr = CastUtil.castString(fieldMap.get("roleId"));
return CastUtil.castLongArray(roleIdStr.split(StringUtil.SEPARATOR));
}
private void insertUserRole(long userId, long[] roleIdArray) {
for (long roleId : roleIdArray) {
DatabaseHelper.update("insert user_role (user_id, role_id) values (?, ?)", userId, roleId);
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册