From 98d664b2ebd508d170283312eccdc99b7d6a40ef Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 01 五月 2026 01:32:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.0' into 1.0
---
xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/webSocket/handler/PositionMsgHandler.java | 49 +++++++++++++++++++++++++++----------------------
1 files changed, 27 insertions(+), 22 deletions(-)
diff --git a/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/webSocket/handler/PositionMsgHandler.java b/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/webSocket/handler/PositionMsgHandler.java
index 86280fb..d272007 100644
--- a/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/webSocket/handler/PositionMsgHandler.java
+++ b/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/webSocket/handler/PositionMsgHandler.java
@@ -1,5 +1,7 @@
package com.xiaopeng.pushMessage.webSocket.handler;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.xiaopeng.api.dto.account.XpOperationsUserPositionDTO;
@@ -16,6 +18,10 @@
@Slf4j
public class PositionMsgHandler implements BusinessMsgHandler{
+ @Autowired
+ private MongoTemplate mongoTemplate;
+
+
@Override
public String getMessageType() {
return "position";
@@ -23,36 +29,35 @@
@Override
public void handle(String uid, String msg) {
- XpOperationsUserPositionDTO xpOperationsUserPositionDTO;
- try {
- xpOperationsUserPositionDTO = om.readValue(msg, XpOperationsUserPositionDTO.class);
- } catch (JsonProcessingException e) {
- throw new RuntimeException(e);
- }
- if (null != xpOperationsUserPositionDTO) {
- xpOperationsUserPositionDTO.setId(Long.parseLong(uid));
- saveToMongo(xpOperationsUserPositionDTO);
+ JSONObject jsonObject = JSON.parseObject(msg);
+ if (null != jsonObject) {
+ saveToMongo(uid, jsonObject);
}
}
- @Autowired ObjectMapper om;
- @Autowired MongoTemplate mongoTemplate;
- private void saveToMongo(XpOperationsUserPositionDTO dto) {
- XpOperationsUserPositionDTO vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("id").is(dto.getId())), XpOperationsUserPositionDTO.class);
+ private void saveToMongo(String uid, JSONObject jsonObject) {
+ Double latitude = jsonObject.getDouble("latitude");
+ Double longitude = jsonObject.getDouble("longitude");
+ XpOperationsUserPositionDTO vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("id").is(uid)), XpOperationsUserPositionDTO.class);
if (null == vehiclePosition) {
- GeoJsonPoint location = new GeoJsonPoint(dto.getLongitude(), dto.getLatitude());
- dto.setLocation(location);
- mongoTemplate.save(dto);
+ vehiclePosition = new XpOperationsUserPositionDTO();
+ GeoJsonPoint location = new GeoJsonPoint(longitude, latitude);
+ vehiclePosition.setLocation(location);
+ vehiclePosition.setId(Long.parseLong(uid));
+ vehiclePosition.setLatitude(latitude);
+ vehiclePosition.setLongitude(longitude);
+ vehiclePosition.setLocation(location);
+ mongoTemplate.save(vehiclePosition);
}else{
Update update = new Update()
- .set("id",dto.getId())
- .set("latitude", dto.getLatitude())
- .set("longitude", dto.getLongitude());
- double[] location = {dto.getLongitude(), dto.getLatitude()};
+ .set("id", Long.parseLong(uid))
+ .set("latitude", latitude)
+ .set("longitude", longitude);
+ GeoJsonPoint location = new GeoJsonPoint(longitude, latitude);
update.set("location", location);
- mongoTemplate.updateFirst(new Query(Criteria.where("id").is(dto.getId())), update, XpOperationsUserPositionDTO.class);
+ mongoTemplate.updateFirst(new Query(Criteria.where("id").is(Long.parseLong(uid))), update, XpOperationsUserPositionDTO.class);
}
- log.info("保存位置信息成功:id:{},longitude:{},latitude:{}", dto.getId(), dto.getLongitude(),dto.getLatitude());
+ log.info("保存位置信息成功:id:{},longitude:{},latitude:{}", uid, longitude, latitude);
}
}
--
Gitblit v1.7.1