This commit is contained in:
dute7liang
2024-01-26 22:44:14 +08:00
parent 97ba46f6e4
commit 35638b8664
29 changed files with 457 additions and 59 deletions

View File

@@ -0,0 +1,36 @@
package com.ruoyi.framework;
import com.ruoyi.common.constant.CacheConstants;
import org.redisson.api.RSet;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.time.Duration;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Set;
@Component
public class OnlineTodayCache {
@Autowired
private RedissonClient redissonClient;
private String getKey(){
String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
return String.format(CacheConstants.ONLINE_TODAY_TOKEN_KEY,today);
}
public void addOnlineUserId(Long userId){
RSet<Long> set = redissonClient.getSet(getKey());
set.add(userId);
set.expire(Duration.ofDays(1));
}
public Set<Long> getAllOnlineToday(){
RSet<Long> set = redissonClient.getSet(getKey());
return set.readAll();
}
}

View File

@@ -13,6 +13,7 @@ import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.ip.AddressUtils;
import com.ruoyi.common.utils.redis.RedisUtils;
import com.ruoyi.framework.OnlineTodayCache;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -30,6 +31,7 @@ import java.time.Duration;
public class UserActionListener implements SaTokenListener {
private final SaTokenConfig tokenConfig;
private final OnlineTodayCache onlineTodayCache;
/**
* 每次登录时触发
@@ -76,6 +78,7 @@ public class UserActionListener implements SaTokenListener {
} else {
RedisUtils.setCacheObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue, dto, Duration.ofSeconds(tokenConfig.getTimeout()));
}
onlineTodayCache.addOnlineUserId(user.getUserId());
}
}