diff --git a/src/main/java/com/sczx/order/task/OrderOverdueTask.java b/src/main/java/com/sczx/order/task/OrderOverdueTask.java index 42e03d2..11072ff 100644 --- a/src/main/java/com/sczx/order/task/OrderOverdueTask.java +++ b/src/main/java/com/sczx/order/task/OrderOverdueTask.java @@ -3,11 +3,13 @@ package com.sczx.order.task; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.sczx.order.common.enums.OrderStatusEnum; +import com.sczx.order.common.enums.RentCarTypeEnum; import com.sczx.order.po.OrderMainPO; import com.sczx.order.repository.OrderMainRepo; import com.sczx.order.utils.OrderUtil; import lombok.extern.slf4j.Slf4j; import net.javacrumbs.shedlock.spring.annotation.SchedulerLock; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -68,12 +70,15 @@ public class OrderOverdueTask { for (OrderMainPO order : overdueOrders) { try { //先计算逾期天数 - Integer overdueDays = OrderUtil.getOrderOverdueDays(order.getEndRentTime()); - if(overdueDays>0){ + Integer overdueDaysOrHours = OrderUtil.getOrderOverdueDays(order.getEndRentTime()); + if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.HOUR_RENTAL.getCode(), order.getRentalType())){ + overdueDaysOrHours = OrderUtil.getOrderOverdueHours(order.getEndRentTime()); + } + if(overdueDaysOrHours>0){ // 更新订单状态为逾期 LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(OrderMainPO::getOrderStatus, OrderStatusEnum.RENT_OVERDUE.getCode()) - .set(OrderMainPO::getOverdueDays, overdueDays) + .set(!StringUtils.equalsIgnoreCase(RentCarTypeEnum.HOUR_RENTAL.getCode(), order.getRentalType()),OrderMainPO::getOverdueDays, overdueDaysOrHours) .eq(OrderMainPO::getOrderId, order.getOrderId()) // 确保状态未被其他节点修改 .eq(OrderMainPO::getOrderStatus, OrderStatusEnum.RENT_ING.getCode());