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>
|
* 定价管理 服务实现类
|
* </p>
|
*
|
* @author liu
|
* @since 2026-02-03
|
*/
|
@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;
|
}
|
}
|