refactor(system): 优化通过手机号重置密码逻辑,改用UserMapper跨租户查询
- 引入UserMapper,替换原有UserService跨租户手机号查询方案 - 使用selectAccountsByPhone方法获取用户列表,更加明确忽略租户隔离 - 过滤冻结账号逻辑保持不变 - 更新密码时改为调用UserMapper的updateByUserId方法 - UserMapper.xml新增status和password字段的映射,提高数据完整性获取能力
This commit is contained in:
@@ -45,6 +45,7 @@ import com.gxwebsoft.common.system.result.TenantOption;
|
||||
import com.gxwebsoft.common.system.result.AccountInfoResult;
|
||||
import com.gxwebsoft.common.system.result.CheckPhoneResult;
|
||||
import com.gxwebsoft.common.system.service.*;
|
||||
import com.gxwebsoft.common.system.mapper.UserMapper;
|
||||
import com.gxwebsoft.common.system.util.EmailTemplateUtil;
|
||||
import com.wf.captcha.SpecCaptcha;
|
||||
import io.jsonwebtoken.Claims;
|
||||
@@ -88,6 +89,8 @@ public class MainController extends BaseController {
|
||||
@Resource
|
||||
private UserService userService;
|
||||
@Resource
|
||||
private UserMapper userMapper;
|
||||
@Resource
|
||||
private RoleMenuService roleMenuService;
|
||||
@Resource
|
||||
private LoginRecordService loginRecordService;
|
||||
@@ -1520,13 +1523,9 @@ public class MainController extends BaseController {
|
||||
|
||||
// ===== 模式判断:userId 为空时按手机号查所有用户统一重置 =====
|
||||
if (StrUtil.isBlank(param.getUserId())) {
|
||||
// 通过手机号查找所有用户(跨租户)
|
||||
List<User> userList = userService.list(
|
||||
new LambdaQueryWrapper<User>()
|
||||
.eq(User::getPhone, param.getPhone())
|
||||
.eq(User::getDeleted, 0)
|
||||
);
|
||||
if (userList.isEmpty()) {
|
||||
// 通过手机号查找所有用户(跨租户,忽略租户隔离)
|
||||
List<User> userList = userMapper.selectAccountsByPhone(param.getPhone());
|
||||
if (userList == null || userList.isEmpty()) {
|
||||
return fail("该手机号未注册");
|
||||
}
|
||||
// 过滤掉被冻结的账号
|
||||
@@ -1542,7 +1541,7 @@ public class MainController extends BaseController {
|
||||
User update = new User();
|
||||
update.setUserId(u.getUserId());
|
||||
update.setPassword(encodedPassword);
|
||||
userService.updateById(update);
|
||||
userMapper.updateByUserId(update);
|
||||
// 记录登录日志
|
||||
LoginRecord record = new LoginRecord();
|
||||
record.setUsername(u.getUsername());
|
||||
|
||||
@@ -371,6 +371,8 @@
|
||||
a.tenant_id,
|
||||
a.username,
|
||||
a.avatar,
|
||||
a.status,
|
||||
a.password,
|
||||
a.create_time,
|
||||
t.tenant_name
|
||||
FROM sys_user a
|
||||
|
||||
Reference in New Issue
Block a user