车费计算出现负数
This commit is contained in:
parent
a6f7f3ca70
commit
aefc1418ec
|
@ -2037,7 +2037,10 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
||||||
Orders orders = baseMapper.selectById(ordersId);
|
Orders orders = baseMapper.selectById(ordersId);
|
||||||
if (orders.getStatus() == 4) {
|
if (orders.getStatus() == 4) {
|
||||||
return Result.error("订单已经取消了!");
|
return Result.error("订单已经取消了!");
|
||||||
} else if (orders.getStatus() == 3 || orders.getStatus() == 5) {
|
}else if (orders.getStatus() == 1) {
|
||||||
|
String remarks = "取消订单将扣除:0元的手续费!";
|
||||||
|
return Result.success().put("data",remarks);
|
||||||
|
}else if (orders.getStatus() == 3 || orders.getStatus() == 5) {
|
||||||
return Result.error("订单已经完成了,无法取消!");
|
return Result.error("订单已经完成了,无法取消!");
|
||||||
}else if (orders.getStatus() == 6) {
|
}else if (orders.getStatus() == 6) {
|
||||||
if(orders.getOldOrdersId() != null && orders.getOldOrdersId() != 0){
|
if(orders.getOldOrdersId() != null && orders.getOldOrdersId() != 0){
|
||||||
|
|
|
@ -206,7 +206,7 @@ public class TravelConfServiceImpl extends ServiceImpl<TravelConfDao, TravelConf
|
||||||
public TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude, String serveTime) {
|
public TravelPriceVo calcTravelPrice(Long artificerId, String toLongitude, String toLatitude, String serveTime) {
|
||||||
Artificer artificerInfo = artificerService.getById(artificerId);
|
Artificer artificerInfo = artificerService.getById(artificerId);
|
||||||
|
|
||||||
Integer cxfs = artificerInfo.getTripWay();//1公交 2免费 3出租
|
Integer cxfs = artificerInfo.getTripWay();//1公交 2出租 3免费
|
||||||
Integer mfgls = artificerInfo.getTripWayNum();//免费公里数
|
Integer mfgls = artificerInfo.getTripWayNum();//免费公里数
|
||||||
if(cxfs==null){
|
if(cxfs==null){
|
||||||
cxfs = 3;
|
cxfs = 3;
|
||||||
|
@ -289,7 +289,6 @@ public class TravelConfServiceImpl extends ServiceImpl<TravelConfDao, TravelConf
|
||||||
//夜间
|
//夜间
|
||||||
nightTravelExpenses = conf.getNightTravelExpenses();
|
nightTravelExpenses = conf.getNightTravelExpenses();
|
||||||
}
|
}
|
||||||
|
|
||||||
//起步公里数
|
//起步公里数
|
||||||
BigDecimal startKilometers = conf.getFreeKilometers();
|
BigDecimal startKilometers = conf.getFreeKilometers();
|
||||||
//起步价
|
//起步价
|
||||||
|
@ -298,14 +297,26 @@ public class TravelConfServiceImpl extends ServiceImpl<TravelConfDao, TravelConf
|
||||||
BigDecimal pricePerKilometer = conf.getPricePerKilometer();
|
BigDecimal pricePerKilometer = conf.getPricePerKilometer();
|
||||||
|
|
||||||
//最终价格
|
//最终价格
|
||||||
//计算公式为【起步价 + 夜间出行费 + ((公里数 -起步公里数 - 免费公里数) * 每公里价格)= 最终价格】
|
//计算公式为【起步价 + 夜间出行费 + ((公里数 -起步公里数 - 免费公里数) * 每公里价格)= 最终价格】 作废
|
||||||
BigDecimal travelPrice = NumberUtil.add(startingPrice, nightTravelExpenses, NumberUtil.mul(NumberUtil.sub(NumberUtil.sub(kilometerNum,startKilometers), freeKilometers), pricePerKilometer));
|
// BigDecimal travelPrice = NumberUtil.add(startingPrice, nightTravelExpenses, NumberUtil.mul(NumberUtil.sub(NumberUtil.sub(kilometerNum, ), freeKilometers), pricePerKilometer));
|
||||||
// vo.setTravelPrice(NumberUtil.decimalFormat("0.00", travelPrice));
|
BigDecimal travelPrice = BigDecimal.ZERO;
|
||||||
|
//公里数<免费公里数:车费=夜间出行费
|
||||||
|
if(kilometerNum.compareTo(freeKilometers)<0){
|
||||||
|
travelPrice = nightTravelExpenses;
|
||||||
|
}else{
|
||||||
|
BigDecimal kilometers = kilometerNum.subtract(freeKilometers);
|
||||||
|
//公里数>免费公里数:公里数-免费公里数<起步公里数时,车费=夜间出行费+起步价
|
||||||
|
if(kilometers.compareTo(startKilometers)<0){
|
||||||
|
travelPrice = nightTravelExpenses.add(startingPrice);
|
||||||
|
}else{
|
||||||
|
//公里数>免费公里数:公里数-免费公里数>起步公里数时,车费=夜间出行费+起步价+(公里数-免费公里数-起步公里数)*每公里价格
|
||||||
|
travelPrice = nightTravelExpenses.add(startingPrice).add(kilometers.subtract(startKilometers).multiply(pricePerKilometer));
|
||||||
|
}
|
||||||
|
}
|
||||||
travelPrice = travelPrice.setScale(0,BigDecimal.ROUND_UP);
|
travelPrice = travelPrice.setScale(0,BigDecimal.ROUND_UP);
|
||||||
vo.setTravelPrice(travelPrice.toString());
|
vo.setTravelPrice(travelPrice.toString());
|
||||||
}
|
}
|
||||||
return vo;
|
return vo;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue