Commit 3387ea6e71eb716ce8558265dde6328cfdaea10f

Authored by 谢茂盛
1 parent 82b7b5ac

fix: 用户新增备注/管理员重置密码/用户修改密码

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
@@ -83,4 +83,9 @@ public class AdminUserVO implements Serializable { @@ -83,4 +83,9 @@ public class AdminUserVO implements Serializable {
83 * 角色id 83 * 角色id
84 */ 84 */
85 private Long roleId; 85 private Long roleId;
  86 +
  87 + /**
  88 + * 备注信息
  89 + */
  90 + private String remark;
86 } 91 }
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&lt;AdminUserMapper, AdminUser @@ -326,6 +330,18 @@ public class AdminUserServiceImpl extends ServiceImpl&lt;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&lt;AdminUserMapper, AdminUser @@ -363,7 +379,19 @@ public class AdminUserServiceImpl extends ServiceImpl&lt;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