Compare commits

...

2 Commits

Author SHA1 Message Date
2727b3ab7f Merge remote-tracking branch 'origin/main' 2025-04-28 16:05:14 +08:00
50ccd8641d 计费规则部分代码注释:待讨论 2025-04-28 16:05:01 +08:00

View File

@ -313,7 +313,7 @@ public class UserOrdersServiceImpl extends ServiceImpl<UserOrdersMapper, EbikeUs
@Override
public RspOrderDetailsInfo orderDetailsInfo(Long orderId) {
return this.mapper.selectOneWithRelationsByIdAs(orderId,RspOrderDetailsInfo.class);
return this.mapper.selectOneWithRelationsByIdAs(orderId, RspOrderDetailsInfo.class);
}
@Override
@ -418,23 +418,49 @@ public class UserOrdersServiceImpl extends ServiceImpl<UserOrdersMapper, EbikeUs
* @return 当前时间段收取金额
*/
BigDecimal timeFee(TimeSegment timeSegment, ResFeignEbikeSysRcostsetDto feignEbikeSysRcostsetDto, List<EbikeOrderDetails> 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<ResFeignEbikeSysRcostsetTimePeriodDto> 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<ResFeignEbikeSysRcostsetTimePeriodDto> 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;
}