重置密码功能

This commit is contained in:
磷叶 2025-04-25 09:59:00 +08:00
parent 6128067cf3
commit 402c661ecf
2 changed files with 39 additions and 4 deletions

View File

@ -0,0 +1,21 @@
package com.ruoyi.system.user.utils;
public class UserUtil {
/**
* 生成6位随机密码
* @return 随机密码
*/
public static String randomPassword() {
// 定义密码字符集
String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
StringBuilder password = new StringBuilder();
// 生成6位随机密码
for (int i = 0; i < 6; i++) {
int index = (int) (Math.random() * chars.length());
password.append(chars.charAt(index));
}
return password.toString();
}
}

View File

@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
@ -39,6 +40,7 @@ import com.ruoyi.system.user.domain.UserQuery;
import com.ruoyi.system.user.service.UserAssembler; import com.ruoyi.system.user.service.UserAssembler;
import com.ruoyi.system.user.service.UserConverter; import com.ruoyi.system.user.service.UserConverter;
import com.ruoyi.system.user.service.UserService; import com.ruoyi.system.user.service.UserService;
import com.ruoyi.system.user.utils.UserUtil;
/** /**
* 用户信息 * 用户信息
@ -191,13 +193,25 @@ public class SysUserController extends BaseController
@PreAuthorize("@ss.hasPermi('system:user:resetPwd')") @PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
@Log(title = "重置用户密码", businessType = BusinessType.UPDATE, bizIdName = "arg0", bizType = LogBizType.USER) @Log(title = "重置用户密码", businessType = BusinessType.UPDATE, bizIdName = "arg0", bizType = LogBizType.USER)
@PutMapping("/resetPwd") @PutMapping("/resetPwd")
public AjaxResult resetPwd(@RequestBody User user) public AjaxResult resetPwd(Long userId)
{ {
UserVO user = userService.selectUserById(userId);
userService.checkUserAllowed(user); userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId()); userService.checkUserDataScope(user.getUserId());
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
user.setUpdateBy(getUsername()); String password = UserUtil.randomPassword();
return toAjax(userService.resetPwd(user)); User data = new User();
data.setUserId(userId);
data.setPassword(SecurityUtils.encryptPassword(password));
data.setUpdateBy(getNickName());
int rows = userService.resetPwd(data);
if (rows > 0) {
JSONObject json = new JSONObject();
json.put("password", password);
json.put("userName", user.getUserName());
return AjaxResult.success("重置密码成功", json);
}
return error("重置密码失败");
} }
/** /**