Commit 100ce890 authored by hezhen's avatar hezhen

Merge branch 'master-chw-price' into dev-chw

parents 9ec039fe f0edb061
...@@ -1664,10 +1664,11 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1664,10 +1664,11 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
vehicleDaysPrice.setPriceJson(jsonObject.getString("priceList")); vehicleDaysPrice.setPriceJson(jsonObject.getString("priceList"));
vehicleDaysPrice.setStatus(jsonObject.getInteger("status")); vehicleDaysPrice.setStatus(jsonObject.getInteger("status"));
vehicleDaysPriceBiz.addOrUpd(vehicleDaysPrice); vehicleDaysPriceBiz.addOrUpd(vehicleDaysPrice);
BigDecimal vehiclePrice = vehicleDaysPriceBiz.getVehiclePrice(vehicleId, 0); Vehicle vehiclePrice = vehicleDaysPriceBiz.getVehiclePrice(vehicleId, 0);
if (vehiclePrice != null && vehiclePrice.compareTo(BigDecimal.ZERO) > 0){ if (vehiclePrice != null ){
Vehicle vehicle = new Vehicle(); Vehicle vehicle = new Vehicle();
vehicle.setPrice(vehiclePrice); vehicle.setPrice(vehiclePrice.getPrice());
vehicle.setHolidayPrice(vehiclePrice.getHolidayPrice());
vehicle.setId(vehicleId); vehicle.setId(vehicleId);
updateSelectiveById(vehicle); updateSelectiveById(vehicle);
} }
......
...@@ -72,25 +72,29 @@ public class VehicleDaysPriceBiz extends BaseBiz<VehicleDaysPriceMapper, Vehicle ...@@ -72,25 +72,29 @@ public class VehicleDaysPriceBiz extends BaseBiz<VehicleDaysPriceMapper, Vehicle
return priceVos; return priceVos;
} }
public BigDecimal getVehiclePrice(String vehicleId,Integer days){ public Vehicle getVehiclePrice(String vehicleId,Integer days){
Vehicle vehicle = vehicleBiz.selectById(vehicleId);
List<VehicleDaysPriceVo> priceVos = getListByVehicleId(vehicleId); List<VehicleDaysPriceVo> priceVos = getListByVehicleId(vehicleId);
BigDecimal price = BigDecimal.ZERO; BigDecimal price = vehicle.getPrice();
BigDecimal maxPrice = vehicle.getHolidayPrice();
if (priceVos != null && priceVos.size() > 0){ if (priceVos != null && priceVos.size() > 0){
VehicleDaysPriceVo vehicleDaysPriceVo; VehicleDaysPriceVo vehicleDaysPriceVo;
VehicleDaysPriceVo maxVehicleDaysPriceVo;
if (days == null || days == 0){ if (days == null || days == 0){
vehicleDaysPriceVo = priceVos.stream().min(Comparator.comparing(VehicleDaysPriceVo::getPrice)).get(); vehicleDaysPriceVo = priceVos.stream().min(Comparator.comparing(VehicleDaysPriceVo::getPrice)).get();
maxVehicleDaysPriceVo = priceVos.stream().max(Comparator.comparing(VehicleDaysPriceVo::getPrice)).get();
}else { }else {
vehicleDaysPriceVo = priceVos.stream().filter(x -> x.getStartDay() <= days && (x.getEndDay() == -1 || x.getEndDay() >= days)).min(Comparator.comparing(VehicleDaysPriceVo::getPrice)).get(); vehicleDaysPriceVo = priceVos.stream().filter(x -> x.getStartDay() <= days && (x.getEndDay() == -1 || x.getEndDay() >= days)).min(Comparator.comparing(VehicleDaysPriceVo::getPrice)).get();
maxVehicleDaysPriceVo = priceVos.stream().filter(x -> x.getStartDay() <= days && (x.getEndDay() == -1 || x.getEndDay() >= days)).max(Comparator.comparing(VehicleDaysPriceVo::getPrice)).get();
} }
if (vehicleDaysPriceVo != null ) if (vehicleDaysPriceVo != null )
price = vehicleDaysPriceVo.getPrice(); price = vehicleDaysPriceVo.getPrice();
if (maxVehicleDaysPriceVo != null )
maxPrice = maxVehicleDaysPriceVo.getPrice();
} }
if (price.compareTo(BigDecimal.ZERO) == 0 ){ vehicle.setPrice(price);
Vehicle vehicle = vehicleBiz.selectById(vehicleId); vehicle.setHolidayPrice(maxPrice);
if (vehicle != null) return vehicle;
price = vehicle.getPrice();
}
return price;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment