init
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user