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 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); } }