diff --git a/src/main/java/com/sqx/modules/artificer/entity/Orders.java b/src/main/java/com/sqx/modules/artificer/entity/Orders.java index 6551b3a..58aed51 100644 --- a/src/main/java/com/sqx/modules/artificer/entity/Orders.java +++ b/src/main/java/com/sqx/modules/artificer/entity/Orders.java @@ -221,6 +221,17 @@ public class Orders implements Serializable { * 出行费用 */ private BigDecimal taxiMoney; + + /** + * 正常出行费用 + */ + private BigDecimal usualTravelMoney; + + /** + * 夜间出行费用 + */ + private BigDecimal nightTravelMoney; + //技师打车费 private BigDecimal artificerTaxiMoney; //平台扣除打车费 diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java index 27b6fe3..7c7500f 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/OrdersServiceImpl.java @@ -818,6 +818,8 @@ public class OrdersServiceImpl extends ServiceImpl 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().eq("orders_id", orders.getParentId()).last(" order by artificer_time_id desc limit 1 ")); @@ -999,7 +1001,8 @@ public class OrdersServiceImpl extends ServiceImpl 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 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 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 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 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 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 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 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 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); diff --git a/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java b/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java index aaae5e5..a34030a 100644 --- a/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java +++ b/src/main/java/com/sqx/modules/travelconf/service/impl/TravelConfServiceImpl.java @@ -270,24 +270,32 @@ public class TravelConfServiceImpl extends ServiceImpl免费公里数:公里数-免费公里数<起步公里数时,车费=夜间出行费+起步价 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; } diff --git a/src/main/java/com/sqx/modules/travelconf/vo/TravelPriceVo.java b/src/main/java/com/sqx/modules/travelconf/vo/TravelPriceVo.java index 893aa18..6e874cc 100644 --- a/src/main/java/com/sqx/modules/travelconf/vo/TravelPriceVo.java +++ b/src/main/java/com/sqx/modules/travelconf/vo/TravelPriceVo.java @@ -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; + + }