From efc446ecb7ae7a5becaab07402d18723c9f19f7b Mon Sep 17 00:00:00 2001 From: zhangli <123879394@qq.com> Date: Sun, 10 Aug 2025 14:18:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8D=B3=E5=B0=86=E5=88=B0?= =?UTF-8?q?=E6=9C=9F=E5=A4=A9=E6=95=B0=E4=BB=A5=E5=8F=8A=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=80=BB=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/sczx/order/convert/OrderConvert.java | 1 + .../com/sczx/order/dto/OrderDetailDTO.java | 6 ++++++ .../com/sczx/order/service/OrderService.java | 7 +++++++ .../order/service/impl/OrderServiceImpl.java | 18 ++++++++++++++++-- 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sczx/order/convert/OrderConvert.java b/src/main/java/com/sczx/order/convert/OrderConvert.java index c034774..7fd421f 100644 --- a/src/main/java/com/sczx/order/convert/OrderConvert.java +++ b/src/main/java/com/sczx/order/convert/OrderConvert.java @@ -67,6 +67,7 @@ public interface OrderConvert { @Mapping(source = "orderMainPO.actEndRentTime", target = "actEndRentTime"), @Mapping(source = "orderMainPO.renewalTimes", target = "renewalTimes"), @Mapping(source = "orderMainPO.chargeTimes", target = "chargeTimes"), + @Mapping(source = "orderMainPO.orderAmount", target = "orderAmount"), @Mapping(source = "companyStoreDTO.name", target = "storeName"), @Mapping(source = "companyStoreDTO.detailedAddress", target = "detailedAddress"), @Mapping(source = "companyStoreDTO.latitude", target = "latitude"), diff --git a/src/main/java/com/sczx/order/dto/OrderDetailDTO.java b/src/main/java/com/sczx/order/dto/OrderDetailDTO.java index 87ab602..440a9e0 100644 --- a/src/main/java/com/sczx/order/dto/OrderDetailDTO.java +++ b/src/main/java/com/sczx/order/dto/OrderDetailDTO.java @@ -134,6 +134,12 @@ public class OrderDetailDTO { @ApiModelProperty("充电次数") private Integer chargeTimes; + @ApiModelProperty("订单总金额") + private BigDecimal orderAmount; + + @ApiModelProperty("预计到期间隔天数") + private Integer expectedDays; + @ApiModelProperty("订单车辆图片") private List orderCarImgList; } diff --git a/src/main/java/com/sczx/order/service/OrderService.java b/src/main/java/com/sczx/order/service/OrderService.java index 8a4971a..e78aa47 100644 --- a/src/main/java/com/sczx/order/service/OrderService.java +++ b/src/main/java/com/sczx/order/service/OrderService.java @@ -52,6 +52,13 @@ public interface OrderService { */ Integer getOrderOverdueDays(LocalDateTime endRentTime); + /** + * 计算订单即将到期天数 + * @param endRentTime + * @return + */ + Integer getOrderExpectedDays(LocalDateTime endRentTime); + /** * 计算逾期金额 * @param 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 fb41510..9287185 100644 --- a/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java @@ -428,8 +428,8 @@ public class OrderServiceImpl implements OrderService { List orderCarImgList = orderCarImgPOList.stream().map(OrderCarImgPO::getImgUrl).collect(Collectors.toList()); orderDetailDTO.setOrderCarImgList(orderCarImgList); } - //如果是租车中,需要判断是否逾期了 - if(OrderStatusEnum.RENT_ING.getCode().equalsIgnoreCase(orderMainPO.getOrderStatus())){ + else if(OrderStatusEnum.RENT_ING.getCode().equalsIgnoreCase(orderMainPO.getOrderStatus())){ + //如果是租车中,需要判断是否逾期了 log.info("判断订单是否逾期"); if(orderMainPO.getEndRentTime()!=null){ Integer overdueDays = getOrderOverdueDays(orderMainPO.getEndRentTime()); @@ -444,6 +444,9 @@ public class OrderServiceImpl implements OrderService { updateWrapper.set(OrderMainPO::getOverdueDays, overdueDays); updateWrapper.eq(OrderMainPO::getOrderId, orderMainPO.getOrderId()); orderMainRepo.update(updateWrapper); + }else { + //没逾期则计算到期天数 + orderDetailDTO.setExpectedDays(getOrderExpectedDays(orderMainPO.getEndRentTime())); } } @@ -470,6 +473,17 @@ public class OrderServiceImpl implements OrderService { return 0; } + @Override + public Integer getOrderExpectedDays(LocalDateTime endRentTime) { + if(endRentTime!=null){ + LocalDateTime now = LocalDateTime.now(); + if(now.isBefore(endRentTime)){ + return (int) ChronoUnit.DAYS.between(now, endRentTime); + } + } + return 0; + } + @Override public BigDecimal getOrderOverdueAmount(Integer overdueDays, BigDecimal overdueFee) { if(overdueDays!=null&&overdueFee!=null){