用户管理更新

This commit is contained in:
lyd
2022-11-18 14:59:05 +08:00
parent 36833957ca
commit b4484716f8
4 changed files with 66 additions and 47 deletions

View File

@@ -92,6 +92,9 @@ public class AuthorizationController {
throw new BadRequestException("账号或密码错误");
}
// 判断是否被锁
if (!userDto.getEnabled()) throw new BadRequestException("账号未激活");
// 获取权限列表 - 登录查找权限
List<String> permissionList = roleService.getPermissionList(userDto);

View File

@@ -19,6 +19,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.secure.SaSecureUtil;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@@ -109,7 +110,10 @@ public class UserController {
public ResponseEntity<Object> create(@Validated @RequestBody User resources){
checkLevel(resources);
// 默认密码 123456
resources.setPassword(SaSecureUtil.md5BySalt("123456", "salt"));
if (ObjectUtil.isEmpty(resources.getPassword()))
resources.setPassword(SaSecureUtil.md5BySalt("123456", "salt"));
else
resources.setPassword(SaSecureUtil.md5BySalt(resources.getPassword(), "salt"));
userService.create(resources);
return new ResponseEntity<>(HttpStatus.CREATED);
}

View File

@@ -15,6 +15,8 @@
*/
package org.nl.modules.system.service.impl;
import cn.dev33.satoken.secure.SaSecureUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import lombok.RequiredArgsConstructor;
import org.nl.modules.common.config.FileProperties;
@@ -89,9 +91,6 @@ public class UserServiceImpl implements UserService {
if (userRepository.findByUsername(resources.getUsername()) != null) {
throw new EntityExistException(User.class, "username", resources.getUsername());
}
if (userRepository.findByEmail(resources.getEmail()) != null) {
throw new EntityExistException(User.class, "email", resources.getEmail());
}
resources.setCreateBy(SecurityUtils.getCurrentUsername());
userRepository.save(resources);
}
@@ -102,45 +101,37 @@ public class UserServiceImpl implements UserService {
User user = userRepository.findById(resources.getId()).orElseGet(User::new);
ValidationUtil.isNull(user.getId(), "User", "id", resources.getId());
User user1 = userRepository.findByUsername(resources.getUsername());
User user2 = userRepository.findByEmail(resources.getEmail());
if (user1 != null && !user.getId().equals(user1.getId())) {
throw new EntityExistException(User.class, "username", resources.getUsername());
}
if (user2 != null && !user.getId().equals(user2.getId())) {
throw new EntityExistException(User.class, "email", resources.getEmail());
}
// 如果用户的角色改变
if (!resources.getRoles().equals(user.getRoles())) {
redisUtils.del(CacheKey.DATA_USER + resources.getId());
redisUtils.del(CacheKey.MENU_USER + resources.getId());
redisUtils.del(CacheKey.ROLE_AUTH + resources.getId());
}
// 如果用户名称修改
if(!resources.getUsername().equals(user.getUsername())){
redisUtils.del("user::username:" + user.getUsername());
}
// 如果用户名称或者状态修改
redisUtils.del("user::username:" + user.getUsername());
// 如果用户被禁用,则清除用户登录信息
if(!resources.getEnabled()){
onlineUserService.kickOutForUsername(resources.getUsername());
}
User clone = new User(); // jpa 多表问题,需要用新的类来进行修改
clone.setId(resources.getId());
clone.setUsername(resources.getUsername());
clone.setEmail(resources.getEmail());
clone.setEnabled(resources.getEnabled());
clone.setRoles(resources.getRoles());
clone.setDept(resources.getDept());
clone.setPhone(resources.getPhone());
clone.setNickName(resources.getNickName());
clone.setGender(resources.getGender());
user.setId(resources.getId());
user.setUsername(resources.getUsername());
user.setEmail(resources.getEmail());
user.setEnabled(resources.getEnabled());
user.setRoles(resources.getRoles());
user.setDept(resources.getDept());
user.setPhone(resources.getPhone());
user.setNickName(resources.getNickName());
user.setGender(resources.getGender());
if (ObjectUtil.isNotEmpty(resources.getPassword()))
user.setPassword(SaSecureUtil.md5BySalt(resources.getPassword(), "salt"));
userRepository.save(clone);
userRepository.save(user);
// 清除缓存
delCaches(user.getId(), user.getUsername());
// 修改session
// flushSession(user);
}
@Override
@@ -153,8 +144,6 @@ public class UserServiceImpl implements UserService {
userRepository.save(user);
// 清理缓存
delCaches(user.getId(), user.getUsername());
// 修改session
// flushSession(user);
}
@Override
@@ -184,7 +173,6 @@ public class UserServiceImpl implements UserService {
public void updatePass(String username, String pass) {
userRepository.updatePass(username, pass, new Date());
redisUtils.del("user::username:" + username);
// flushSession(userRepository.findByUsername(username));
}
@Override
@@ -200,7 +188,6 @@ public class UserServiceImpl implements UserService {
FileUtil.del(oldPath);
}
@NotBlank String username = user.getUsername();
// flushSession(user);
return new HashMap<String, String>(1) {{
put("avatar", file.getName());
}};
@@ -210,7 +197,6 @@ public class UserServiceImpl implements UserService {
@Transactional(rollbackFor = Exception.class)
public void updateEmail(String username, String email) {
userRepository.updateEmail(username, email);
// flushSession(userRepository.findByUsername(username));
}
@Override
@@ -239,17 +225,6 @@ public class UserServiceImpl implements UserService {
*/
public void delCaches(Long id, String username) {
redisUtils.del(CacheKey.USER_ID + id);
// flushCache(username);
}
/**
* 清理 登陆时 用户缓存信息
*
* @param user /
*/
// private void flushSession(User user) {
// UserDto userDto = this.findByName(user.getUsername());
// List<String> permissionList = roleService.getPermissionList(userDto.getId().toString());
// flushSessionUtil.flushSessionInfo(userDto, permissionList);
// }
}