package com.kexue.skills.common;


import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;

import java.util.concurrent.TimeUnit;
/**
 * @author 维哥
 * @Description 缓存管理器
 * @create 2025-02-25 15:25
 */
public class CacheManager {

    // 创建一个缓存实例，设置缓存时间为180分钟
    private static final Cache<String, String> tokenCache = CacheBuilder.newBuilder()
            .expireAfterWrite(3, TimeUnit.HOURS)
            .build();

    // 静态方法，用于将token放入缓存
    public static void putTokenToCache(String username, String token) {
        tokenCache.put(username, token);
    }

    // 静态方法，用于从缓存中获取token
    public static String getTokenFromCache(String username) {
        return tokenCache.getIfPresent(username);
    }

    // 静态方法，用于从缓存中移除token
    public static void removeTokenFromCache(String username) {
        tokenCache.invalidate(username);
    }

    // 静态方法，用于检查token是否有效
    public static boolean isTokenValid(String token) {
        return tokenCache.asMap().containsValue(token);
    }

    // 新增静态方法，用于从缓存中通过token获取username
    public static String getUsernameFromToken(String token) {
        for (String key : tokenCache.asMap().keySet()) {
            if (token.equals(tokenCache.getIfPresent(key))) {
                return key;
            }
        }
        return null;
    }

    //查看缓存剩余时间

}