Commit 3387ea6e71eb716ce8558265dde6328cfdaea10f
1 parent
82b7b5ac
fix: 用户新增备注/管理员重置密码/用户修改密码
Showing
8 changed files
with
96 additions
and
13 deletions
sql/init.sql
@@ -314,6 +314,7 @@ CREATE TABLE `admin_user` ( | @@ -314,6 +314,7 @@ CREATE TABLE `admin_user` ( | ||
314 | `avatar_name` varchar(255) DEFAULT NULL COMMENT '头像地址', | 314 | `avatar_name` varchar(255) DEFAULT NULL COMMENT '头像地址', |
315 | `avatar_path` varchar(255) DEFAULT NULL COMMENT '头像真实路径', | 315 | `avatar_path` varchar(255) DEFAULT NULL COMMENT '头像真实路径', |
316 | `password` varchar(255) DEFAULT NULL COMMENT '密码', | 316 | `password` varchar(255) DEFAULT NULL COMMENT '密码', |
317 | + `remark` varchar(256) DEFAULT NULL COMMENT '备注信息', | ||
317 | `is_admin` bit(1) DEFAULT b'0' COMMENT '是否为admin账号', | 318 | `is_admin` bit(1) DEFAULT b'0' COMMENT '是否为admin账号', |
318 | `pwd_reset_time` DATETIME DEFAULT NULL COMMENT '修改密码的时间', | 319 | `pwd_reset_time` DATETIME DEFAULT NULL COMMENT '修改密码的时间', |
319 | `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除', | 320 | `enable_flag` INT NOT NULL COMMENT '是否可用 10-可用 20-删除', |
src/main/java/com/order/erp/controller/UserController.java
@@ -3,10 +3,7 @@ package com.order.erp.controller; | @@ -3,10 +3,7 @@ package com.order.erp.controller; | ||
3 | import com.order.erp.common.annotation.AnonymousAccess; | 3 | import com.order.erp.common.annotation.AnonymousAccess; |
4 | import com.order.erp.common.constant.ServerResult; | 4 | import com.order.erp.common.constant.ServerResult; |
5 | import com.order.erp.config.DataScope; | 5 | import com.order.erp.config.DataScope; |
6 | -import com.order.erp.domain.vo.admin.AdminAuthUserVO; | ||
7 | -import com.order.erp.domain.vo.admin.AdminUserQueryVO; | ||
8 | -import com.order.erp.domain.vo.admin.AdminUserVO; | ||
9 | -import com.order.erp.domain.vo.admin.UpdatePwdVO; | 6 | +import com.order.erp.domain.vo.admin.*; |
10 | import com.order.erp.log.Log; | 7 | import com.order.erp.log.Log; |
11 | import com.order.erp.service.admin.AdminUserService; | 8 | import com.order.erp.service.admin.AdminUserService; |
12 | import io.swagger.annotations.Api; | 9 | import io.swagger.annotations.Api; |
@@ -85,11 +82,20 @@ public class UserController { | @@ -85,11 +82,20 @@ public class UserController { | ||
85 | 82 | ||
86 | @Log("修改密码") | 83 | @Log("修改密码") |
87 | @ApiOperation("修改密码") | 84 | @ApiOperation("修改密码") |
85 | + @PostMapping(value = "/update_pass") | ||
88 | @AnonymousAccess | 86 | @AnonymousAccess |
89 | public ServerResult updatePass(@RequestBody @Validated UpdatePwdVO pwdVO) { | 87 | public ServerResult updatePass(@RequestBody @Validated UpdatePwdVO pwdVO) { |
90 | return userService.updatePass(pwdVO); | 88 | return userService.updatePass(pwdVO); |
91 | } | 89 | } |
92 | 90 | ||
91 | + @Log("重置密码") | ||
92 | + @ApiOperation("重置密码") | ||
93 | + @PostMapping(value = "/reset") | ||
94 | + @AnonymousAccess | ||
95 | + public ServerResult reset(@RequestBody @Validated ResetPwdVO resetPwdVO) { | ||
96 | + return userService.resetPwdVO(resetPwdVO); | ||
97 | + } | ||
98 | + | ||
93 | @ApiOperation("修改头像") | 99 | @ApiOperation("修改头像") |
94 | @AnonymousAccess | 100 | @AnonymousAccess |
95 | public ServerResult updateAvatar(@RequestParam MultipartFile file) { | 101 | public ServerResult updateAvatar(@RequestParam MultipartFile file) { |
src/main/java/com/order/erp/domain/dto/admin/AdminUserDO.java
@@ -83,4 +83,9 @@ public class AdminUserDO extends BaseDO implements Serializable { | @@ -83,4 +83,9 @@ public class AdminUserDO extends BaseDO implements Serializable { | ||
83 | */ | 83 | */ |
84 | private LocalDateTime pwdResetTime; | 84 | private LocalDateTime pwdResetTime; |
85 | 85 | ||
86 | + /** | ||
87 | + * 备注信息 | ||
88 | + */ | ||
89 | + private String remark; | ||
90 | + | ||
86 | } | 91 | } |
src/main/java/com/order/erp/domain/vo/admin/AdminUserModifyPwdVO.java
@@ -22,16 +22,16 @@ import java.io.Serializable; | @@ -22,16 +22,16 @@ import java.io.Serializable; | ||
22 | public class AdminUserModifyPwdVO extends BasePageVO implements Serializable { | 22 | public class AdminUserModifyPwdVO extends BasePageVO implements Serializable { |
23 | 23 | ||
24 | /** | 24 | /** |
25 | - * 密钥id | 25 | + * 手机号 |
26 | */ | 26 | */ |
27 | - @NotBlank(message = "密钥id不存在!") | ||
28 | - private String id; | 27 | + @NotBlank(message = "手机号不能为空!") |
28 | + private String phone; | ||
29 | 29 | ||
30 | /** | 30 | /** |
31 | - * 密钥密码 | 31 | + * 短信验证码 |
32 | */ | 32 | */ |
33 | - @NotBlank(message = "密钥密码不能为空") | ||
34 | - private String passwordRecoverKey; | 33 | + @NotBlank(message = "短信验证码不能为空") |
34 | + private String smsCaptchaCode; | ||
35 | 35 | ||
36 | /** | 36 | /** |
37 | * 密码 | 37 | * 密码 |
src/main/java/com/order/erp/domain/vo/admin/AdminUserVO.java
src/main/java/com/order/erp/domain/vo/admin/ResetPwdVO.java
0 → 100644
1 | +package com.order.erp.domain.vo.admin; | ||
2 | + | ||
3 | +import lombok.*; | ||
4 | +import lombok.experimental.SuperBuilder; | ||
5 | + | ||
6 | +import javax.validation.constraints.NotBlank; | ||
7 | +import javax.validation.constraints.NotNull; | ||
8 | +import java.io.Serializable; | ||
9 | + | ||
10 | +/** | ||
11 | + * 用户表(AdminUser)实体类 | ||
12 | + * | ||
13 | + * @author makejava | ||
14 | + * @since 2023-08-30 17:51:48 | ||
15 | + */ | ||
16 | +@Data | ||
17 | +@AllArgsConstructor | ||
18 | +@ToString | ||
19 | +@NoArgsConstructor | ||
20 | +@EqualsAndHashCode(callSuper = false) | ||
21 | +@SuperBuilder | ||
22 | +public class ResetPwdVO implements Serializable { | ||
23 | + | ||
24 | + /** | ||
25 | + * 用户id | ||
26 | + */ | ||
27 | + @NotNull(message = "密钥id不存在!") | ||
28 | + private Long userId; | ||
29 | + | ||
30 | +} | ||
31 | + |
src/main/java/com/order/erp/service/admin/AdminUserService.java
@@ -69,6 +69,13 @@ public interface AdminUserService extends IService<AdminUserDO> { | @@ -69,6 +69,13 @@ public interface AdminUserService extends IService<AdminUserDO> { | ||
69 | ServerResult updatePass(UpdatePwdVO pwdVO); | 69 | ServerResult updatePass(UpdatePwdVO pwdVO); |
70 | 70 | ||
71 | /** | 71 | /** |
72 | + * | ||
73 | + * @param resetPwdVO | ||
74 | + * @return | ||
75 | + */ | ||
76 | + ServerResult resetPwdVO(ResetPwdVO resetPwdVO); | ||
77 | + | ||
78 | + /** | ||
72 | * 用户名称/手机号/邮箱号 | 79 | * 用户名称/手机号/邮箱号 |
73 | * | 80 | * |
74 | * @param userName | 81 | * @param userName |
src/main/java/com/order/erp/service/admin/impl/AdminUserServiceImpl.java
@@ -14,8 +14,9 @@ import com.order.erp.common.constant.ServerResult; | @@ -14,8 +14,9 @@ import com.order.erp.common.constant.ServerResult; | ||
14 | import com.order.erp.common.constant.ServerResultCode; | 14 | import com.order.erp.common.constant.ServerResultCode; |
15 | import com.order.erp.common.exception.BusinessException; | 15 | import com.order.erp.common.exception.BusinessException; |
16 | import com.order.erp.common.utils.ImgCaptchaUtils; | 16 | import com.order.erp.common.utils.ImgCaptchaUtils; |
17 | -import com.order.erp.common.utils.RedisUtil; | 17 | +import com.order.erp.common.utils.SmsUtils; |
18 | import com.order.erp.common.utils.TransactionHelper; | 18 | import com.order.erp.common.utils.TransactionHelper; |
19 | +import com.order.erp.config.DataScope; | ||
19 | import com.order.erp.domain.RoleEnum; | 20 | import com.order.erp.domain.RoleEnum; |
20 | import com.order.erp.domain.dto.BaseDO; | 21 | import com.order.erp.domain.dto.BaseDO; |
21 | import com.order.erp.domain.dto.admin.*; | 22 | import com.order.erp.domain.dto.admin.*; |
@@ -56,7 +57,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser | @@ -56,7 +57,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser | ||
56 | private ImgCaptchaUtils imgCaptchaUtils; | 57 | private ImgCaptchaUtils imgCaptchaUtils; |
57 | 58 | ||
58 | @Resource | 59 | @Resource |
59 | - private RedisUtil redisUtil; | 60 | + private SmsUtils smsUtils; |
60 | 61 | ||
61 | @Resource | 62 | @Resource |
62 | private AuthenticationManager authenticationManager; | 63 | private AuthenticationManager authenticationManager; |
@@ -92,6 +93,9 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser | @@ -92,6 +93,9 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser | ||
92 | @Resource | 93 | @Resource |
93 | private TransactionHelper transactionHelper; | 94 | private TransactionHelper transactionHelper; |
94 | 95 | ||
96 | + @Resource | ||
97 | + private DataScope dataScope; | ||
98 | + | ||
95 | /** | 99 | /** |
96 | * 通过ID查询单条数据 | 100 | * 通过ID查询单条数据 |
97 | * <p> | 101 | * <p> |
@@ -326,6 +330,18 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser | @@ -326,6 +330,18 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser | ||
326 | return ServerResult.success(); | 330 | return ServerResult.success(); |
327 | } | 331 | } |
328 | 332 | ||
333 | + @Override | ||
334 | + public ServerResult resetPwdVO(ResetPwdVO resetPwdVO) { | ||
335 | + AdminUserDO userDO = getById(resetPwdVO.getUserId()); | ||
336 | + if (Objects.isNull(userDO)) { | ||
337 | + throw new BusinessException(ServerResultCode.USER_NOT_EXIT); | ||
338 | + } | ||
339 | + userDO.setPwdResetTime(LocalDateTime.now()); | ||
340 | + userDO.setPassword(passwordEncoder.encode("123456")); | ||
341 | + updateById(userDO); | ||
342 | + return ServerResult.success(); | ||
343 | + } | ||
344 | + | ||
329 | /** | 345 | /** |
330 | * @param loginByPwdVO | 346 | * @param loginByPwdVO |
331 | * @return | 347 | * @return |
@@ -363,7 +379,19 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser | @@ -363,7 +379,19 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser | ||
363 | 379 | ||
364 | @Override | 380 | @Override |
365 | public ServerResult passwordModify(AdminUserModifyPwdVO modifyPwdVO) { | 381 | public ServerResult passwordModify(AdminUserModifyPwdVO modifyPwdVO) { |
366 | - return null; | 382 | + smsUtils.validateSmsCaptcha(modifyPwdVO.getPhone(), modifyPwdVO.getSmsCaptchaCode()); |
383 | + if (!modifyPwdVO.getPassword().equals(modifyPwdVO.getConfirmPassword())) { | ||
384 | + throw new BusinessException(ServerResultCode.MEMBER_CONFIRM_PASSWORD_ERROR); | ||
385 | + } | ||
386 | + AdminUserDO userDO = getOne(new LambdaQueryWrapper<AdminUserDO>().eq(BaseDO::getEnableFlag, Constant.ENABLE_TEN) | ||
387 | + .eq(AdminUserDO::getPhone, modifyPwdVO.getPhone()).last("limit 1")); | ||
388 | + if (Objects.isNull(userDO)) { | ||
389 | + throw new BusinessException(ServerResultCode.USER_NOT_EXIT); | ||
390 | + } | ||
391 | + userDO.setPwdResetTime(LocalDateTime.now()); | ||
392 | + userDO.setPassword(passwordEncoder.encode(modifyPwdVO.getPassword())); | ||
393 | + updateById(userDO); | ||
394 | + return ServerResult.success(); | ||
367 | } | 395 | } |
368 | 396 | ||
369 | @Override | 397 | @Override |