From 7dd75890a2f74f36b070b281655a7e315b67429e Mon Sep 17 00:00:00 2001 From: attiya <2413103649@qq.com> Date: Sun, 27 Apr 2025 17:16:14 +0800 Subject: [PATCH] =?UTF-8?q?=E9=AB=98=E5=B3=B0=E5=87=BA=E8=A1=8C=E6=97=A5?= =?UTF-8?q?=E6=94=B6=E8=B4=B9=E8=A7=84=E5=88=99=EF=BC=9A=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/UserOrdersServiceImpl.java | 24 ++++++------------- 1 file changed, 7 insertions(+), 17 deletions(-) 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