车辆在线记录管理系统:实时监控用户直播和实训记录
/**
- 保存所有车辆(流动站)当前在线记录数据
-
- 当设备上线就会生成一条在线记录,添加到当前map
-
- 当设备离线(判定真正离线)就从当前map中移除
- key:流动站ID value:车辆实训记录实体类 */ private final Map<Long, CarRealRecord> allOnlineCarsRealRecordsMap = new ConcurrentHashMap<>();
/**
- 保存当前在线车辆(流动站)直播间,里面的观众进出直播间的数据
-
- 当用户进入直播间,就生成一条数据,通过流动站编号
-
- 当设备离线(判定真正离线)就从当前map中移除
- Map1 key:流动站ID value:Map2
- Map2 key:看直播用户编号 value:直播用户记录实体类集合
*/
private final Map<Long, Map<Long, List
>> allLiveUserRecordsMap = new ConcurrentHashMap<>();
/**
- 保存当前在线车辆(流动站)对应的用户实训记录
- Map1 key:流动站ID value:Map2
- Map2 key: 实训用户ID value:实训记录List
*/
private final Map<Long, Map<Long, List
>> allUserRealRecordsMap = new ConcurrentHashMap<>();
public void addOneLiveUserRecordMap(long userId, long moveId) {
Optional
carRealRecordOptional.ifPresent(carRealRecord -> {
Map<Long, List<LiveUserRecord>> liveUserRecordMap = allLiveUserRecordsMap.computeIfAbsent(moveId, k -> new ConcurrentHashMap<>());
List<LiveUserRecord> liveUserRecordList = liveUserRecordMap.computeIfAbsent(userId, k -> new ArrayList<>());
LiveUserRecord liveUserRecord = new LiveUserRecord();
liveUserRecord.setUserId(userId);
liveUserRecord.setStartDatetime(new Date());
liveUserRecord.setMobileDeviceId(moveId);
liveUserRecord.setCarRealRecordId(carRealRecord.getCarRealRecordId());
liveUserRecordList.add(liveUserRecord);
});
}
原文地址: https://www.cveoy.top/t/topic/qEzN 著作权归作者所有。请勿转载和采集!