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