From afd6d4901599e9670d80f7e7e6327356ed501f30 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期六, 14 三月 2026 14:59:04 +0800
Subject: [PATCH] 修改bug
---
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRegionServiceImpl.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 48 insertions(+), 0 deletions(-)
diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRegionServiceImpl.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRegionServiceImpl.java
index 62a5857..e7ee40a 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRegionServiceImpl.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRegionServiceImpl.java
@@ -120,6 +120,54 @@
redisService.setCacheList(CacheConstants.XP_REGION_CASCADER, result);
return result;
}
+ @Override
+ public List<RegionCascaderVO> getRegionCascaderNoArea() {
+ List<Object> cacheList = redisService.getCacheList(CacheConstants.XP_REGION_CASCADER);
+ if (cacheList != null && !cacheList.isEmpty()) {
+ try {
+ return cacheList.stream()
+ .filter(item -> item instanceof RegionCascaderVO)
+ .map(item -> (RegionCascaderVO) item)
+ .collect(Collectors.toList());
+ } catch (ClassCastException e) {
+ redisService.deleteObject(CacheConstants.XP_REGION_CASCADER);
+ }
+ }
+
+ List<XpRegion> regionList = this.baseMapper.selectList(Wrappers.lambdaQuery(XpRegion.class));
+ if (regionList == null || regionList.isEmpty()) {
+ return Collections.emptyList();
+ }
+
+ List<XpOpenCity> openCityList = openCityService.list(Wrappers.lambdaQuery(XpOpenCity.class)
+ .eq(XpOpenCity::getStatus, 1));
+ Set<String> openCityCodeSet = openCityList.stream()
+ .map(XpOpenCity::getCityCode)
+ .filter(StringUtils::isNotBlank)
+ .collect(Collectors.toCollection(HashSet::new));
+ Set<String> openDistrictCodeSet = openCityList.stream()
+ .map(XpOpenCity::getDistrictCode)
+ .filter(StringUtils::isNotBlank)
+ .collect(Collectors.toCollection(HashSet::new));
+
+ Map<Long, List<XpRegion>> childrenMap = regionList.stream()
+ .collect(Collectors.groupingBy(region -> region.getParentId() == null ? 0L : region.getParentId()));
+ List<XpRegion> provinceList = childrenMap.getOrDefault(0L, Collections.emptyList()).stream()
+ .sorted(REGION_COMPARATOR)
+ .collect(Collectors.toList());
+ List<RegionCascaderVO> result = provinceList.stream()
+ .map(region -> buildRegionNode(region, childrenMap, openCityCodeSet, openDistrictCodeSet))
+ .collect(Collectors.toList());
+ for (RegionCascaderVO regionCascaderVO : result) {
+ List<RegionCascaderVO> children = regionCascaderVO.getChildren();
+ for (RegionCascaderVO children1 : children) {
+ children1.setChildren(null);
+ }
+ }
+
+ redisService.setCacheList(CacheConstants.XP_REGION_CASCADER, result);
+ return result;
+ }
private RegionCascaderVO buildRegionNode(XpRegion current,
Map<Long, List<XpRegion>> childrenMap,
--
Gitblit v1.7.1