diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/suit/service/impl/SuitValidatorImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/suit/service/impl/SuitValidatorImpl.java index 0ed81ea..1a2f522 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/suit/service/impl/SuitValidatorImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/suit/service/impl/SuitValidatorImpl.java @@ -72,10 +72,10 @@ public class SuitValidatorImpl implements SuitValidator { ServiceUtil.assertion(startRule.getStartingPrice() == null, "起步价不能为空"); ServiceUtil.assertion(startRule.getTimeoutTime() == null, "超时时长不能为空"); ServiceUtil.assertion(startRule.getTimeoutPrice() == null, "超时价格不能为空"); - ServiceUtil.assertion(startRule.getStartingPrice().compareTo(BigDecimal.ZERO) <= 0, "起步价不能小于0"); - ServiceUtil.assertion(startRule.getTimeoutPrice().compareTo(BigDecimal.ZERO) <= 0, "超时价格不能小于0"); - ServiceUtil.assertion(startRule.getStartingTime() <= 0, "起步时长不能小于0"); - ServiceUtil.assertion(startRule.getTimeoutTime() <= 0, "超时时长不能小于0"); + ServiceUtil.assertion(startRule.getStartingPrice().compareTo(BigDecimal.ZERO) <= 0, "起步价不能小于或等于0"); + ServiceUtil.assertion(startRule.getTimeoutPrice().compareTo(BigDecimal.ZERO) <= 0, "超时价格不能小于或等于0"); + ServiceUtil.assertion(startRule.getStartingTime() <= 0, "起步时长不能小于或等于0"); + ServiceUtil.assertion(startRule.getTimeoutTime() <= 0, "超时时长不能小于或等于0"); } else if (SuitRidingRule.INTERVAL_FEE.getCode().equals(suit.getRidingRule())) { List intervalRules = suit.getIntervalRule(); ServiceUtil.assertion(CollectionUtils.isEmptyElement(intervalRules), "收费规则不能为空"); diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/suit/utils/SuitUtil.java b/ruoyi-service/src/main/java/com/ruoyi/bst/suit/utils/SuitUtil.java index 009bf9e..c437b68 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/suit/utils/SuitUtil.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/suit/utils/SuitUtil.java @@ -25,19 +25,20 @@ public class SuitUtil { return 0; } - // 预存款 - BigDecimal depositAmount = suit.getDepositAmount(); - if (depositAmount == null || depositAmount.compareTo(BigDecimal.ZERO) <= 0) { - return 0; - } - // 租赁单位 SuitRentalUnit rentalUnit = SuitRentalUnit.parse(suit.getRentalUnit()); if (rentalUnit == null) { return 0; } - + long seconds = 0; + + // 预存款 + BigDecimal depositAmount = suit.getDepositAmount(); + if (depositAmount == null || depositAmount.compareTo(BigDecimal.ZERO) <= 0) { + seconds = 0; + } + // 起步价计费 if (SuitRidingRule.START_FEE.getCode().equals(suit.getRidingRule())) { seconds = calcTotalTimeForStartFee(depositAmount, suit.getStartRule(), rentalUnit); diff --git a/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java index 3ff31fc..038611e 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java @@ -210,8 +210,11 @@ public class IotReceiveServiceImpl implements IotReceiveService { boolean isQLocked = DeviceStatus.Q_LOCKED.getCode().equals(device.getStatus()); // 是否强制断电 boolean isDispatching = DeviceStatus.DISPATCHING.getCode().equals(device.getStatus()); // 是否调度中 - // 是否有正在使用的订单 + // 是否有正在使用的订单,若没有订单则不处理 boolean hasOrder = device.getOrderDeviceId() != null && OrderDeviceStatus.USING.getCode().equals(device.getOrderDeviceStatus()); + if (!hasOrder) { + return 0; + } // 获取车辆位置信息 LocationAreaVO locationArea = AreaUtil.getLocationArea(device.getLongitude(), device.getLatitude(), area, noRidingList);