解释一下这段代码public class CostUtils { /** * 计算 * @param record * @param carParkManage * @return */ public static BigDecimal calculate(CarParkingRecord record, CarParkManage carParkManage){ long minutes = DateUtil.between(record.getGmtInto(), DateUtils.getTimestamp(), DateUnit.MINUTE); minutes = minutes - carParkManage.getFreeTime(); if(minutes>0){ BigDecimal count = NumberUtil.div(new BigDecimal(minutes),carParkManage.getTimeUnit()); count = NumberUtil.round(count,0); BigDecimal cost = NumberUtil.mul(count,carParkManage.getUnitCost()); cost = NumberUtil.round(cost,0); if(cost.compareTo(carParkManage.getMaxMoney())>1){ return carParkManage.getMaxMoney(); } return cost; }else{ return new BigDecimal(BigInteger.ZERO); } }
时间: 2023-12-26 14:06:58 浏览: 83
这是一个计算停车费用的工具类,其中包含了一个静态方法 calculate。该方法接受两个参数:CarParkingRecord 类型的 record 对象和 CarParkManage 类型的 carParkManage 对象。CarParkingRecord 对象包含了车辆进入停车场的时间,而 CarParkManage 对象则包含了停车场的相关配置信息,如免费时间、单位时间、单位费用和最高费用等。该方法的返回值是 BigDecimal 类型的费用。
具体实现中,该方法首先计算车辆停放的时间(以分钟为单位),然后减去免费时间。如果停放时间仍大于零,则计算停放时间所对应的费用,并进行四舍五入。如果所得费用大于最高费用,则返回最高费用。最后返回计算得到的费用。如果停放时间小于等于零,则返回零。
阅读全文