xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/account/XpOperationsUserPositionDTO.java
@@ -5,6 +5,9 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.geo.GeoJsonPoint; import org.springframework.data.mongodb.core.index.GeoSpatialIndexType; import org.springframework.data.mongodb.core.index.GeoSpatialIndexed; import org.springframework.data.mongodb.core.mapping.Document; /** @@ -27,8 +30,8 @@ @ApiModelProperty(value = "纬度") private double longitude; @ApiModelProperty(value = "地理位置信息,用于MongoDB地理空间查询 [经度, 纬度]") private double[] location; @GeoSpatialIndexed(type = GeoSpatialIndexType.GEO_2DSPHERE) private GeoJsonPoint location; @ApiModelProperty(value = "状态:0在线,1空闲,2上班中") private Integer status; xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/webSocket/handler/PositionMsgHandler.java
@@ -6,6 +6,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.geo.GeoJsonPoint; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; @@ -39,7 +40,7 @@ private void saveToMongo(XpOperationsUserPositionDTO dto) { XpOperationsUserPositionDTO vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("id").is(dto.getId())), XpOperationsUserPositionDTO.class); if (null == vehiclePosition) { double[] location = {dto.getLongitude(), dto.getLatitude()}; GeoJsonPoint location = new GeoJsonPoint(dto.getLongitude(), dto.getLatitude()); dto.setLocation(location); mongoTemplate.save(dto); }else{