package org.ruoyi.system.util;
|
|
import java.util.LinkedHashMap;
|
|
/**
|
* 微信二维码缓存工具类
|
*
|
* @author https://www.wdbyte.com
|
*/
|
public class WeixinQrCodeCacheUtil {
|
private static long MAX_CACHE_SIZE = 10000;
|
private static LinkedHashMap<String, String> QR_CODE_TICKET_MAP = new LinkedHashMap<>();
|
|
/**
|
* 增加一个 Ticket
|
* 首次 put:value 为 ""
|
* 再次 put: value 有 openId,若openId已经存在,则已被扫码
|
*
|
* @param key
|
* @param value
|
*/
|
public synchronized static void put(String key, String value) {
|
QR_CODE_TICKET_MAP.put(key, value);
|
if (QR_CODE_TICKET_MAP.size() > MAX_CACHE_SIZE) {
|
String first = QR_CODE_TICKET_MAP.keySet().stream().findFirst().get();
|
QR_CODE_TICKET_MAP.remove(first);
|
}
|
}
|
|
public synchronized static String get(String key) {
|
return QR_CODE_TICKET_MAP.remove(key);
|
}
|
|
}
|