diff --git a/ebike-orders/src/main/java/com/cdzy/orders/service/impl/UserOrdersServiceImpl.java b/ebike-orders/src/main/java/com/cdzy/orders/service/impl/UserOrdersServiceImpl.java index 3fae0bda..d23d3e07 100644 --- a/ebike-orders/src/main/java/com/cdzy/orders/service/impl/UserOrdersServiceImpl.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/service/impl/UserOrdersServiceImpl.java @@ -313,7 +313,7 @@ public class UserOrdersServiceImpl extends ServiceImpl list, long orderId) { - BigDecimal decimal = new BigDecimal(0); - LocalDateTime start = timeSegment.getStart(); - LocalDateTime end = timeSegment.getEnd(); - LocalTime orderStartupTime = LocalTime.of(start.getHour(), start.getMinute(), start.getSecond()); - LocalTime orderEndTime = LocalTime.of(end.getHour(), end.getMinute(), end.getSecond()); - List ebikeSysRcostsetTimePeriodDtos = feignEbikeSysRcostsetDto.getEbikeSysRcostsetTimePeriodDtos(); - //收集订单所满足计费条件的所有时段费用 - for (ResFeignEbikeSysRcostsetTimePeriodDto timePeriodDto : ebikeSysRcostsetTimePeriodDtos) { - LocalTime timePeriodDtoStartupTime = timePeriodDto.getStartupTime(); - LocalTime timePeriodDtoEndTime = timePeriodDto.getEndTime(); - boolean createBeforeTimePeriodDtoEndTime = orderStartupTime.isBefore(timePeriodDtoEndTime); - boolean createAfterTimePeriodDtoStartupTime = orderEndTime.isAfter(timePeriodDtoStartupTime); - //满足计费条件,进行计费 - if (createBeforeTimePeriodDtoEndTime && createAfterTimePeriodDtoStartupTime) { - - } - } + BigDecimal decimal = BigDecimal.ZERO; +// LocalDateTime start = timeSegment.getStart(); +// LocalDateTime end = timeSegment.getEnd(); +// LocalTime orderStartupTime = LocalTime.of(start.getHour(), start.getMinute(), start.getSecond()); +// LocalTime orderEndTime = LocalTime.of(end.getHour(), end.getMinute(), end.getSecond()); +// boolean checkedStart = false; +// List ebikeSysRcostsetTimePeriodDtos = feignEbikeSysRcostsetDto.getEbikeSysRcostsetTimePeriodDtos(); +// //收集订单所满足计费条件的所有时段费用 +// for (ResFeignEbikeSysRcostsetTimePeriodDto timePeriodDto : ebikeSysRcostsetTimePeriodDtos) { +// LocalTime timePeriodDtoStartupTime = timePeriodDto.getStartupTime(); +// LocalTime timePeriodDtoEndTime = timePeriodDto.getEndTime(); +// boolean createBeforeTimePeriodDtoEndTime = orderStartupTime.isBefore(timePeriodDtoEndTime); +// boolean createAfterTimePeriodDtoStartupTime = orderEndTime.isAfter(timePeriodDtoStartupTime); +// //满足计费条件,进行计费 +// if (createBeforeTimePeriodDtoEndTime && createAfterTimePeriodDtoStartupTime) { +// //起点在高峰内 +// boolean after = orderStartupTime.isAfter(timePeriodDtoStartupTime); +// boolean before = orderEndTime.isBefore(timePeriodDtoEndTime); +// if (after) { +// //添加起步费用 +// BigDecimal startupCost = timePeriodDto.getStartupCost(); +// Integer startupDuration = timePeriodDto.getStartupDuration(); +// decimal = decimal.add(startupCost); +// long minutes = TimeUtils.betweenMinutes(orderStartupTime, orderEndTime); +// BigDecimal minutesNew = new BigDecimal(minutes); +// if (minutes > startupDuration) { +// BigDecimal startupDurationNew = new BigDecimal(startupDuration); +// BigDecimal subtract = minutesNew.subtract(startupDurationNew); +// //结束点在高峰内 +// if (before) { +// BigDecimal durationCost = timePeriodDto.getDurationCost(); +// Integer duration = timePeriodDto.getDuration(); +// int ceil = NumberUtils.divideAndCeil(duration, subtract.intValue()); +// BigDecimal ceilCost = BigDecimal.valueOf(ceil); +// //最终值 +// BigDecimal multiply = durationCost.multiply(ceilCost); +// decimal = decimal.add(multiply); +// } +// } +// } +// +// } +// } //计算常规费用 return decimal; }