| | |
| | | package com.xiaopeng.operation.service.impl; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.xiaopeng.api.dto.map.RouteAndFareDto; |
| | | import com.xiaopeng.api.feignClient.map.XpMapClient; |
| | | import com.xiaopeng.api.vo.map.XpDistanceAndDurationVo; |
| | | import com.xiaopeng.common.core.domain.R; |
| | | import com.xiaopeng.operation.mapper.XpPricingMapper; |
| | | import com.xiaopeng.api.model.operation.XpPricing; |
| | | import com.xiaopeng.operation.service.XpPricingService; |
| | | import com.xiaopeng.operation.utils.XpPricingUtil; |
| | | import com.xiaopeng.api.vo.operation.RouteAndFareVo; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Service |
| | | public class XpPricingServiceImpl extends ServiceImpl<XpPricingMapper, XpPricing> implements XpPricingService { |
| | | |
| | | |
| | | @Resource |
| | | private XpPricingUtil xpPricingUtil; |
| | | |
| | | @Resource |
| | | private XpMapClient xpMapClient; |
| | | |
| | | |
| | | @Override |
| | | public RouteAndFareVo getRouteAndFare(RouteAndFareDto routeAndFareDto) { |
| | | XpPricing xpPricing = this.baseMapper.selectOne(new LambdaQueryWrapper<XpPricing>().eq(XpPricing::getCityId, routeAndFareDto.getOpenCityId())); |
| | | if(xpPricing==null){ |
| | | // 抛出异常 |
| | | throw new RuntimeException("当前区域未开通服务"); |
| | | } |
| | | |
| | | // 判断2个点是否在同一个经营区域 |
| | | R<Boolean> r = xpMapClient.diagnosisArea(routeAndFareDto); |
| | | if(r.getCode()!=R.SUCCESS){ |
| | | // 抛出异常 |
| | | throw new RuntimeException(r.getMsg()); |
| | | } |
| | | |
| | | if(!r.getData()){ |
| | | // 抛出异常 |
| | | throw new RuntimeException("当前区域未开通服务"); |
| | | } |
| | | |
| | | |
| | | // 调用地图 |
| | | R<XpDistanceAndDurationVo> distanceAndDuration = xpMapClient.getDistanceAndDuration(routeAndFareDto); |
| | | |
| | | |
| | | // xpPricingUtil.calculationPrice(xpPricing.getBasicPricingJson(), xpPricing.getStartingFareJson(),1,1, 0, 0); |
| | | |
| | | |
| | | return null; |
| | | } |
| | | } |