xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/order/XpPricingCardVo.java
@@ -44,4 +44,9 @@ @ApiModelProperty(value = "优惠券") private String coupon; @ApiModelProperty("系统优惠金额") private Double systemDiscount; } xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
@@ -287,7 +287,13 @@ } UserCouponVo userCouponVo = couponResult.getData(); if (userCouponVo != null) { Double money = userCouponVo.getMoney(); xpPricingCardVo.setCoupon(String.valueOf(userCouponVo.getMoney())); if(xpPricingCardVo.getTotalPrice()> money){ xpPricingCardVo.setSystemDiscount(xpPricingCardVo.getTotalPrice() - money); } } // 8. 构建响应对象 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskManagementController.java
@@ -156,7 +156,7 @@ return xpTaskService.taskDetail(id); } @ApiOperation(value = "查询车辆不分页列表") @PostMapping(" /listVehicle") @PostMapping("/listVehicle") public R<List<XpVehicle>> listVehicle() { List<XpVehicle> vehicles = xpVehicleClient.listVehicle().getData(); if (vehicles == null){ @@ -177,7 +177,7 @@ @ApiOperation(value = "事故类型列表", response = XpErrorType.class, tags = "管理后台-车辆管理-运营车辆管理") @GetMapping(" /errorTypeTreeList") @GetMapping("/errorTypeTreeList") public R<List<XpErrorType>> errorTypeTreeList() { return xpErrorTypeService.errorTypeList(); } xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java
@@ -59,8 +59,8 @@ */ @PostMapping("/add") @ApiOperation(value = "新增电子围栏") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R add(@Validated @RequestBody ElectronicFenceAddDto dto) { return xpElectronicClient.add(dto); @@ -74,8 +74,8 @@ @PostMapping("/updateStatus") @ResponseBody @ApiOperation(value = "修改状态") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R updateStatus(@RequestBody ElectronicFenceAreaUpdateStatusDto dto) { return xpElectronicClient.updateStatus(dto); @@ -97,8 +97,9 @@ @PostMapping("/edit") @ResponseBody @ApiOperation(value = "编辑电子围栏") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R edit(@Validated @RequestBody ElectronicFenceUpdateDto dto) { // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R edit(@Validated @RequestBody ElectronicFenceUpdateDto dto) { return xpElectronicClient.edit(dto); } @@ -107,8 +108,8 @@ */ @PostMapping("/copy") @ApiOperation(value = "复制电子围栏") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R<Long> copy(@RequestParam("id") Integer id) { return xpElectronicClient.copy(id); } xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpPointManagementController.java
@@ -121,8 +121,8 @@ @PostMapping("/add") @ApiOperation(value = "新增点位") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R add(@Validated @RequestBody PointAddDto pointAddDto) { xpPointClient.add(pointAddDto); return R.ok(); @@ -131,9 +131,9 @@ * 编辑点位 */ @PostMapping("/edit") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) @ApiOperation(value = "编辑点位") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R edit(@Validated@RequestBody PointUpdateDto pointAddDto) { xpPointClient.edit(pointAddDto); return R.ok(); @@ -142,10 +142,9 @@ * 批量删除点位 */ @GetMapping("/deletePoint") @ResponseBody @ApiOperation(value = "删除点位") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R deletePoint(@RequestParam("ids") String ids) { xpPointClient.deletePoint(ids); return R.ok(); @@ -165,8 +164,8 @@ @PostMapping("/enableDisable") @ResponseBody @ApiOperation(value = "启用/禁用") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R enableDisable(@RequestBody XpPointEnableDisableDto dto) { return xpPointClient.enableDisable(dto); } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpElectronicFenceController.java
@@ -84,8 +84,8 @@ */ @PostMapping("/add") @ApiOperation(value = "新增电子围栏") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R add(@Validated @RequestBody ElectronicFenceAddDto dto) { return xpElectronicFenceService.addElectronic(dto); } @@ -98,8 +98,8 @@ @PostMapping("/updateStatus") @ResponseBody @ApiOperation(value = "修改状态") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R updateStatus(@RequestBody ElectronicFenceAreaUpdateStatusDto dto) { XpElectronicFenceArea electronicFenceArea = xpElectronicFenceAreaService.getById(dto.getId()); if (electronicFenceArea == null) { @@ -138,8 +138,8 @@ */ @PostMapping("/edit") @ApiOperation(value = "编辑电子围栏") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R edit(@Validated @RequestBody ElectronicFenceUpdateDto dto) { return xpElectronicFenceService.editElectronic(dto); } @@ -149,8 +149,8 @@ */ @PostMapping("/copy") @ApiOperation(value = "复制电子围栏") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R<Long> copy(@RequestParam("id") Integer id) { XpElectronicFence electronicFence = xpElectronicFenceService.getById(id); if (electronicFence.getStatus()==2){ xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpPointManagementController.java
@@ -85,9 +85,9 @@ */ @PostMapping("/addPoint") @ResponseBody @Transactional @ShardingSphereTransactionType(TransactionType.BASE) @ApiOperation(value = "新增点位") // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R add(@Validated @RequestBody PointAddDto pointAddDto) { XpPoint xpPoint = new XpPoint(); BeanUtils.copyProperties(pointAddDto, xpPoint); @@ -100,8 +100,8 @@ @GetMapping("/deletePoint") @ResponseBody @ApiOperation(value = "删除点位") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R deletePoint(@RequestParam("ids") String ids) { xpPointService.removeBatchByIds(Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList())); return R.ok(); @@ -111,8 +111,8 @@ */ @PostMapping("/editPoint") @ApiOperation(value = "编辑点位") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R edit(@Validated@RequestBody PointUpdateDto pointAddDto) { XpPoint xpPoint = new XpPoint(); BeanUtils.copyProperties(pointAddDto, xpPoint); @@ -132,8 +132,8 @@ */ @PostMapping("/enableDisablePoint") @ApiOperation(value = "启用/禁用") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) // @Transactional // @ShardingSphereTransactionType(TransactionType.BASE) public R enableDisable(@RequestBody XpPointEnableDisableDto dto) { XpPoint xpPoint = xpPointService.getById(dto.getId()); xpPoint.setOperationStatus(dto.getOperationStatus()); xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -1238,7 +1238,7 @@ useUserCouponDto.setUserCouponId(order.getCouponId()); xpAppUserCouponClient.useUserCoupon(useUserCouponDto); } // 计算完价格后 挑选优惠券 // 计算完价格后 挑选优惠券 GetUserCouponDto getUserCouponDto = new GetUserCouponDto(); getUserCouponDto.setUserId(Long.valueOf(uid)); getUserCouponDto.setTotalAmount(order.getOrderMoney().doubleValue()); @@ -1250,10 +1250,31 @@ } order.setAppUserId(null); baseMapper.updateById(order); // 结束后的车辆操作 if(vehicle!=null){ // 修改车辆状态 vehicle.setState(0); xpVehicleClient.updateVehicleById(vehicle); // 修改mongodb车辆状态 // 生成新的巡游单子 回到最新巡游的初始起点位置 XpCruiseOrder xpCruiseOrders = xpCruiseOrderMapper.selectOne(new LambdaQueryWrapper<XpCruiseOrder>().eq(XpCruiseOrder::getVehicleId, vehicle.getId()).eq(XpCruiseOrder::getStatus, 2).orderByDesc(BaseModel::getCreateTime).last("limit 1")); int temp=0; if(xpCruiseOrders==null){ temp=1; //特殊情况 可能没有产生终止的订单 (到站点就被正常接单了)所以找正常订单 xpCruiseOrders=xpCruiseOrderMapper.selectOne(new LambdaQueryWrapper<XpCruiseOrder>().eq(XpCruiseOrder::getVehicleId, vehicle.getId()).eq(XpCruiseOrder::getStatus, 3).orderByDesc(BaseModel::getCreateTime).last("limit 1")); } XpCruiseOrder xpCruiseOrder = new XpCruiseOrder(); xpCruiseOrder.setVehicleId(vehicle.getId()); xpCruiseOrder.setFleetId(vehicle.getFleetId()); @@ -1265,10 +1286,19 @@ xpCruiseOrder.setStartLon(order.getEndLon()); xpCruiseOrder.setStartLat(order.getEndLat()); xpCruiseOrder.setEndPointId(xpCruiseOrders.getStartPointId()); xpCruiseOrder.setEndPointName(xpCruiseOrders.getStartPointName()); xpCruiseOrder.setEndLon(xpCruiseOrders.getStartLon()); xpCruiseOrder.setEndLat(xpCruiseOrders.getStartLat()); // 完成的直接走终点 终止的走起点 if(temp==0){ xpCruiseOrder.setEndPointId(xpCruiseOrders.getStartPointId()); xpCruiseOrder.setEndPointName(xpCruiseOrders.getStartPointName()); xpCruiseOrder.setEndLon(xpCruiseOrders.getStartLon()); xpCruiseOrder.setEndLat(xpCruiseOrders.getStartLat()); }else { xpCruiseOrder.setEndPointId(xpCruiseOrders.getEndPointId()); xpCruiseOrder.setEndPointName(xpCruiseOrders.getEndPointName()); xpCruiseOrder.setEndLon(xpCruiseOrders.getEndLon()); xpCruiseOrder.setEndLat(xpCruiseOrders.getEndLat()); } xpCruiseOrder.setStatus(1); xpCruiseOrder.setLastOrderId(xpCruiseOrders.getId());