多租户代码框架

This commit is contained in:
zhonghua1
2025-12-16 23:34:07 +08:00
parent 5453026309
commit 406f7d692b
36 changed files with 956 additions and 39 deletions

View File

@@ -27,8 +27,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
@Override
public LoginResponse login(LoginRequest loginRequest) {
// 根据用户名查询用户
User user = getUserByUserName(loginRequest.getUserName());
// 根据用户名查询用户(登录时不走多租户拦截器)
User user = this.baseMapper.selectByUserNameIgnoreTenant(loginRequest.getUserName());
if (user == null) {
throw new RuntimeException("用户不存在");
@@ -55,12 +55,14 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
loginResponse.setAvatar(user.getAvatar());
loginResponse.setToken(token);
loginResponse.setLoginTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
loginResponse.setTenantId(user.getTenantId());
return loginResponse;
}
@Override
public User getUserByUserName(String userName) {
// 供其他业务使用的通用查询,保持按租户隔离
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getUserName, userName);
return this.getOne(queryWrapper);
@@ -68,16 +70,14 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
@Override
public User getUserByToken(String token) {
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getToken, token);
return this.getOne(queryWrapper);
// 用于 token 验证等场景,需跨租户查询用户
return this.baseMapper.selectByTokenIgnoreTenant(token);
}
@Override
public User getUserInfoByToken(String token) {
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getToken, token);
return this.getOne(queryWrapper);
// 获取用户详细信息,同样使用跨租户查询
return this.baseMapper.selectByTokenIgnoreTenant(token);
}
}