xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/map/XpStationClientFallbackFactory.java
@@ -6,6 +6,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.openfeign.FallbackFactory; import java.util.List; @Slf4j public class XpStationClientFallbackFactory implements FallbackFactory<XpStationClient> { @Override @@ -17,6 +19,12 @@ log.error("根据id获取数据失败", cause); return R.fail("根据id获取数据失败"); } @Override public R<List<XpStation>> getXpStationByElectronicId(Long electronicId) { log.error("根据围栏id获取场站失败:" + cause.getMessage()); return R.fail("根据围栏id获取场站失败"); } }; } } xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/map/XpStationClient.java
@@ -7,6 +7,10 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @FeignClient(contextId = "XpStationClient", value = ServiceNameConstantsEnum.XP_MAP_SERVICE, fallbackFactory = XpStationClientFallbackFactory.class) public interface XpStationClient { @@ -18,4 +22,12 @@ */ @GetMapping("/logan/inner/v1/xpStation/getXpStationById/{id}") R<XpStation> getXpStationById(@PathVariable("id") Long id); /** * 根据围栏id获取场站 * @param electronicId * @return */ @PostMapping("/logan/inner/v1/xpStation/getXpStationByElectronicId") R<List<XpStation>> getXpStationByElectronicId(@RequestParam("electronicId") Long electronicId); } xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/operation/ElectronicFenceDetailVo.java
@@ -2,6 +2,8 @@ import com.xiaopeng.api.model.operation.XpElectronicFence; import com.xiaopeng.api.model.operation.XpElectronicFenceArea; import com.xiaopeng.api.model.operation.XpPoint; import com.xiaopeng.api.model.operation.XpStation; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -14,8 +16,12 @@ @ApiModelProperty("电子围栏区域列表") private List<XpElectronicFenceArea> electronicFenceAreas; @ApiModelProperty("点位列表") private List<XpPoint> xpPointList; @ApiModelProperty("点位数量") private Numbers pointsNumbers; @ApiModelProperty("场站列表") private List<XpStation> xpStationList; @ApiModelProperty("场站数量") private Numbers stationNumbers; @Data xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpStationController.java
@@ -1,12 +1,14 @@ package com.xiaopeng.map.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.xiaopeng.api.model.operation.XpStation; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.map.service.XpStationService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * 场站 @@ -30,4 +32,17 @@ return R.ok(xpStation); } /** * 根据围栏id获取场站 * @param electronicId * @return */ @PostMapping("/logan/inner/v1/xpStation/getXpStationByElectronicId") public R<List<XpStation>> getXpStationByElectronicId(@RequestParam("electronicId") Long electronicId){ List<XpStation> xpStationList = xpStationService.list(new QueryWrapper<XpStation>().eq("electronic_id", electronicId)); return R.ok(xpStationList); } } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpElectronicFenceController.java
@@ -2,13 +2,13 @@ import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.xiaopeng.api.dto.operation.ElectronicFenceAddDto; import com.xiaopeng.api.dto.operation.ElectronicFenceAreaUpdateStatusDto; import com.xiaopeng.api.dto.operation.ElectronicFenceUpdateDto; import com.xiaopeng.api.model.operation.XpElectronicFence; import com.xiaopeng.api.model.operation.XpElectronicFenceArea; import com.xiaopeng.api.model.operation.XpRegion; import com.xiaopeng.api.feignClient.map.XpStationClient; import com.xiaopeng.api.model.operation.*; import com.xiaopeng.api.query.operation.ElectronicPageListQuery; import com.xiaopeng.api.vo.operation.ElectronicFenceDetailVo; import com.xiaopeng.common.core.domain.R; @@ -18,6 +18,7 @@ import com.xiaopeng.operation.constant.I18nKeyConstant; import com.xiaopeng.operation.service.IXpElectronicFenceAreaService; import com.xiaopeng.operation.service.IXpElectronicFenceService; import com.xiaopeng.operation.service.IXpPointService; import com.xiaopeng.operation.service.XpRegionService; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -31,6 +32,7 @@ import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; /** * <p> @@ -55,6 +57,15 @@ @Resource private XpRegionService regionService; @Resource private IXpPointService xpPointService; @Resource private XpStationClient stationClient; /** * 查询省市管理 */ @@ -127,6 +138,11 @@ List<XpElectronicFenceArea> electronicFenceAreaList = xpElectronicFenceAreaService.lambdaQuery().eq(XpElectronicFenceArea::getElectronicId, id) .list(); res.setElectronicFenceAreas(electronicFenceAreaList); List<Long> longList = electronicFenceAreaList.stream().map(XpElectronicFenceArea::getId).collect(Collectors.toList()); List<XpPoint> xpPointList = xpPointService.list(new QueryWrapper<XpPoint>().in("electronic_area_id", longList)); res.setXpPointList(xpPointList); List<XpStation> data = stationClient.getXpStationByElectronicId(id).getData(); res.setXpStationList(data); return R.ok(res); }