用户导入,修改,密码

This commit is contained in:
zhaoyz 2024-04-11 17:57:54 +08:00
parent 9355c44b13
commit 8f6775ebe6
6 changed files with 71 additions and 20 deletions

View File

@ -129,7 +129,8 @@ public class SysUserController {
@PutMapping @PutMapping
@PreAuthorize("@pms.hasPermission('sys_user_edit')") @PreAuthorize("@pms.hasPermission('sys_user_edit')")
public R updateUser(@Valid @RequestBody UserDTO userDto) { public R updateUser(@Valid @RequestBody UserDTO userDto) {
return R.ok(userService.updateUser(userDto)); Boolean b = userService.updateUser(userDto);
return R.ok(b);
} }
/** /**
@ -138,8 +139,8 @@ public class SysUserController {
* @param userDTO 查询参数列表 * @param userDTO 查询参数列表
* @return 用户集合 * @return 用户集合
*/ */
@GetMapping("/page") @PostMapping("/page")
public R getUserPage(@ParameterObject Page page, @ParameterObject UserDTO userDTO) { public R getUserPage(Page page, UserDTO userDTO) {
return R.ok(userService.getUsersWithRolePage(page, userDTO)); return R.ok(userService.getUsersWithRolePage(page, userDTO));
} }
@ -189,6 +190,7 @@ public class SysUserController {
return userService.lockUser(username); return userService.lockUser(username);
} }
@SysLog("个人修改密码")
@PutMapping("/password") @PutMapping("/password")
public R password(@RequestBody UserDTO userDto) { public R password(@RequestBody UserDTO userDto) {
String username = SecurityUtils.getUser().getUsername(); String username = SecurityUtils.getUser().getUsername();
@ -201,4 +203,10 @@ public class SysUserController {
return userService.checkPassword(password); return userService.checkPassword(password);
} }
@SysLog("管理员修改密码")
@PostMapping("/modifyPw")
public R modifyPw(UserDTO userDto) {
return userService.modifyPw(userDto);
}
} }

View File

@ -112,4 +112,11 @@ public interface SysUserService extends IService<SysUser> {
*/ */
R checkPassword(String password); R checkPassword(String password);
/**
* 管理员修改密码
* @param userDto
* @return
*/
R modifyPw(UserDTO userDto);
} }

View File

@ -41,6 +41,7 @@ import org.springframework.validation.BindingResult;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -69,6 +70,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
private final RedisTemplate redisTemplate; private final RedisTemplate redisTemplate;
private final static String PASSWD_PATTERN = "^(?=.*\\d)(?=.*[a-zA-Z])(?=.*[^\\da-zA-Z\\s]).{9,15}$";
/** /**
* 保存用户信息 * 保存用户信息
* *
@ -202,6 +205,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
sysUser.setNickname(userDto.getNickname()); sysUser.setNickname(userDto.getNickname());
sysUser.setName(userDto.getName()); sysUser.setName(userDto.getName());
sysUser.setEmail(userDto.getEmail()); sysUser.setEmail(userDto.getEmail());
if (StringUtils.hasText(userDto.getLockFlag())) {
sysUser.setLockFlag(userDto.getLockFlag());
}
return R.ok(this.updateById(sysUser)); return R.ok(this.updateById(sysUser));
} }
@ -218,23 +224,27 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
} }
this.updateById(sysUser); this.updateById(sysUser);
// 更新用户角色表 if (userDto.getRole() != null) {
sysUserRoleMapper.delete(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, userDto.getUserId())); // 更新用户角色表
userDto.getRole().stream().map(roleId -> { sysUserRoleMapper.delete(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, userDto.getUserId()));
SysUserRole userRole = new SysUserRole(); userDto.getRole().stream().map(roleId -> {
userRole.setUserId(sysUser.getUserId()); SysUserRole userRole = new SysUserRole();
userRole.setRoleId(roleId); userRole.setUserId(sysUser.getUserId());
return userRole; userRole.setRoleId(roleId);
}).forEach(SysUserRole::insert); return userRole;
}).forEach(SysUserRole::insert);
}
// 更新用户岗位表 if (userDto.getPost() != null) {
sysUserPostMapper.delete(Wrappers.<SysUserPost>lambdaQuery().eq(SysUserPost::getUserId, userDto.getUserId())); // 更新用户岗位表
userDto.getPost().stream().map(postId -> { sysUserPostMapper.delete(Wrappers.<SysUserPost>lambdaQuery().eq(SysUserPost::getUserId, userDto.getUserId()));
SysUserPost userPost = new SysUserPost(); userDto.getPost().stream().map(postId -> {
userPost.setUserId(sysUser.getUserId()); SysUserPost userPost = new SysUserPost();
userPost.setPostId(postId); userPost.setUserId(sysUser.getUserId());
return userPost; userPost.setPostId(postId);
}).forEach(SysUserPost::insert); return userPost;
}).forEach(SysUserPost::insert);
}
return Boolean.TRUE; return Boolean.TRUE;
} }
@ -457,4 +467,26 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
} }
} }
@Override
public R modifyPw(UserDTO userDto) {
UserVO userVO = baseMapper.getUserVoByUsername(userDto.getUsername());
if (Objects.isNull(userVO)) {
return R.failed("用户不存在");
}
if (!StringUtils.hasText(userDto.getPassword())) {
return R.failed("密码不能为空");
}
boolean matches = Pattern.matches(PASSWD_PATTERN, userDto.getPassword());
if (!matches) {
return R.failed("密码至少包含字母、数字、特殊字符不少于9位最多15位");
}
String password = ENCODER.encode(userDto.getPassword());
this.update(Wrappers.<SysUser>lambdaUpdate()
.set(SysUser::getPassword, password)
.eq(SysUser::getUserId, userVO.getUserId()));
return R.ok();
}
} }

View File

@ -1,5 +1,5 @@
server: server:
port: 8888 port: 9999
servlet: servlet:
context-path: /admin context-path: /admin

View File

@ -117,6 +117,10 @@
LEFT JOIN sys_dept d ON d.dept_id = u.dept_id LEFT JOIN sys_dept d ON d.dept_id = u.dept_id
<where> <where>
u.del_flag = '0' u.del_flag = '0'
<if test="query.name != null and query.name != ''">
<bind name="nameLike" value="'%' + query.name + '%'"/>
AND u.name LIKE #{nameLike}
</if>
<if test="query.username != null and query.username != ''"> <if test="query.username != null and query.username != ''">
<bind name="usernameLike" value="'%'+query.username+'%'"/> <bind name="usernameLike" value="'%'+query.username+'%'"/>
AND u.username LIKE #{usernameLike} AND u.username LIKE #{usernameLike}