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<UpgradeRecord> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("status", SystemConstant.ISSUE_UNDERWAY);
|
List<UpgradeRecord> list = upgradeRecordMapper.selectList(queryWrapper);
|
for (UpgradeRecord upgradeRecord : list) {
|
addUpgradeRecord(upgradeRecord);
|
}
|
}
|
|
/**
|
* 升级下发记录
|
*/
|
private static final Map<String, UpgradeRecord> UPGRADE_RECORD_MAP = new ConcurrentHashMap<>();
|
|
public static List<UpgradeRecord> getUpgradeRecord(String deviceSn) {
|
List<UpgradeRecord> list = new ArrayList<>();
|
for (Map.Entry<String, UpgradeRecord> entry:UPGRADE_RECORD_MAP.entrySet()) {
|
String key = entry.getKey();
|
if (key.startsWith(deviceSn+"%")){
|
list.add(entry.getValue());
|
}
|
}
|
return list;
|
}
|
|
public static Collection<UpgradeRecord> 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());
|
}
|
}
|