refactor(system): 优化通过手机号重置密码逻辑,改用UserMapper跨租户查询

- 引入UserMapper,替换原有UserService跨租户手机号查询方案
- 使用selectAccountsByPhone方法获取用户列表,更加明确忽略租户隔离
- 过滤冻结账号逻辑保持不变
- 更新密码时改为调用UserMapper的updateByUserId方法
- UserMapper.xml新增status和password字段的映射,提高数据完整性获取能力
This commit is contained in:
2026-07-24 19:31:39 +08:00
parent 73f0878fb2
commit 14f49e43dd
2 changed files with 9 additions and 8 deletions

View File

@@ -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());

View File

@@ -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