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 f6725ef5..b3518fae 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 @@ -408,28 +408,18 @@ public class UserOrdersServiceImpl extends ServiceImpl list,EbikeUserOrders userOrders, ResFeignEbikeSysRcostsetDto feignEbikeSysRcostsetDto) { + BigDecimal weekCostCalculation(List list, EbikeUserOrders userOrders, ResFeignEbikeSysRcostsetDto feignEbikeSysRcostsetDto) { BigDecimal decimal = new BigDecimal(0); LocalDateTime startTime = userOrders.getStartTime(); LocalDateTime endTime = userOrders.getEndTime(); - boolean crossDay = TimeUtils.isCrossDay(startTime, endTime); Long orderId = userOrders.getOrderId(); - if (!crossDay) { - //未跨天 - TimeSegment timeSegment = new TimeSegment(startTime, endTime); + //处理为自然时间段:防止跨天 + List timeSegments = TimeUtils.splitByDays(startTime, endTime); + for (int i = 0; i < timeSegments.size(); i++) { + TimeSegment timeSegment = timeSegments.get(i); boolean checked = checkWeek(timeSegment, feignEbikeSysRcostsetDto); - BigDecimal dailiedFee = dailyFee(timeSegment, feignEbikeSysRcostsetDto, true, checked, list, orderId); + BigDecimal dailiedFee = dailyFee(timeSegment, feignEbikeSysRcostsetDto, i < 1, checked, list, orderId); decimal = decimal.add(dailiedFee); - } else { - //跨天 - List timeSegments = TimeUtils.splitByDays(startTime, endTime); - for (int i = 0; i < timeSegments.size(); i++) { - TimeSegment timeSegment = timeSegments.get(i); - boolean checked = checkWeek(timeSegment, feignEbikeSysRcostsetDto); - BigDecimal dailiedFee = dailyFee(timeSegment, feignEbikeSysRcostsetDto, i < 1, checked, list, orderId); - decimal = decimal.add(dailiedFee); - } - } return decimal; } @@ -558,7 +548,7 @@ public class UserOrdersServiceImpl extends ServiceImpl