From 124045dda668eeaa2b7a0648776d9b7b7a12ca06 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 11 三月 2026 16:46:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 59 +++++++++++++++++++++++++++++++++--------------------------
1 files changed, 33 insertions(+), 26 deletions(-)
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
index 587c6aa..d9a4138 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -412,6 +412,7 @@
wrapper.orderByDesc(XpOrder::getCreateTime);
return wrapper;
}
+
private LambdaQueryWrapper<XpOrder> buildExcelQueryWrapper(XpOrderExcelQuery query) {
LambdaQueryWrapper<XpOrder> wrapper = new LambdaQueryWrapper<>();
@@ -548,7 +549,7 @@
vo.setStatus(order.getStatus());
// 用户信息
- if (Objects.nonNull(order.getAppUserId()) && userInfoMap !=null && userInfoMap.containsKey(order.getAppUserId().toString())) {
+ if (Objects.nonNull(order.getAppUserId()) && userInfoMap != null && userInfoMap.containsKey(order.getAppUserId().toString())) {
UcUserInfo userInfo = userInfoMap.get(order.getAppUserId().toString());
vo.setNickName(userInfo.getNickName());
vo.setPhoneNumber(userInfo.getMobile());
@@ -574,15 +575,15 @@
* 取消订单
*/
private void cancelOrder(XpOrder order) {
- redisService.removeByPattern(order.getQueueName(),order.getOrderNumber());
+ redisService.removeByPattern(order.getQueueName(), order.getOrderNumber());
//判断还原车辆状态
- if(null == order.getVehicleId()){
+ if (null == order.getVehicleId()) {
Object cacheObject1 = redisService.getCacheObject("CREATE_ORDER:" + order.getId().toString());
- if(null != cacheObject1){
+ if (null != cacheObject1) {
com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSON.parseObject(cacheObject1.toString());
String vin = jsonObject.getString("vin");
XpVehicle vehicle = xpVehicleClient.findByVehicleVin(vin).getData();
- if(null != vehicle && 0 != vehicle.getState()){
+ if (null != vehicle && 0 != vehicle.getState()) {
vehicle.setState(0);
xpVehicleClient.updateVehicleById(vehicle);
}
@@ -625,7 +626,7 @@
}
//还原车辆状态
- if(1 == xpVehicle.getState()){
+ if (1 == xpVehicle.getState()) {
xpVehicleClient.updateVehicleStatus(new UpdateVehicleStateDto(xpVehicle.getVehicleVin(), 0));
}
@@ -1086,7 +1087,7 @@
@Transactional
public void cancelOrder(Long orderId, String uid) {
XpOrder order = this.getById(orderId);
- if(order.getStatus()==0){
+ if (order.getStatus() == 0) {
return;
}
if (order == null) {
@@ -1100,17 +1101,17 @@
}
try {
- redisService.removeByPattern(order.getQueueName(),order.getOrderNumber());
- }catch (Exception e){
+ redisService.removeByPattern(order.getQueueName(), order.getOrderNumber());
+ } catch (Exception e) {
}
//判断还原车辆状态
- if(null == order.getVehicleId()){
+ if (null == order.getVehicleId()) {
Object cacheObject1 = redisService.getCacheObject("CREATE_ORDER:" + order.getId().toString());
- if(null != cacheObject1){
+ if (null != cacheObject1) {
com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSON.parseObject(cacheObject1.toString());
String vin = jsonObject.getString("vin");
XpVehicle vehicle = xpVehicleClient.findByVehicleVin(vin).getData();
- if(null != vehicle && 0 != vehicle.getState()){
+ if (null != vehicle && 0 != vehicle.getState()) {
vehicle.setState(0);
xpVehicleClient.updateVehicleById(vehicle);
}
@@ -1123,7 +1124,7 @@
baseMapper.updateById(order);
return;
}
- if(order.getStatus()==1){
+ if (order.getStatus() == 1) {
order.setStatus(0);
baseMapper.updateById(order);
return;
@@ -1158,7 +1159,7 @@
xpOrderCancel.setCancelReason("用户取消订单");
xpOrderCancelService.save(xpOrderCancel);
//还原车辆状态
- if(1 == xpVehicle.getState()){
+ if (1 == xpVehicle.getState()) {
xpVehicleClient.updateVehicleStatus(new UpdateVehicleStateDto(xpVehicle.getVehicleVin(), 0));
}
@@ -1218,7 +1219,7 @@
xpOrderCancel.setCreateTime(LocalDateTime.now());
xpOrderCancelService.save(xpOrderCancel);
- redisService.removeByPattern(order.getQueueName(),order.getOrderNumber());
+ redisService.removeByPattern(order.getQueueName(), order.getOrderNumber());
R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(order.getVehicleId());
@@ -1373,6 +1374,11 @@
order.setStatus(8);
order.setAppUserId(null);
order.setTripEnd(LocalDateTime.now());
+
+
+ long minutes = Duration.between(order.getBoardingTime(), order.getTripEnd()).toMinutes();
+ order.setDuration((double) minutes);
+
// order.setMileageKilometers(80.0);
baseMapper.updateById(order);
// 解绑用户与车辆关系
@@ -1736,13 +1742,13 @@
return;
}
- if(vehicle.getState()!=0 || vehicle.getOperatingStatus()!=1){
+ if (vehicle.getState() != 0 || vehicle.getOperatingStatus() != 1) {
return;
}
// 判断是否有计划
R<XpCruisePlanVehicle> xpCruisePlanR = xpCruisePlanClient.getCruisePlan(vehicle.getId());
- if(xpCruisePlanR==null || xpCruisePlanR.getData()==null){
+ if (xpCruisePlanR == null || xpCruisePlanR.getData() == null) {
return;
}
@@ -2201,17 +2207,16 @@
OrderTrajectory.class
);
orderDetailVo.setTrajectories(trajectories);
- if (order.getTripBegin() != null && order.getTripEnd() != null) {
+ if (order.getBoardingTime() != null && order.getTripEnd() != null) {
// 计算两个时间相差多少分钟
- long minutesDifference = Duration.between(order.getTripBegin(), order.getTripEnd()).toMinutes();
- orderDetailVo.setOrderTime(minutesDifference);
+ double exactMinutes = Duration.between(order.getBoardingTime(), order.getTripEnd()).toMillis() / (1000.0 * 60);
+ exactMinutes = new BigDecimal(exactMinutes).setScale(2, RoundingMode.HALF_UP).doubleValue();
+ orderDetailVo.setOrderTime(exactMinutes);
} else {
- orderDetailVo.setOrderTime(0l);
+ orderDetailVo.setOrderTime(0.0);
}
- if (order.getStartMileage() != null) {
- orderDetailVo.setTotalMileage(order.getStartMileage() + (order.getMileageKilometers() != null ? order.getMileageKilometers() : 0D));
+ orderDetailVo.setTotalMileage(order.getMileageKilometers() != null ? new BigDecimal(order.getMileageKilometers()).setScale(2, RoundingMode.HALF_UP).doubleValue() : 0D);
- }
return orderDetailVo;
}
@@ -2271,7 +2276,7 @@
// value 订单Id_经纬度_状态_用户id_订单编号_距离_时间
try {
redisService.popFirstElement(order.getQueueName());
- }catch (Exception e){
+ } catch (Exception e) {
log.error("Redis弹出队列元素出错");
}
XpGeoQueryEntity xpGeoQueryEntity = new XpGeoQueryEntity();
@@ -2384,7 +2389,9 @@
if (xpOrder.getVehicleId() != null) {
R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(xpOrder.getVehicleId());
- xpOrderDetailVO.setPlateNumber(xpVehicleR.getData().getPlateNumber());
+ XpVehicle vehicle = xpVehicleR.getData();
+ xpOrderDetailVO.setPlateNumber(vehicle.getPlateNumber());
+ xpOrderDetailVO.setVehiclePictures(vehicle.getVehiclePictures());
}
return xpOrderDetailVO;
--
Gitblit v1.7.1