puzhibing
2026-03-14 a6d4e647711dc2131cd7477d4e817cd7c4509eed
Merge remote-tracking branch 'origin/master'
8个文件已修改
97 ■■■■■ 已修改文件
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpRegionController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/XpRegionService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpRegionServiceImpl.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/vo/NearestVo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/mapper/XpOrderMapper.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/resources/mapper/order/XpOrderMapper.xml 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>