package com.xiaopeng.itinerary.service;
|
|
import com.xiaopeng.api.feignClient.operation.XpPricingClient;
|
import com.xiaopeng.api.feignClient.order.XpOrderClient;
|
import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
|
import com.xiaopeng.api.model.operation.XpPricing;
|
import com.xiaopeng.api.model.order.XpOrder;
|
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
|
import com.xiaopeng.common.core.domain.R;
|
import com.xiaopeng.common.core.exception.ServiceException;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
|
@Service
|
public class BootCommonService {
|
|
@Resource
|
private XpPricingClient xpPricingClient;
|
@Resource
|
private XpVehicleClient xpVehicleClient;
|
@Resource
|
private XpOrderClient xpOrderClient;
|
// @Override
|
public XpOrder getXpOrder(Long orderId) {
|
|
R<XpOrder> xpOrderR = xpOrderClient.queryOrderById(orderId);
|
if (xpOrderR.getCode() != R.SUCCESS || xpOrderR.getData() == null) {
|
throw new ServiceException("订单不存在");
|
}
|
return xpOrderR.getData();
|
}
|
// @Override
|
public XpVehicle getXpVehicle(Long vehicleId) {
|
|
R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(vehicleId);
|
if (xpVehicleR.getCode() != R.SUCCESS || xpVehicleR.getData() == null) {
|
throw new ServiceException("车型不存在");
|
}
|
return xpVehicleR.getData();
|
}
|
// @Override
|
public String getVehicleModelId(Long orderId) {
|
if(orderId!= null){
|
XpOrder xpOrder = getXpOrder(orderId);
|
XpVehicle xpVehicle = getXpVehicle(xpOrder.getVehicleId());
|
return xpVehicle.getVehicleModel();
|
}
|
return null;
|
}
|
|
// @Override
|
public XpPricing getPricingByCid(Long cityId, String vehicleModelId) {
|
R<XpPricing> xpPricingR = xpPricingClient.getPricingByCid(cityId,vehicleModelId);
|
if (xpPricingR.getCode() != R.SUCCESS || xpPricingR.getData() == null) {
|
throw new ServiceException("当前城市未配置定价规则");
|
// throw new ServiceException("当前区域未开通服务");
|
}
|
return xpPricingR.getData();
|
}
|
|
// @Override
|
public XpPricing getXpPricing(Long orderId) {
|
if(orderId != null){
|
XpOrder xpOrder = getXpOrder(orderId);
|
return getXpPricing(xpOrder.getCityId(),xpOrder.getVehicleId());
|
}
|
return null;
|
}
|
|
// @Override
|
public XpPricing getXpPricing(Long cityId, Long vehicleId) {
|
String vehicleModelId = null;
|
if(vehicleId != null){
|
XpVehicle xpVehicle = getXpVehicle(vehicleId);
|
vehicleModelId = xpVehicle.getVehicleModel();
|
}
|
return getPricingByCid(cityId, vehicleModelId);
|
}
|
|
// @Override
|
public XpPricing getXpPricing(Long cityId, Long orderId, Long vehicleId) {
|
String vehicleModelId = null;
|
if(vehicleId != null ){
|
XpVehicle xpVehicle = getXpVehicle(vehicleId);
|
vehicleModelId = xpVehicle.getVehicleModel();
|
}
|
if(vehicleModelId != null){
|
if(orderId != null ){
|
vehicleModelId = getVehicleModelId(orderId);
|
}
|
}
|
return getPricingByCid(cityId, vehicleModelId);
|
}
|
|
|
|
|
}
|