Skip to content

Commit 3b01cf0

Browse files
committed
feat: 添加修改用户信息和密码接口
1 parent b1f7414 commit 3b01cf0

2 files changed

Lines changed: 82 additions & 0 deletions

File tree

application/src/main/java/top/cadecode/uniboot/controller/SystemController.java

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,29 @@
11
package top.cadecode.uniboot.controller;
22

3+
import cn.hutool.core.util.ObjectUtil;
34
import io.swagger.annotations.Api;
45
import io.swagger.annotations.ApiOperation;
56
import lombok.RequiredArgsConstructor;
67
import lombok.extern.slf4j.Slf4j;
8+
import org.springframework.security.crypto.password.PasswordEncoder;
9+
import org.springframework.validation.annotation.Validated;
710
import org.springframework.web.bind.annotation.PostMapping;
11+
import org.springframework.web.bind.annotation.RequestBody;
812
import org.springframework.web.bind.annotation.RequestMapping;
913
import org.springframework.web.bind.annotation.RestController;
1014
import top.cadecode.uniboot.common.annotation.ApiFormat;
15+
import top.cadecode.uniboot.common.exception.UniException;
1116
import top.cadecode.uniboot.framework.security.TokenAuthHolder;
1217
import top.cadecode.uniboot.system.bean.dto.SysUserDto.SysUserDetailsDto;
1318
import top.cadecode.uniboot.system.bean.dto.SysUserDto.SysUserInfoDto;
19+
import top.cadecode.uniboot.system.bean.po.SysUser;
1420
import top.cadecode.uniboot.system.bean.vo.SysMenuVo.SysMenuTreeVo;
21+
import top.cadecode.uniboot.system.request.SysUserRequest.SysUserModifyInfoRequest;
22+
import top.cadecode.uniboot.system.request.SysUserRequest.SysUserModifyPassRequest;
1523
import top.cadecode.uniboot.system.service.SysMenuService;
24+
import top.cadecode.uniboot.system.service.SysUserService;
1625

26+
import javax.validation.Valid;
1727
import java.util.List;
1828

1929
/**
@@ -28,10 +38,14 @@
2838
@Api(tags = "系统管理")
2939
@RequestMapping("system")
3040
@RestController
41+
@Validated
3142
public class SystemController {
3243

44+
private final SysUserService sysUserService;
3345
private final SysMenuService sysMenuService;
3446

47+
private final PasswordEncoder passwordEncoder;
48+
3549
/**
3650
* 获取用户信息
3751
*/
@@ -42,4 +56,37 @@ public SysUserInfoDto userGetInfo() {
4256
List<SysMenuTreeVo> sysMenuTreeVos = sysMenuService.listTreeVoByRoles(userDetails.getRoles());
4357
return SysUserInfoDto.builder().menuList(sysMenuTreeVos).build();
4458
}
59+
60+
@ApiOperation("修改用户信息")
61+
@PostMapping("user/modify_info")
62+
public boolean userModifyInfo(@RequestBody @Valid SysUserModifyInfoRequest request) {
63+
SysUserDetailsDto userDetails = TokenAuthHolder.getUserDetails(null);
64+
return sysUserService.lambdaUpdate()
65+
.eq(SysUser::getId, userDetails.getId())
66+
.set(SysUser::getNickName, request.getNickName())
67+
.set(SysUser::getPhone, request.getPhone())
68+
.set(SysUser::getMail, request.getMail())
69+
.set(SysUser::getSex, request.getSex())
70+
.update();
71+
}
72+
73+
@ApiOperation("修改用户密码")
74+
@PostMapping("user/modify_pass")
75+
public boolean userModifyPass(@RequestBody @Valid SysUserModifyPassRequest request) {
76+
SysUserDetailsDto userDetails = TokenAuthHolder.getUserDetails(null);
77+
SysUser sysUser = sysUserService.lambdaQuery().select(SysUser::getPassword)
78+
.eq(SysUser::getId, userDetails.getId()).one();
79+
if (ObjectUtil.notEqual(request.getNewPass(), request.getConfirmedPass())){
80+
throw UniException.of("新密码和确认密码不一致");
81+
}
82+
if (!passwordEncoder.matches(request.getOldPass(), sysUser.getPassword())) {
83+
throw UniException.of("原密码错误");
84+
}
85+
return sysUserService.lambdaUpdate()
86+
.eq(SysUser::getId, userDetails.getId())
87+
.eq(SysUser::getPassword, sysUser.getPassword())
88+
.set(SysUser::getPassword, passwordEncoder.encode(request.getNewPass()))
89+
.update();
90+
}
91+
4592
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package top.cadecode.uniboot.system.request;
2+
3+
import lombok.Data;
4+
5+
import javax.validation.constraints.Email;
6+
import javax.validation.constraints.NotEmpty;
7+
8+
/**
9+
* 系统用户请求对象
10+
*
11+
* @author Cade Li
12+
* @since 2023/4/22
13+
*/
14+
public class SysUserRequest {
15+
16+
@Data
17+
public static class SysUserModifyInfoRequest{
18+
@NotEmpty
19+
private String nickName;
20+
private String phone;
21+
@Email
22+
private String mail;
23+
private String sex;
24+
}
25+
26+
@Data
27+
public static class SysUserModifyPassRequest{
28+
@NotEmpty
29+
private String oldPass;
30+
@NotEmpty
31+
private String newPass;
32+
@NotEmpty
33+
private String confirmedPass;
34+
}
35+
}

0 commit comments

Comments
 (0)