增加租赁时长

This commit is contained in:
2025-09-27 01:24:39 +08:00
parent 652573f9ef
commit e998dc6651
3 changed files with 28 additions and 3 deletions

View File

@ -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;

View File

@ -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<OrderMainPO> 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<OrderCarImgPO> carImagePOList = new ArrayList<>();

View File

@ -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;
}
/**
* 计算订单逾期金额