package com.tievd.jyz.cache; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.tievd.jyz.constants.SystemConstant; import com.tievd.jyz.entity.UpgradeRecord; import com.tievd.jyz.mapper.UpgradeRecordMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import java.util.*; import java.util.concurrent.ConcurrentHashMap; /** * 资源缓存 * * @author yang'zhi'shui */ @Component public class ResourceCache { @Autowired private UpgradeRecordMapper upgradeRecordMapper; @PostConstruct public void init() { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("status", SystemConstant.ISSUE_UNDERWAY); List list = upgradeRecordMapper.selectList(queryWrapper); for (UpgradeRecord upgradeRecord : list) { addUpgradeRecord(upgradeRecord); } } /** * 升级下发记录 */ private static final Map UPGRADE_RECORD_MAP = new ConcurrentHashMap<>(); public static List getUpgradeRecord(String deviceSn) { List list = new ArrayList<>(); for (Map.Entry entry:UPGRADE_RECORD_MAP.entrySet()) { String key = entry.getKey(); if (key.startsWith(deviceSn+"%")){ list.add(entry.getValue()); } } return list; } public static Collection getUpgradeRecord() { return UPGRADE_RECORD_MAP.values(); } public static void addUpgradeRecord(UpgradeRecord upgradeRecord) { UPGRADE_RECORD_MAP.put(upgradeRecord.getDeviceSn() + "%" + upgradeRecord.getUpgradeId(), upgradeRecord); } public static void removeUpgradeRecord(UpgradeRecord upgradeRecord) { UPGRADE_RECORD_MAP.remove(upgradeRecord.getDeviceSn() + "%" + upgradeRecord.getUpgradeId()); } }