计费规则部分代码注释:待讨论

This commit is contained in:
attiya 2025-04-28 16:05:01 +08:00
parent 5fa9515ed9
commit 50ccd8641d

View File

@ -418,23 +418,49 @@ public class UserOrdersServiceImpl extends ServiceImpl<UserOrdersMapper, EbikeUs
* @return 当前时间段收取金额 * @return 当前时间段收取金额
*/ */
BigDecimal timeFee(TimeSegment timeSegment, ResFeignEbikeSysRcostsetDto feignEbikeSysRcostsetDto, List<EbikeOrderDetails> list, long orderId) { BigDecimal timeFee(TimeSegment timeSegment, ResFeignEbikeSysRcostsetDto feignEbikeSysRcostsetDto, List<EbikeOrderDetails> list, long orderId) {
BigDecimal decimal = new BigDecimal(0); BigDecimal decimal = BigDecimal.ZERO;
LocalDateTime start = timeSegment.getStart(); // LocalDateTime start = timeSegment.getStart();
LocalDateTime end = timeSegment.getEnd(); // LocalDateTime end = timeSegment.getEnd();
LocalTime orderStartupTime = LocalTime.of(start.getHour(), start.getMinute(), start.getSecond()); // LocalTime orderStartupTime = LocalTime.of(start.getHour(), start.getMinute(), start.getSecond());
LocalTime orderEndTime = LocalTime.of(end.getHour(), end.getMinute(), end.getSecond()); // LocalTime orderEndTime = LocalTime.of(end.getHour(), end.getMinute(), end.getSecond());
List<ResFeignEbikeSysRcostsetTimePeriodDto> ebikeSysRcostsetTimePeriodDtos = feignEbikeSysRcostsetDto.getEbikeSysRcostsetTimePeriodDtos(); // boolean checkedStart = false;
//收集订单所满足计费条件的所有时段费用 // List<ResFeignEbikeSysRcostsetTimePeriodDto> ebikeSysRcostsetTimePeriodDtos = feignEbikeSysRcostsetDto.getEbikeSysRcostsetTimePeriodDtos();
for (ResFeignEbikeSysRcostsetTimePeriodDto timePeriodDto : ebikeSysRcostsetTimePeriodDtos) { // //收集订单所满足计费条件的所有时段费用
LocalTime timePeriodDtoStartupTime = timePeriodDto.getStartupTime(); // for (ResFeignEbikeSysRcostsetTimePeriodDto timePeriodDto : ebikeSysRcostsetTimePeriodDtos) {
LocalTime timePeriodDtoEndTime = timePeriodDto.getEndTime(); // LocalTime timePeriodDtoStartupTime = timePeriodDto.getStartupTime();
boolean createBeforeTimePeriodDtoEndTime = orderStartupTime.isBefore(timePeriodDtoEndTime); // LocalTime timePeriodDtoEndTime = timePeriodDto.getEndTime();
boolean createAfterTimePeriodDtoStartupTime = orderEndTime.isAfter(timePeriodDtoStartupTime); // boolean createBeforeTimePeriodDtoEndTime = orderStartupTime.isBefore(timePeriodDtoEndTime);
//满足计费条件进行计费 // boolean createAfterTimePeriodDtoStartupTime = orderEndTime.isAfter(timePeriodDtoStartupTime);
if (createBeforeTimePeriodDtoEndTime && createAfterTimePeriodDtoStartupTime) { // //满足计费条件进行计费
// 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; return decimal;
} }