订单出行费用
This commit is contained in:
parent
5658293357
commit
9a050aa76d
|
@ -221,6 +221,17 @@ public class Orders implements Serializable {
|
|||
* 出行费用
|
||||
*/
|
||||
private BigDecimal taxiMoney;
|
||||
|
||||
/**
|
||||
* 正常出行费用
|
||||
*/
|
||||
private BigDecimal usualTravelMoney;
|
||||
|
||||
/**
|
||||
* 夜间出行费用
|
||||
*/
|
||||
private BigDecimal nightTravelMoney;
|
||||
|
||||
//技师打车费
|
||||
private BigDecimal artificerTaxiMoney;
|
||||
//平台扣除打车费
|
||||
|
|
|
@ -818,6 +818,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
|||
taxiMoney = taxiMoney.setScale(0,BigDecimal.ROUND_UP);
|
||||
orders.setTaxiMoney(taxiMoney);
|
||||
orders.setKm(travelPriceVo.getKilometerNum());
|
||||
orders.setUsualTravelMoney(travelPriceVo.getUsualTravelMoney());
|
||||
orders.setNightTravelMoney(travelPriceVo.getNightTravelMoney());
|
||||
} else {
|
||||
if ("是".equals(value1)) {
|
||||
ArtificerTime artificerTime = artificerTimeService.getOne(new QueryWrapper<ArtificerTime>().eq("orders_id", orders.getParentId()).last(" order by artificer_time_id desc limit 1 "));
|
||||
|
@ -999,7 +1001,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
|||
taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice());
|
||||
orders.setTaxiMoney(taxiMoney);
|
||||
orders.setKm(travelPriceVo.getKilometerNum());
|
||||
|
||||
orders.setUsualTravelMoney(travelPriceVo.getUsualTravelMoney());
|
||||
orders.setNightTravelMoney(travelPriceVo.getNightTravelMoney());
|
||||
if (orders.getParentId() == null || orders.getParentId() == 0) {
|
||||
String serveTime = orders.getServeTime();
|
||||
String date = serveTime.substring(0, 10);
|
||||
|
@ -1233,6 +1236,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
|||
taxiMoney = taxiMoney.setScale(0,BigDecimal.ROUND_UP);
|
||||
orders.setTaxiMoney(taxiMoney);
|
||||
orders.setKm(travelPriceVo.getKilometerNum());
|
||||
orders.setUsualTravelMoney(travelPriceVo.getUsualTravelMoney());
|
||||
orders.setNightTravelMoney(travelPriceVo.getNightTravelMoney());
|
||||
orders.setPayMoney(taxiMoney);
|
||||
orders.setStatus(1);
|
||||
orders.setCreateTime(DateUtils.format(new Date()));
|
||||
|
@ -1447,6 +1452,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
|||
orders.setTripWay(oldOrders.getTripWay());
|
||||
orders.setTaxiMoney(oldOrders.getTaxiMoney());
|
||||
orders.setKm(oldOrders.getKm());
|
||||
orders.setUsualTravelMoney(oldOrders.getUsualTravelMoney());
|
||||
orders.setNightTravelMoney(oldOrders.getNightTravelMoney());
|
||||
orders.setStartAddress(oldOrders.getStartAddress());
|
||||
orders.setStartTime(oldOrders.getStartTime());
|
||||
orders.setCouponId(oldOrders.getCouponId());
|
||||
|
@ -1743,15 +1750,26 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
|||
}
|
||||
}
|
||||
taxiMoney = new BigDecimal(travelPriceVo.getTravelPrice());
|
||||
BigDecimal usualTravelMoney = travelPriceVo.getUsualTravelMoney();
|
||||
BigDecimal nightTravelMoney = travelPriceVo.getNightTravelMoney();
|
||||
taxiMoney = taxiMoney.setScale(0,BigDecimal.ROUND_UP);
|
||||
BigDecimal oldTaxiMoney = oldOrders.getTaxiMoney();
|
||||
BigDecimal oldUsualTravelMoney = oldOrders.getUsualTravelMoney();
|
||||
BigDecimal oldNightTravelMoney = oldOrders.getNightTravelMoney();
|
||||
if (taxiMoney.compareTo(oldTaxiMoney) < 0) {
|
||||
taxiMoney = oldTaxiMoney;
|
||||
usualTravelMoney = oldUsualTravelMoney;
|
||||
nightTravelMoney = oldNightTravelMoney;
|
||||
}
|
||||
orders.setTaxiMoney(taxiMoney);
|
||||
orders.setKm(travelPriceVo.getKilometerNum());
|
||||
orders.setUsualTravelMoney(usualTravelMoney);
|
||||
orders.setNightTravelMoney(nightTravelMoney);
|
||||
//出行交通费差价
|
||||
BigDecimal cxchajia = taxiMoney.subtract(oldTaxiMoney);
|
||||
// BigDecimal cxchajia = taxiMoney.subtract(oldTaxiMoney);
|
||||
BigDecimal pccxchajia = usualTravelMoney.subtract(oldUsualTravelMoney);
|
||||
BigDecimal yjcxchajia = nightTravelMoney.subtract(oldNightTravelMoney);
|
||||
BigDecimal cxchajia = pccxchajia.subtract(yjcxchajia);
|
||||
//总差价
|
||||
BigDecimal chajia = xmchajia.add(cxchajia);
|
||||
|
||||
|
@ -1859,6 +1877,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
|||
//新增单据xmchajia
|
||||
orders.setPayMoney(chajia);
|
||||
orders.setTaxiMoney(cxchajia);
|
||||
orders.setUsualTravelMoney(pccxchajia);
|
||||
orders.setNightTravelMoney(yjcxchajia);
|
||||
BigDecimal artificerPrice = BigDecimal.ZERO;
|
||||
BigDecimal artificerTaxiPrice = BigDecimal.ZERO;
|
||||
//查询是否计算出租车扣费
|
||||
|
@ -3172,6 +3192,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
|||
//此笔单子退车费,并改为取消,再将原单改成待补单
|
||||
orders.setRefusalContent("");
|
||||
orders.setTaxiMoney(BigDecimal.ZERO);
|
||||
orders.setUsualTravelMoney(BigDecimal.ZERO);
|
||||
orders.setNightTravelMoney(BigDecimal.ZERO);
|
||||
orders.setStatus(4);
|
||||
baseMapper.updateById(orders);
|
||||
cancelSupplementOrders(userId, orders.getOldOrdersId(), isAuto, 1);//退原单,原单的车费已被退/扣,所以只退项目
|
||||
|
@ -3180,6 +3202,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
|||
BigDecimal artificerMoney = orders.getArtificerMoney().subtract(taxiMoney);
|
||||
orders.setRefusalContent("");
|
||||
orders.setTaxiMoney(BigDecimal.ZERO);
|
||||
orders.setUsualTravelMoney(BigDecimal.ZERO);
|
||||
orders.setNightTravelMoney(BigDecimal.ZERO);
|
||||
orders.setStatus(10);
|
||||
orders.setArtificerMoney(artificerMoney);
|
||||
orders.setSumArtificerMoney(artificerMoney);
|
||||
|
@ -3585,6 +3609,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
|||
//此笔单子退车费,并改为取消,再将原单改成待补单
|
||||
orders.setRefusalContent("");
|
||||
orders.setTaxiMoney(BigDecimal.ZERO);
|
||||
orders.setUsualTravelMoney(BigDecimal.ZERO);
|
||||
orders.setNightTravelMoney(BigDecimal.ZERO);
|
||||
orders.setStatus(4);
|
||||
baseMapper.updateById(orders);
|
||||
cancelSupplementOrders(userId, orders.getOldOrdersId(), isAuto, 1);//退原单,原单的车费已被退/扣,所以只退项目
|
||||
|
@ -3593,6 +3619,8 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersDao, Orders> implements
|
|||
BigDecimal artificerMoney = orders.getArtificerMoney().subtract(taxiMoney);
|
||||
orders.setRefusalContent("");
|
||||
orders.setTaxiMoney(BigDecimal.ZERO);
|
||||
orders.setUsualTravelMoney(BigDecimal.ZERO);
|
||||
orders.setNightTravelMoney(BigDecimal.ZERO);
|
||||
orders.setStatus(10);
|
||||
orders.setArtificerMoney(artificerMoney);
|
||||
orders.setSumArtificerMoney(artificerMoney);
|
||||
|
|
|
@ -270,24 +270,32 @@ public class TravelConfServiceImpl extends ServiceImpl<TravelConfDao, TravelConf
|
|||
BigDecimal kilometerNum = NumberUtil.div(distances, new BigDecimal("1000"));
|
||||
vo.setKilometerNum(NumberUtil.decimalFormat("0.00", kilometerNum));
|
||||
|
||||
BigDecimal usualTravelMoney = BigDecimal.ZERO;
|
||||
BigDecimal nightTravelMoney = BigDecimal.ZERO;
|
||||
|
||||
if(TravelEnum.PricingType.FIXED.getValue().equals(pricingType)) {
|
||||
//固定的
|
||||
BigDecimal fixedPrice = conf.getFixedPrice();
|
||||
// BigDecimal fixedPrice = conf.getFixedPrice();//单程
|
||||
// if(TravelEnum.FixedType.RETURN.getValue().equals(fixedType)) {
|
||||
// //往返
|
||||
// fixedPrice = NumberUtil.mul(fixedPrice, 2);
|
||||
// }
|
||||
//正常出行
|
||||
usualTravelMoney = conf.getFixedPrice();
|
||||
usualTravelMoney = usualTravelMoney.setScale(0,BigDecimal.ROUND_UP);
|
||||
vo.setUsualTravelMoney(usualTravelMoney);
|
||||
//夜间出行
|
||||
if(TravelEnum.TimeIntervalType.NIGHT.getValue().equals(timeIntervalType)) {
|
||||
//夜间
|
||||
nightTravelMoney = conf.getNightTravelExpenses();
|
||||
}
|
||||
nightTravelMoney = nightTravelMoney.setScale(0,BigDecimal.ROUND_UP);
|
||||
vo.setNightTravelMoney(nightTravelMoney);
|
||||
//最终价格
|
||||
// vo.setTravelPrice(NumberUtil.decimalFormat("0", fixedPrice));
|
||||
BigDecimal fixedPrice = usualTravelMoney.add(nightTravelMoney);
|
||||
fixedPrice = fixedPrice.setScale(0,BigDecimal.ROUND_UP);
|
||||
vo.setTravelPrice(fixedPrice.toString());
|
||||
}else if(TravelEnum.PricingType.TRENDS.getValue().equals(pricingType)){
|
||||
//动态的
|
||||
BigDecimal nightTravelExpenses = new BigDecimal("0");//白天
|
||||
if(TravelEnum.TimeIntervalType.NIGHT.getValue().equals(timeIntervalType)) {
|
||||
//夜间
|
||||
nightTravelExpenses = conf.getNightTravelExpenses();
|
||||
nightTravelMoney = conf.getNightTravelExpenses();
|
||||
nightTravelMoney = nightTravelMoney.setScale(0,BigDecimal.ROUND_UP);
|
||||
}
|
||||
//起步公里数
|
||||
BigDecimal startKilometers = conf.getFreeKilometers();
|
||||
|
@ -302,19 +310,27 @@ public class TravelConfServiceImpl extends ServiceImpl<TravelConfDao, TravelConf
|
|||
BigDecimal travelPrice = BigDecimal.ZERO;
|
||||
//公里数<免费公里数:车费=夜间出行费
|
||||
if(kilometerNum.compareTo(freeKilometers)<0){
|
||||
travelPrice = nightTravelExpenses;
|
||||
vo.setUsualTravelMoney(BigDecimal.ZERO);
|
||||
vo.setNightTravelMoney(nightTravelMoney);
|
||||
travelPrice = nightTravelMoney;
|
||||
travelPrice = travelPrice.setScale(0,BigDecimal.ROUND_UP);
|
||||
vo.setTravelPrice(travelPrice.toString());
|
||||
}else{
|
||||
BigDecimal kilometers = kilometerNum.subtract(freeKilometers);
|
||||
//公里数>免费公里数:公里数-免费公里数<起步公里数时,车费=夜间出行费+起步价
|
||||
if(kilometers.compareTo(startKilometers)<0){
|
||||
travelPrice = nightTravelExpenses.add(startingPrice);
|
||||
startingPrice = startingPrice.setScale(0,BigDecimal.ROUND_UP);
|
||||
}else{
|
||||
//公里数>免费公里数:公里数-免费公里数>起步公里数时,车费=夜间出行费+起步价+(公里数-免费公里数-起步公里数)*每公里价格
|
||||
travelPrice = nightTravelExpenses.add(startingPrice).add(kilometers.subtract(startKilometers).multiply(pricePerKilometer));
|
||||
startingPrice = startingPrice.add(kilometers.subtract(startKilometers).multiply(pricePerKilometer));
|
||||
startingPrice = startingPrice.setScale(0,BigDecimal.ROUND_UP);
|
||||
}
|
||||
vo.setUsualTravelMoney(startingPrice);
|
||||
vo.setNightTravelMoney(nightTravelMoney);
|
||||
travelPrice = nightTravelMoney.add(startingPrice);
|
||||
travelPrice = travelPrice.setScale(0,BigDecimal.ROUND_UP);
|
||||
vo.setTravelPrice(travelPrice.toString());
|
||||
}
|
||||
travelPrice = travelPrice.setScale(0,BigDecimal.ROUND_UP);
|
||||
vo.setTravelPrice(travelPrice.toString());
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
|
|
@ -18,6 +18,14 @@ import java.math.BigDecimal;
|
|||
@Data
|
||||
public class TravelPriceVo {
|
||||
|
||||
/**正常出行费用(元)*/
|
||||
@ApiModelProperty("正常出行费用(元)")
|
||||
private BigDecimal usualTravelMoney;
|
||||
|
||||
/**夜间出行费用(元)*/
|
||||
@ApiModelProperty("夜间出行费用(元)")
|
||||
private BigDecimal nightTravelMoney;
|
||||
|
||||
/**出行价格(元)*/
|
||||
@ApiModelProperty("出行价格(元)")
|
||||
private String travelPrice;
|
||||
|
@ -37,4 +45,6 @@ public class TravelPriceVo {
|
|||
/**出行配置具体参数*/
|
||||
@ApiModelProperty("出行配置具体参数")
|
||||
private TravelConf conf;
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue