xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpRegionController.java
@@ -110,4 +110,16 @@ public R<List<RegionCascaderVO>> getRegionCascader() { return R.ok(regionService.getRegionCascader()); } /** * 管理后台-省市区三级级联查询 */ @ApiOperation(value = "管理后台-省市区三级级联查询", tags = {"管理后台-省市区管理无区域"}) @GetMapping("/api/v1/region/cascaderNoArea") public R<List<RegionCascaderVO>> getRegionCascaderNoArea() { return R.ok(regionService.getRegionCascaderNoArea()); } } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/XpRegionService.java
@@ -29,4 +29,11 @@ */ List<RegionCascaderVO> getRegionCascader(); /** * 管理后台-省市区三级级联查询 不要区域 * @return 级联树 */ List<RegionCascaderVO> getRegionCascaderNoArea(); } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java
@@ -83,6 +83,12 @@ XpSystemSetting xpSystemSetting = xpSystemSettingMapper.selectOne(null); orderDistance = xpSystemSetting.getNearPointDistance(); } List<XpPoint> list1 = list(new LambdaQueryWrapper<XpPoint>().eq(XpPoint::getOperationStatus, 2).eq(XpPoint::getPointType,1).isNotNull(XpPoint::getElectronicAreaId)); if(list1.size()<2){ return new NearestVo(); } // 获取所有的站点信息 List<XpPoint> list = list(new LambdaQueryWrapper<XpPoint>().eq(XpPoint::getOperationStatus, 2).eq(XpPoint::getPointType,1).isNotNull(XpPoint::getElectronicAreaId) // 添加距离计算字段 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRegionServiceImpl.java
@@ -120,6 +120,61 @@ 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 { List<RegionCascaderVO> collect = cacheList.stream() .filter(item -> item instanceof RegionCascaderVO) .map(item -> (RegionCascaderVO) item) .collect(Collectors.toList()); for (RegionCascaderVO regionCascaderVO : collect) { List<RegionCascaderVO> children = regionCascaderVO.getChildren(); for (RegionCascaderVO children1 : children) { children1.setChildren(null); } } return collect; } 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, xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/vo/NearestVo.java
@@ -3,14 +3,15 @@ import io.swagger.annotations.ApiModel; import lombok.Data; import java.util.ArrayList; import java.util.List; @Data @ApiModel(value = "NearestNextVo对象", description = "附近站点vo") public class NearestVo { private List<NearestNextVo> points; private List<NearestNextVo> points=new ArrayList<>(); private Integer total; private Integer total=0; } xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/mapper/XpOrderMapper.java
@@ -64,10 +64,10 @@ */ List<XpOrderHistoryListVO> getHistoryOrderList(@Param("page") Page<XpOrderHistoryListVO> page, @Param("query") XpHistoryOrderListQuery query, @Param("uid") Long uid); List<XpOrder> getHistoryStartPoints(@Param("uid") Long uid); List<XpOrder> getHistoryStartPoints(@Param("uid") Long uid, @Param("areaId") Long areaId); List<XpOrder> getHistoryEndPoints(@Param("uid") Long uid); List<XpOrder> getHistoryEndPoints(@Param("uid") Long uid, @Param("areaId") Long areaId); } xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -1024,7 +1024,7 @@ @Override public List<XpHistoryStartPointsVo> getHistoryStartPoints(String uid, double lon, double lat,Long electronicAreaId) { // List<XpOrder> xpOrders = this.baseMapper.getHistoryStartPoints(Long.valueOf(uid)); List<XpOrder> xpOrders = this.baseMapper.getHistoryStartPoints(Long.valueOf(uid),electronicAreaId); // selectList(new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getAppUserId, Long.parseLong(uid)).orderByDesc(BaseModel::getCreateTime).last("LIMIT 10")); if (xpOrders.isEmpty()) { return Collections.emptyList(); @@ -1062,7 +1062,7 @@ @Override public List<XpHistoryEndPointsVo> getHistoryEndPoints(String uid, double lon, double lat,Long electronicAreaId) { // List<XpOrder> xpOrders = this.baseMapper.getHistoryEndPoints(Long.valueOf(uid)); List<XpOrder> xpOrders = this.baseMapper.getHistoryEndPoints(Long.valueOf(uid), electronicAreaId); // selectList(new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getAppUserId, Long.parseLong(uid)).orderByDesc(BaseModel::getCreateTime).last("LIMIT 10")); if (xpOrders.isEmpty()) { return Collections.emptyList(); xp-robotaxi-order-boot/src/main/resources/mapper/order/XpOrderMapper.xml
@@ -58,7 +58,7 @@ SELECT start_point_id, COUNT(*) AS num FROM xp_order where app_user_id = #{uid} FROM xp_order where app_user_id = #{uid} and xp_electronic_fence_area_id =#{areaId} GROUP BY start_point_id ORDER BY num DESC,create_time desc </select> @@ -67,7 +67,7 @@ SELECT end_point_id, COUNT(*) AS num FROM xp_order where app_user_id = #{uid} FROM xp_order where app_user_id = #{uid} and xp_electronic_fence_area_id =#{areaId} GROUP BY end_point_id ORDER BY num DESC,create_time desc </select>