feat(qr-login): 添加租户ID字段以支持多租户场景

在 QR 登码登录流程中,新增 tenantId 字段用于标识用户所属租户。
同时移除了调试用的 System.out.println语句,优化代码整洁性。
调整了 QrLoginStatusResponse 的构造参数,确保返回信息包含租户 ID。
This commit is contained in:
2025-09-22 14:32:05 +08:00
parent 5431e4bc81
commit 289ff69812

View File

@@ -58,6 +58,7 @@ public class QrLoginServiceImpl implements QrLoginService {
QrLoginData qrLoginData = new QrLoginData();
qrLoginData.setToken(token);
qrLoginData.setStatus(QR_LOGIN_STATUS_PENDING);
qrLoginData.setTenantId(tenantId);
qrLoginData.setCreateTime(DateUtil.formatDateTime(DateUtil.date()));
qrLoginData.setExpireTime(DateUtil.formatDateTime(DateUtil.offsetSecond(DateUtil.date(), QR_LOGIN_TOKEN_TTL.intValue())));
@@ -93,21 +94,21 @@ public class QrLoginServiceImpl implements QrLoginService {
@Override
public QrLoginStatusResponse checkQrLoginStatus(String token) {
if (StrUtil.isBlank(token)) {
return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L);
return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L, null);
}
String redisKey = QR_LOGIN_TOKEN_KEY + token;
QrLoginData qrLoginData = redisUtil.get(redisKey, QrLoginData.class);
if (qrLoginData == null) {
return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L);
return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L, null);
}
// 检查是否过期
if (DateUtil.date().after(DateUtil.parseDateTime(qrLoginData.getExpireTime()))) {
// 删除过期的token
redisUtil.delete(redisKey);
return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L);
return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L, null);
}
// 计算剩余过期时间
@@ -124,7 +125,6 @@ public class QrLoginServiceImpl implements QrLoginService {
// 获取用户信息
if (qrLoginData.getUserId() != null) {
User user = userService.getAllByUserId("" + qrLoginData.getUserId());
System.out.println("qrLoginData->user = " + user);
if (user != null) {
// 清除敏感信息
user.setPassword(null);
@@ -182,7 +182,6 @@ public class QrLoginServiceImpl implements QrLoginService {
qrLoginData.setUsername(user.getUsername());
qrLoginData.setAccessToken(accessToken);
qrLoginData.setTenantId(user.getTenantId());
System.out.println("qrLoginData = " + qrLoginData);
// 更新Redis中的数据
redisUtil.set(redisKey, qrLoginData, 60L, TimeUnit.SECONDS); // 给前端60秒时间获取token
@@ -191,7 +190,7 @@ public class QrLoginServiceImpl implements QrLoginService {
// 清除敏感信息
user.setPassword(null);
return new QrLoginStatusResponse(QR_LOGIN_STATUS_CONFIRMED, accessToken, user, 60L);
return new QrLoginStatusResponse(QR_LOGIN_STATUS_CONFIRMED, accessToken, user, 60L, user.getTenantId());
}
@Override