From e998dc66513f89b292dcac02d4902604fa54faf0 Mon Sep 17 00:00:00 2001 From: zhangli <123879394@qq.com> Date: Sat, 27 Sep 2025 01:24:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=A7=9F=E8=B5=81=E6=97=B6?= =?UTF-8?q?=E9=95=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/sczx/order/po/OrderMainPO.java | 5 +++-- .../order/service/impl/OrderServiceImpl.java | 6 +++++- .../java/com/sczx/order/utils/OrderUtil.java | 20 +++++++++++++++++++ 3 files changed, 28 insertions(+), 3 deletions(-) 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; + } + /** * 计算订单逾期金额