优化:修改调整IotDataController中获取数据接口的返回逻辑
This commit is contained in:
parent
01085ecfd2
commit
4bdaca246c
|
|
@ -18,7 +18,7 @@ import java.util.concurrent.ConcurrentMap;
|
|||
public class IotDataController {
|
||||
|
||||
// 使用线程安全的Map临时存储最新数据
|
||||
private static final ConcurrentMap<String, GpsData> latestData = new ConcurrentHashMap<>();
|
||||
private static final ConcurrentMap<String, GpsData> LATEST_DATA = new ConcurrentHashMap<>();
|
||||
|
||||
// 接收MQTT数据的接口
|
||||
@PostMapping("/api/mqtt/data")
|
||||
|
|
@ -26,7 +26,7 @@ public class IotDataController {
|
|||
try {
|
||||
GpsData gpsData = parseMqttData(mqttData);
|
||||
// 存储最新数据,key可以用设备UUID
|
||||
latestData.put(gpsData.getUuid(), gpsData);
|
||||
LATEST_DATA.put(gpsData.getUuid(), gpsData);
|
||||
return "数据接收并存储成功";
|
||||
} catch (Exception e) {
|
||||
return "数据解析失败: " + e.getMessage();
|
||||
|
|
@ -35,13 +35,15 @@ public class IotDataController {
|
|||
|
||||
// 新增接口供HTML页面获取数据
|
||||
@GetMapping("/api/mqtt/latest-data")
|
||||
public AjaxResult getLatestData(@RequestParam(required = false) String uuid) {
|
||||
if (uuid == null && !latestData.isEmpty()) {
|
||||
public Object[] getLatestData(@RequestParam(required = false) String uuid) {
|
||||
if (uuid == null && !LATEST_DATA.isEmpty()) {
|
||||
// 如果没有指定UUID,返回第一个设备的数据
|
||||
GpsData data = latestData.values().iterator().next();
|
||||
return AjaxResult.success(data);
|
||||
//return LATEST_DATA.values().iterator().next();
|
||||
|
||||
// 如果没有指定UUID, 返回全部数据
|
||||
return LATEST_DATA.values().toArray();
|
||||
}
|
||||
return AjaxResult.warn("", latestData.get(uuid));
|
||||
return new GpsData[]{LATEST_DATA.get(uuid)};
|
||||
}
|
||||
|
||||
private GpsData parseMqttData(String rawData) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue