diff --git a/src/main/java/com/sczx/order/po/OrderMainPO.java b/src/main/java/com/sczx/order/po/OrderMainPO.java index ff07825..83b049d 100644 --- a/src/main/java/com/sczx/order/po/OrderMainPO.java +++ b/src/main/java/com/sczx/order/po/OrderMainPO.java @@ -105,11 +105,12 @@ public class OrderMainPO implements Serializable { @ApiModelProperty("申请还车时间") private LocalDateTime reqEndRentTime; - - @ApiModelProperty("实际还车时间") private LocalDateTime actEndRentTime; + @ApiModelProperty("租赁时长") + private Integer rentalDuration; + @ApiModelProperty("逾期天数") private Integer overdueDays; diff --git a/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java b/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java index 1588d9b..7132d9c 100644 --- a/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java @@ -1280,15 +1280,19 @@ public class OrderServiceImpl implements OrderService { @Transactional(rollbackFor = Exception.class) @Override public OrderDTO confirmReturnCar(ReturnCarReq returnCarReq) { + OrderDTO orderDTO = getOrderInfoByOrderNo(returnCarReq.getOrderNo()); + Integer rentalDuration = OrderUtil.getDuration(orderDTO.getFirstOrderTime(),LocalDateTime.now(),orderDTO.getRentalType()); + //变更订单状态,记录还车时间 LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(OrderMainPO::getOrderStatus, OrderStatusEnum.AUTO_END.getCode()); updateWrapper.set(OrderMainPO::getActEndRentTime, LocalDateTime.now()); updateWrapper.set(Objects.nonNull(returnCarReq.getDamageAmount()),OrderMainPO::getDamageAmount, returnCarReq.getDamageAmount()); updateWrapper.set(StringUtils.isNotBlank(returnCarReq.getDamageDesc()),OrderMainPO::getDamageDesc, returnCarReq.getDamageDesc()); + updateWrapper.set(rentalDuration != null,OrderMainPO::getRentalDuration, rentalDuration); updateWrapper.eq(OrderMainPO::getOrderNo, returnCarReq.getOrderNo()); orderMainRepo.update(updateWrapper); - OrderDTO orderDTO = getOrderInfoByOrderNo(returnCarReq.getOrderNo()); +// OrderDTO orderDTO = getOrderInfoByOrderNo(returnCarReq.getOrderNo()); if(!CollectionUtils.isEmpty(returnCarReq.getImageList())){ //添加车辆图片 List carImagePOList = new ArrayList<>(); diff --git a/src/main/java/com/sczx/order/utils/OrderUtil.java b/src/main/java/com/sczx/order/utils/OrderUtil.java index a050e90..1fd3592 100644 --- a/src/main/java/com/sczx/order/utils/OrderUtil.java +++ b/src/main/java/com/sczx/order/utils/OrderUtil.java @@ -98,6 +98,26 @@ public class OrderUtil { return 0; } + /** + * 计算间隔时间 + * @param startTime + * @param endTime + * @param rentalType + * @return + */ + public static Integer getDuration(LocalDateTime startTime,LocalDateTime endTime,String rentalType) { + if(startTime!=null&&endTime!=null){ + if(startTime.isBefore(endTime)){ + if(StringUtils.equalsIgnoreCase(rentalType, RentCarTypeEnum.HOUR_RENTAL.getCode())){ + return (int) ChronoUnit.HOURS.between(startTime, endTime); + } else { + return (int) ChronoUnit.DAYS.between(startTime, endTime); + } + } + } + return 0; + } + /** * 计算订单逾期金额