From 504fbba046aa8b3acce0af82f6488356eafcd967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A9=E6=96=87=E9=9D=99WWW?= <15144434+wen-wenjing-www@user.noreply.gitee.com> Date: Tue, 19 Aug 2025 12:46:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E8=8E=B7=E5=8F=96=E6=99=AF?= =?UTF-8?q?=E5=8C=BA=E5=90=8D=E6=97=B6=E5=87=BA=E7=8E=B0=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E6=99=AF=E5=8C=BA=E5=90=8D=E5=AF=B9=E5=BA=94=E5=A4=9A=E4=B8=AA?= =?UTF-8?q?id=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/order/domain/dto/RouteStat.java | 1 + .../impl/OrderAnalysisServiceImpl.java | 36 ++++++++++++++----- .../impl/OrderDetailAnalysisServiceImpl.java | 5 +-- .../modules/system/mapper/EmScenicMapper.java | 7 ++-- .../main/resources/mapper/EmScenicMapper.xml | 32 +++++++++++++---- 5 files changed, 62 insertions(+), 19 deletions(-) diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/domain/dto/RouteStat.java b/aircraft-system/src/main/java/com/aircraft/modules/order/domain/dto/RouteStat.java index ff932d6..1fad8ca 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/domain/dto/RouteStat.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/domain/dto/RouteStat.java @@ -4,6 +4,7 @@ import lombok.Data; @Data public class RouteStat { + private Long scenicId; private String scenicName;//景区名称,通过路线id获得景区id private String routeName;//路线名称 private Long routeId ;//路线id diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderAnalysisServiceImpl.java b/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderAnalysisServiceImpl.java index 71bffcf..c47095e 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderAnalysisServiceImpl.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderAnalysisServiceImpl.java @@ -447,16 +447,35 @@ public class OrderAnalysisServiceImpl implements OrderAnalysisService { .collect(Collectors.toMap(CpRoute::getId, route -> route)); // 提取所有景区ID - Set scenicIds = routes.stream() + List scenicIds = routes.stream() .map(CpRoute::getScenicId) .filter(Objects::nonNull) - .collect(Collectors.toSet()); + .collect(Collectors.toList()); - // 批量查询所有景区名称确保不为空 -// Map scenicNameMap = emScenicMapper.getScenicNameMap(new ArrayList<>(scenicIds)); - Map scenicNameMap = Collections.emptyMap(); - if (!scenicIds.isEmpty()) { - scenicNameMap = emScenicMapper.getScenicNameMap(new ArrayList<>(scenicIds)); + // 获取景区id和景区名对应的map + List> scenicList = emScenicMapper.getScenicNameMap(scenicIds); + // 处理空集合(MyBatis无结果时返回空List) + if (scenicList == null) { + scenicList = new ArrayList<>(); + } + + // 转换为 Map(ID为键,名称为值) + Map scenicNameMap = new HashMap<>(); + for (Map item : scenicList) { // 泛型修正为 Map + // 1. 获取scenicId:先转Number(兼容Integer/Long),再转Long + Number idNum = (Number) item.get("scenicId"); // 键是字符串"scenicId"(与XML别名一致) + Long scenicId = null; + if (idNum != null) { + scenicId = idNum.longValue(); // 安全转为Long,避免类型错误 + } + + // 2. 获取scenicName:直接转为String(与XML别名"scenicName"一致) + String scenicName = (String) item.get("scenicName"); + + // 3. 非空校验后存入(避免存null键/值,导致后续getOrDefault失效) + if (scenicId != null && scenicName != null) { + scenicNameMap.put(scenicId, scenicName); + } } // 组装结果 @@ -474,6 +493,8 @@ public class OrderAnalysisServiceImpl implements OrderAnalysisService { Long scenicId = route.getScenicId(); if (scenicId != null) { + //wenti + stat.setScenicId(scenicId); stat.setScenicName(scenicNameMap.getOrDefault(scenicId, "未知景区")); } else { stat.setScenicName("未知景区"); @@ -486,7 +507,6 @@ public class OrderAnalysisServiceImpl implements OrderAnalysisService { routeDistribution.add(stat); } } - return routeDistribution; } /** diff --git a/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderDetailAnalysisServiceImpl.java b/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderDetailAnalysisServiceImpl.java index c480586..2fe34b5 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderDetailAnalysisServiceImpl.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/order/service/impl/OrderDetailAnalysisServiceImpl.java @@ -518,10 +518,10 @@ public class OrderDetailAnalysisServiceImpl implements OrderDetailAnalysisServic .collect(Collectors.toMap(CpRoute::getId, route -> route)); // 提取所有景区ID(用于批量查询景区名称) - Set scenicIds = routes.stream() + List scenicIds = routes.stream() .map(CpRoute::getScenicId) .filter(Objects::nonNull) - .collect(Collectors.toSet()); + .collect(Collectors.toList()); // 批量查询景区名称 Map scenicNameMap = new HashMap<>(); @@ -545,6 +545,7 @@ public class OrderDetailAnalysisServiceImpl implements OrderDetailAnalysisServic stat.setRouteName(route.getName()); Long scenicId = route.getScenicId(); if (scenicId != null) { + stat.setScenicId(scenicId); stat.setScenicName(scenicNameMap.getOrDefault(scenicId, "未知景区")); } else { stat.setScenicName("未知景区"); diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/mapper/EmScenicMapper.java b/aircraft-system/src/main/java/com/aircraft/modules/system/mapper/EmScenicMapper.java index f4d752c..6df3cfa 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/system/mapper/EmScenicMapper.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/mapper/EmScenicMapper.java @@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -35,9 +36,9 @@ public interface EmScenicMapper extends BaseMapper { * @return */ List countByAreaId(); + List> getScenicNameMap(@Param("scenicIds") List scenicIds); +// Map getScenicNameMap(ArrayList scenicIds); - Map getScenicNameMap(ArrayList scenicIds); - - @Select("SELECT * FROM em_scenic WHERE id IN (#{ids})") +// @Select("SELECT * FROM em_scenic WHERE id IN (#{ids})") List listByIds(ArrayList ids); } diff --git a/aircraft-system/src/main/resources/mapper/EmScenicMapper.xml b/aircraft-system/src/main/resources/mapper/EmScenicMapper.xml index 7decf90..b2b3e99 100644 --- a/aircraft-system/src/main/resources/mapper/EmScenicMapper.xml +++ b/aircraft-system/src/main/resources/mapper/EmScenicMapper.xml @@ -27,14 +27,34 @@ group by area_id + +