From 5d2e6ca50091f405dfda9e287b367dd295dc6cf8 Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Mon, 09 Feb 2026 17:39:17 +0800
Subject: [PATCH] 1. 航线任务增加校验,只有下发人和登陆人是一个人才可以删除修改操作。 2. 增加校验航线任务是否可以创建航线接口。
---
ard-framework/src/main/java/com/ard/framework/web/service/TokenService.java | 32 ++++++++++++++++++++++++++++++--
1 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/ard-framework/src/main/java/com/ard/framework/web/service/TokenService.java b/ard-framework/src/main/java/com/ard/framework/web/service/TokenService.java
index 5250cf1..682a1ab 100644
--- a/ard-framework/src/main/java/com/ard/framework/web/service/TokenService.java
+++ b/ard-framework/src/main/java/com/ard/framework/web/service/TokenService.java
@@ -26,7 +26,7 @@
/**
* token验证处理
*
- * @author ruoyi
+ * @author ard
*/
@Component
public class TokenService
@@ -44,6 +44,10 @@
// 令牌有效期(默认30分钟)
@Value("${token.expireTime}")
private int expireTime;
+
+ // 是否允许账户多终端同时登录(true允许 false不允许)
+ @Value("${token.soloLogin}")
+ private boolean soloLogin;
protected static final long MILLIS_SECOND = 1000;
@@ -96,12 +100,17 @@
/**
* 删除用户身份信息
*/
- public void delLoginUser(String token)
+ public void delLoginUser(String token, Long userId)
{
if (StringUtils.isNotEmpty(token))
{
String userKey = getTokenKey(token);
redisCache.deleteObject(userKey);
+ }
+ if (!soloLogin && StringUtils.isNotNull(userId))
+ {
+ String userIdKey = getUserIdKey(userId);
+ redisCache.deleteObject(userIdKey);
}
}
@@ -151,6 +160,12 @@
// 根据uuid将loginUser缓存
String userKey = getTokenKey(loginUser.getToken());
redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
+ if (!soloLogin)
+ {
+ // 缓存用户唯一标识,防止同一帐号,同时登录
+ String userIdKey = getUserIdKey(loginUser.getUser().getUserId());
+ redisCache.setCacheObject(userIdKey, userKey, expireTime, TimeUnit.MINUTES);
+ }
}
/**
@@ -228,4 +243,17 @@
{
return CacheConstants.LOGIN_TOKEN_KEY + uuid;
}
+
+ private String getUserIdKey(Long userId)
+ {
+ return CacheConstants.LOGIN_USERID_KEY + userId;
+ }
+
+ public LoginUser getLoginUserByUserId(Long userId) {
+ String userIdKey = getUserIdKey(userId);
+ String tokenKey = redisCache.getCacheObject(userIdKey);
+ if (tokenKey == null) return null;
+ return redisCache.getCacheObject(tokenKey);
+ }
+
}
--
Gitblit v1.9.3