diff --git a/electripper-system/src/main/java/com/ruoyi/system/service/impl/AsDeviceServiceImpl.java b/electripper-system/src/main/java/com/ruoyi/system/service/impl/AsDeviceServiceImpl.java index b07a3db..fba86cb 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/service/impl/AsDeviceServiceImpl.java +++ b/electripper-system/src/main/java/com/ruoyi/system/service/impl/AsDeviceServiceImpl.java @@ -2070,6 +2070,9 @@ public class AsDeviceServiceImpl extends ServiceImpl i if(cycle == 1){ order.setCycle(1);//在第几个计费周期内 rule, rule.getRidingRuleJson(), rentalUnit ridingFee = calculateRidingFee(order,order.getUnlockTime(), order.getReturnTime()); + if(ridingFee.compareTo(order.getCappedAmount()) > 0){ + ridingFee = order.getCappedAmount(); + } }else { // 判断一个计费周期是否超过封顶费用,如果超出 骑行费 = (第几个周期 - 1) * 封顶费用 + 骑行费 // 如果不超出,骑行费 = 骑行费 @@ -2079,6 +2082,9 @@ public class AsDeviceServiceImpl extends ServiceImpl i order.setCycle(cycle); Date afterXHours = DateUtils.getTimeAfterXHours(order.getUnlockTime(), Integer.parseInt(chargingCycleValue)*(cycle-1)); BigDecimal remainingFee = calculateRidingFee(order,afterXHours,order.getReturnTime()); + if(remainingFee.compareTo(order.getCappedAmount()) > 0){ + remainingFee = order.getCappedAmount(); + } ridingFee = new BigDecimal(cycle - 1).multiply(order.getCappedAmount()).add(remainingFee); }else{ ridingFee = calculateRidingFee(order, order.getUnlockTime(), order.getReturnTime());