高峰出行日收费规则:优化
This commit is contained in:
parent
f7797f8ae6
commit
7dd75890a2
@ -408,28 +408,18 @@ public class UserOrdersServiceImpl extends ServiceImpl<UserOrdersMapper, EbikeUs
|
|||||||
* @param feignEbikeSysRcostsetDto 计费规则
|
* @param feignEbikeSysRcostsetDto 计费规则
|
||||||
* @return 计费后总金额
|
* @return 计费后总金额
|
||||||
*/
|
*/
|
||||||
BigDecimal weekCostCalculation(List<EbikeOrderDetails> list,EbikeUserOrders userOrders, ResFeignEbikeSysRcostsetDto feignEbikeSysRcostsetDto) {
|
BigDecimal weekCostCalculation(List<EbikeOrderDetails> list, EbikeUserOrders userOrders, ResFeignEbikeSysRcostsetDto feignEbikeSysRcostsetDto) {
|
||||||
BigDecimal decimal = new BigDecimal(0);
|
BigDecimal decimal = new BigDecimal(0);
|
||||||
LocalDateTime startTime = userOrders.getStartTime();
|
LocalDateTime startTime = userOrders.getStartTime();
|
||||||
LocalDateTime endTime = userOrders.getEndTime();
|
LocalDateTime endTime = userOrders.getEndTime();
|
||||||
boolean crossDay = TimeUtils.isCrossDay(startTime, endTime);
|
|
||||||
Long orderId = userOrders.getOrderId();
|
Long orderId = userOrders.getOrderId();
|
||||||
if (!crossDay) {
|
//处理为自然时间段:防止跨天
|
||||||
//未跨天
|
List<TimeSegment> timeSegments = TimeUtils.splitByDays(startTime, endTime);
|
||||||
TimeSegment timeSegment = new TimeSegment(startTime, endTime);
|
for (int i = 0; i < timeSegments.size(); i++) {
|
||||||
|
TimeSegment timeSegment = timeSegments.get(i);
|
||||||
boolean checked = checkWeek(timeSegment, feignEbikeSysRcostsetDto);
|
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);
|
decimal = decimal.add(dailiedFee);
|
||||||
} else {
|
|
||||||
//跨天
|
|
||||||
List<TimeSegment> 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;
|
return decimal;
|
||||||
}
|
}
|
||||||
@ -558,7 +548,7 @@ public class UserOrdersServiceImpl extends ServiceImpl<UserOrdersMapper, EbikeUs
|
|||||||
/**
|
/**
|
||||||
* 按照时间段计费(默认
|
* 按照时间段计费(默认
|
||||||
*
|
*
|
||||||
* @param userOrders 订单信息
|
* @param userOrders 订单信息
|
||||||
* @param feignEbikeSysRcostsetDto 计费规则
|
* @param feignEbikeSysRcostsetDto 计费规则
|
||||||
* @return 计费后总金额
|
* @return 计费后总金额
|
||||||
*/
|
*/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user