From 3207399bcdc24d13874e8bd9f27070a928ccc77b Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期四, 02 四月 2026 18:47:45 +0800
Subject: [PATCH] fix(management):管理后台问题修改
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderEvaluateServiceImpl.java | 72 +++++++++++++++++++++---------------
1 files changed, 42 insertions(+), 30 deletions(-)
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderEvaluateServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderEvaluateServiceImpl.java
index a433a02..9aabf99 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderEvaluateServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderEvaluateServiceImpl.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.api.dto.account.UcUserInfo;
import com.xiaopeng.api.feignClient.account.UserResourcesClient;
@@ -54,6 +55,31 @@
@Override
public PageInfo<OrderEvaluatePageVO> pageList(OrderEvaluatePageQuery query) {
+ List<Long> vehicleIdsFilter = null;
+ if (StringUtils.isNotBlank(query.getPlateNumber())) {
+ R<List<XpVehicle>> vehicleResult = xpVehicleClient.listByPlateNumber(query.getPlateNumber());
+ if (vehicleResult == null || CollectionUtils.isEmpty(vehicleResult.getData())) {
+ return buildEmptyEvaluatePage(query);
+ }
+ vehicleIdsFilter = vehicleResult.getData().stream()
+ .map(XpVehicle::getId)
+ .filter(Objects::nonNull)
+ .distinct()
+ .collect(Collectors.toList());
+ if (CollectionUtils.isEmpty(vehicleIdsFilter)) {
+ return buildEmptyEvaluatePage(query);
+ }
+ }
+
+ Long appUserIdFilter = null;
+ if (StringUtils.isNotBlank(query.getPhoneNumber())) {
+ UcUserInfo userByMobile = userResourcesClient.getUserByMobile(query.getPhoneNumber());
+ if (userByMobile == null || userByMobile.getUid() == null) {
+ return buildEmptyEvaluatePage(query);
+ }
+ appUserIdFilter = userByMobile.getUid();
+ }
+
// 1. 构建查询条件
LambdaQueryWrapper<XpOrderEvaluate> wrapper = new LambdaQueryWrapper<>();
@@ -70,19 +96,22 @@
if (Objects.nonNull(query.getOrderRating())) {
wrapper.eq(XpOrderEvaluate::getOrderRating, query.getOrderRating());
}
+ if (!CollectionUtils.isEmpty(vehicleIdsFilter)) {
+ wrapper.in(XpOrderEvaluate::getVehicleId, vehicleIdsFilter);
+ }
+ if (Objects.nonNull(appUserIdFilter)) {
+ wrapper.eq(XpOrderEvaluate::getAppUserId, appUserIdFilter);
+ }
// 排序:按评价时间降序
wrapper.orderByDesc(XpOrderEvaluate::getEvaluateTime);
// 2. 分页查询
PageInfo<XpOrderEvaluate> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
- PageInfo<XpOrderEvaluate> evaluatePage = this.page(pageInfo, wrapper);
+ Page<XpOrderEvaluate> evaluatePage = this.page(pageInfo, wrapper);
if (CollectionUtils.isEmpty(evaluatePage.getRecords())) {
- PageInfo<OrderEvaluatePageVO> resultPage = new PageInfo<>(query.getPageNum(), query.getPageSize());
- resultPage.setTotal(0L);
- resultPage.setRecords(new ArrayList<>());
- return resultPage;
+ return buildEmptyEvaluatePage(query);
}
// 3. 收集关联ID
@@ -107,16 +136,22 @@
Map<Long, XpVehicle> vehicleMap = batchGetVehicles(vehicleIds);
Map<Long, XpOrder> orderMap = batchGetOrders(orderIds);
- // 5. 根据查询条件过滤(手机号、车牌号)
+ // 5. 组装 VO
List<OrderEvaluatePageVO> voList = evaluatePage.getRecords().stream()
.map(evaluate -> convertToPageVO(evaluate, userInfoMap, vehicleMap, orderMap))
- .filter(vo -> filterByQuery(vo, query))
.collect(Collectors.toList());
// 6. 返回分页结果
PageInfo<OrderEvaluatePageVO> resultPage = new PageInfo<>(query.getPageNum(), query.getPageSize());
resultPage.setTotal(evaluatePage.getTotal());
resultPage.setRecords(voList);
+ return resultPage;
+ }
+
+ private PageInfo<OrderEvaluatePageVO> buildEmptyEvaluatePage(OrderEvaluatePageQuery query) {
+ PageInfo<OrderEvaluatePageVO> resultPage = new PageInfo<>(query.getPageNum(), query.getPageSize());
+ resultPage.setTotal(0L);
+ resultPage.setRecords(new ArrayList<>());
return resultPage;
}
@@ -225,28 +260,5 @@
}
return vo;
- }
-
- /**
- * 根据查询条件过滤
- */
- private boolean filterByQuery(OrderEvaluatePageVO vo, OrderEvaluatePageQuery query) {
- // 手机号过滤
- if (StringUtils.isNotBlank(query.getPhoneNumber())) {
- if (StringUtils.isBlank(vo.getPhoneNumber()) ||
- !vo.getPhoneNumber().contains(query.getPhoneNumber())) {
- return false;
- }
- }
-
- // 车牌号过滤
- if (StringUtils.isNotBlank(query.getPlateNumber())) {
- if (StringUtils.isBlank(vo.getPlateNumber()) ||
- !vo.getPlateNumber().contains(query.getPlateNumber())) {
- return false;
- }
- }
-
- return true;
}
}
--
Gitblit v1.7.1