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 | 314 | `avatar_name` varchar(255) DEFAULT NULL COMMENT '头像地址', |
315 | 315 | `avatar_path` varchar(255) DEFAULT NULL COMMENT '头像真实路径', |
316 | 316 | `password` varchar(255) DEFAULT NULL COMMENT '密码', |
317 | + `remark` varchar(256) DEFAULT NULL COMMENT '备注信息', | |
317 | 318 | `is_admin` bit(1) DEFAULT b'0' COMMENT '是否为admin账号', |
318 | 319 | `pwd_reset_time` DATETIME DEFAULT NULL COMMENT '修改密码的时间', |
319 | 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 | 3 | import com.order.erp.common.annotation.AnonymousAccess; |
4 | 4 | import com.order.erp.common.constant.ServerResult; |
5 | 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 | 7 | import com.order.erp.log.Log; |
11 | 8 | import com.order.erp.service.admin.AdminUserService; |
12 | 9 | import io.swagger.annotations.Api; |
... | ... | @@ -85,11 +82,20 @@ public class UserController { |
85 | 82 | |
86 | 83 | @Log("修改密码") |
87 | 84 | @ApiOperation("修改密码") |
85 | + @PostMapping(value = "/update_pass") | |
88 | 86 | @AnonymousAccess |
89 | 87 | public ServerResult updatePass(@RequestBody @Validated UpdatePwdVO pwdVO) { |
90 | 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 | 99 | @ApiOperation("修改头像") |
94 | 100 | @AnonymousAccess |
95 | 101 | public ServerResult updateAvatar(@RequestParam MultipartFile file) { | ... | ... |
src/main/java/com/order/erp/domain/dto/admin/AdminUserDO.java
src/main/java/com/order/erp/domain/vo/admin/AdminUserModifyPwdVO.java
... | ... | @@ -22,16 +22,16 @@ import java.io.Serializable; |
22 | 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 | 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 | 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 | 14 | import com.order.erp.common.constant.ServerResultCode; |
15 | 15 | import com.order.erp.common.exception.BusinessException; |
16 | 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 | 18 | import com.order.erp.common.utils.TransactionHelper; |
19 | +import com.order.erp.config.DataScope; | |
19 | 20 | import com.order.erp.domain.RoleEnum; |
20 | 21 | import com.order.erp.domain.dto.BaseDO; |
21 | 22 | import com.order.erp.domain.dto.admin.*; |
... | ... | @@ -56,7 +57,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser |
56 | 57 | private ImgCaptchaUtils imgCaptchaUtils; |
57 | 58 | |
58 | 59 | @Resource |
59 | - private RedisUtil redisUtil; | |
60 | + private SmsUtils smsUtils; | |
60 | 61 | |
61 | 62 | @Resource |
62 | 63 | private AuthenticationManager authenticationManager; |
... | ... | @@ -92,6 +93,9 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser |
92 | 93 | @Resource |
93 | 94 | private TransactionHelper transactionHelper; |
94 | 95 | |
96 | + @Resource | |
97 | + private DataScope dataScope; | |
98 | + | |
95 | 99 | /** |
96 | 100 | * 通过ID查询单条数据 |
97 | 101 | * <p> |
... | ... | @@ -326,6 +330,18 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser |
326 | 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 | 346 | * @param loginByPwdVO |
331 | 347 | * @return |
... | ... | @@ -363,7 +379,19 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser |
363 | 379 | |
364 | 380 | @Override |
365 | 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 | 397 | @Override | ... | ... |