封顶金额修复

This commit is contained in:
邱贞招 2024-12-09 09:54:39 +08:00
parent be0d51b403
commit 9ceda280a6

View File

@ -2070,6 +2070,9 @@ public class AsDeviceServiceImpl extends ServiceImpl<AsDeviceMapper, AsDevice> i
if(cycle == 1){ if(cycle == 1){
order.setCycle(1);//在第几个计费周期内 rule, rule.getRidingRuleJson(), rentalUnit order.setCycle(1);//在第几个计费周期内 rule, rule.getRidingRuleJson(), rentalUnit
ridingFee = calculateRidingFee(order,order.getUnlockTime(), order.getReturnTime()); ridingFee = calculateRidingFee(order,order.getUnlockTime(), order.getReturnTime());
if(ridingFee.compareTo(order.getCappedAmount()) > 0){
ridingFee = order.getCappedAmount();
}
}else { }else {
// 判断一个计费周期是否超过封顶费用如果超出 骑行费 = (第几个周期 - 1) * 封顶费用 + 骑行费 // 判断一个计费周期是否超过封顶费用如果超出 骑行费 = (第几个周期 - 1) * 封顶费用 + 骑行费
// 如果不超出骑行费 = 骑行费 // 如果不超出骑行费 = 骑行费
@ -2079,6 +2082,9 @@ public class AsDeviceServiceImpl extends ServiceImpl<AsDeviceMapper, AsDevice> i
order.setCycle(cycle); order.setCycle(cycle);
Date afterXHours = DateUtils.getTimeAfterXHours(order.getUnlockTime(), Integer.parseInt(chargingCycleValue)*(cycle-1)); Date afterXHours = DateUtils.getTimeAfterXHours(order.getUnlockTime(), Integer.parseInt(chargingCycleValue)*(cycle-1));
BigDecimal remainingFee = calculateRidingFee(order,afterXHours,order.getReturnTime()); 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); ridingFee = new BigDecimal(cycle - 1).multiply(order.getCappedAmount()).add(remainingFee);
}else{ }else{
ridingFee = calculateRidingFee(order, order.getUnlockTime(), order.getReturnTime()); ridingFee = calculateRidingFee(order, order.getUnlockTime(), order.getReturnTime());