续租逻辑修改,增加requestId追踪
This commit is contained in:
@ -33,15 +33,11 @@ public class FacadeAspect {
|
|||||||
@Before("facadeLog()")
|
@Before("facadeLog()")
|
||||||
public void doBefore(JoinPoint joinPoint) {
|
public void doBefore(JoinPoint joinPoint) {
|
||||||
// 打印请求相关参数
|
// 打印请求相关参数
|
||||||
log.info("=========================remote Start =========================");
|
log.info("******** remote Start *********");
|
||||||
// 打印 Http method
|
// 打印 Http method
|
||||||
//log.info("HTTP Method : {}", request.getMethod());
|
//log.info("HTTP Method : {}", request.getMethod());
|
||||||
// 打印调用 controller 的全路径以及执行方法
|
// 打印调用 controller 的全路径以及执行方法
|
||||||
log.info("Class Method:{}.{}", joinPoint.getSignature().getDeclaringTypeName(), joinPoint.getSignature().getName());
|
log.info("Class Method:{}.{}, facadeAspect_Request:{}", joinPoint.getSignature().getDeclaringTypeName(), joinPoint.getSignature().getName(),JSON.toJSONString(joinPoint.getArgs()));
|
||||||
// 打印请求的 IP
|
|
||||||
//log.info("IP : {}", request.getRemoteAddr());
|
|
||||||
// 打印请求入参
|
|
||||||
log.info("facadeAspect_Request:{}", JSON.toJSONString(joinPoint.getArgs()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Around("facadeLog()")
|
@Around("facadeLog()")
|
||||||
@ -52,7 +48,7 @@ public class FacadeAspect {
|
|||||||
log.info("facadeAspect_Response:{}", JSON.toJSONString(result));
|
log.info("facadeAspect_Response:{}", JSON.toJSONString(result));
|
||||||
// 执行耗时
|
// 执行耗时
|
||||||
log.info("Time-Consuming : {} ms", System.currentTimeMillis() - startTime);
|
log.info("Time-Consuming : {} ms", System.currentTimeMillis() - startTime);
|
||||||
log.info("=========================remote End =========================");
|
log.info("**************remote End ****************");
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -37,14 +37,23 @@ public class WebLogAspect {
|
|||||||
*/
|
*/
|
||||||
@Before("webLog()")
|
@Before("webLog()")
|
||||||
public void doBefore(JoinPoint joinPoint) {
|
public void doBefore(JoinPoint joinPoint) {
|
||||||
String uid = UUID.randomUUID().toString();
|
|
||||||
MDC.put("requestId",uid.substring(24,36));
|
|
||||||
// 开始打印请求日志
|
|
||||||
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||||
HttpServletRequest request = null;
|
HttpServletRequest request = null;
|
||||||
|
String requestId = null;
|
||||||
|
|
||||||
if (attributes != null) {
|
if (attributes != null) {
|
||||||
request = attributes.getRequest();
|
request = attributes.getRequest();
|
||||||
|
// 从请求头中获取 requestId
|
||||||
|
requestId = request.getHeader("requestId");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 如果请求头中没有 requestId,则生成新的
|
||||||
|
if (StringUtils.isBlank(requestId)) {
|
||||||
|
requestId = UUID.randomUUID().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用 requestId 的一部分作为日志标识
|
||||||
|
MDC.put("requestId", requestId.substring(Math.max(0, requestId.length() - 12)));
|
||||||
// 打印请求相关参数
|
// 打印请求相关参数
|
||||||
log.info("========================= Start =========================");
|
log.info("========================= Start =========================");
|
||||||
// 打印请求入参
|
// 打印请求入参
|
||||||
|
|||||||
@ -0,0 +1,19 @@
|
|||||||
|
package com.sczx.order.config;
|
||||||
|
|
||||||
|
import feign.RequestInterceptor;
|
||||||
|
import feign.RequestTemplate;
|
||||||
|
import org.slf4j.MDC;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class FeignRequestInterceptor implements RequestInterceptor {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void apply(RequestTemplate template) {
|
||||||
|
// 从MDC中获取requestId并添加到请求头
|
||||||
|
String requestId = MDC.get("requestId");
|
||||||
|
if (requestId != null && !requestId.isEmpty()) {
|
||||||
|
template.header("requestId", requestId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -104,11 +104,15 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
orderMainPO.setOrderStatus(OrderStatusEnum.WAIT_PICK.getCode());
|
orderMainPO.setOrderStatus(OrderStatusEnum.WAIT_PICK.getCode());
|
||||||
orderMainPO.setFirstOrderTime(LocalDateTime.now());
|
orderMainPO.setFirstOrderTime(LocalDateTime.now());
|
||||||
//设置预计还车时间
|
//设置预计还车时间
|
||||||
if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.DAILY_RENTAL.getCode(), rentCarRuleDTO.getRentalType())
|
if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.HOUR_RENTAL.getCode(), orderMainPO.getRentalType())){
|
||||||
|| StringUtils.equalsIgnoreCase(RentCarTypeEnum.HOUR_RENTAL.getCode(), orderMainPO.getRentalType())){
|
orderMainPO.setEndRentTime(LocalDateTime.now().plusHours(1));
|
||||||
|
}else if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.DAILY_RENTAL.getCode(), rentCarRuleDTO.getRentalType())){
|
||||||
orderMainPO.setEndRentTime(LocalDateTime.now().plusDays(1));
|
orderMainPO.setEndRentTime(LocalDateTime.now().plusDays(1));
|
||||||
} else if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.DAYS_RENTAL.getCode(), rentCarRuleDTO.getRentalType())){
|
} else if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.DAYS_RENTAL.getCode(), rentCarRuleDTO.getRentalType())){
|
||||||
orderMainPO.setEndRentTime(LocalDateTime.now().plusDays(rentCarRuleDTO.getRentalDays()));
|
orderMainPO.setEndRentTime(LocalDateTime.now().plusDays(rentCarRuleDTO.getRentalDays()));
|
||||||
|
} else if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.RENT_INSTEAD_SELL.getCode(), rentCarRuleDTO.getRentalType())){
|
||||||
|
//以租代售默认期限为30天
|
||||||
|
orderMainPO.setEndRentTime(LocalDateTime.now().plusDays(30));
|
||||||
}
|
}
|
||||||
|
|
||||||
//生成子表订单
|
//生成子表订单
|
||||||
@ -150,12 +154,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
orderSubPOList.add(depositOrder);
|
orderSubPOList.add(depositOrder);
|
||||||
}
|
}
|
||||||
//生成租车订单
|
//生成租车订单
|
||||||
BigDecimal rentCarOrderAmount = new BigDecimal(0);
|
BigDecimal rentCarOrderAmount = getRentCarAmount(rentCarRuleDTO.getRentalType(), rentCarRuleDTO.getRentalPrice(), rentCarRuleDTO.getRentalDays());
|
||||||
if(RentCarTypeEnum.DAYS_RENTAL.getCode().equalsIgnoreCase(rentCarRuleDTO.getRentalType())){
|
|
||||||
rentCarOrderAmount = rentCarRuleDTO.getRentalPrice().multiply(new BigDecimal(rentCarRuleDTO.getRentalDays()));
|
|
||||||
}else {
|
|
||||||
rentCarOrderAmount = rentCarOrderAmount.add(rentCarRuleDTO.getRentalPrice());
|
|
||||||
}
|
|
||||||
OrderSubPO rentOrder = new OrderSubPO();
|
OrderSubPO rentOrder = new OrderSubPO();
|
||||||
rentOrder.setSuborderNo(OrderUtil.generateSubOrderNo(OrderUtil.ZC_PREFIX));
|
rentOrder.setSuborderNo(OrderUtil.generateSubOrderNo(OrderUtil.ZC_PREFIX));
|
||||||
rentOrder.setSuborderType(SubOrderTypeEnum.RENTCAR.getCode());
|
rentOrder.setSuborderType(SubOrderTypeEnum.RENTCAR.getCode());
|
||||||
@ -198,6 +197,8 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public RentCarOrderResultDTO reRentalCarOrder(ReRentCarReq rentCarOrderReq) {
|
public RentCarOrderResultDTO reRentalCarOrder(ReRentCarReq rentCarOrderReq) {
|
||||||
@ -228,12 +229,24 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//生成租车订单
|
//生成租车订单
|
||||||
|
// BigDecimal rentCarOrderAmount = getRentCarAmount(orderMainPO.getRentalType(), orderMainPO.getRentalPrice(), orderMainPO.getRentalDays());
|
||||||
|
|
||||||
|
//计算续租金额
|
||||||
BigDecimal rentCarOrderAmount = new BigDecimal(0);
|
BigDecimal rentCarOrderAmount = new BigDecimal(0);
|
||||||
if(RentCarTypeEnum.DAYS_RENTAL.getCode().equalsIgnoreCase(orderMainPO.getRentalType())){
|
if(RentCarTypeEnum.HOUR_RENTAL.getCode().equalsIgnoreCase(orderMainPO.getRentalType())){
|
||||||
rentCarOrderAmount = orderMainPO.getRentalPrice().multiply(new BigDecimal(orderMainPO.getRentalDays()));
|
Integer overdueHours = OrderUtil.getOrderOverdueHours(orderMainPO.getEndRentTime());
|
||||||
}else {
|
rentCarOrderAmount = rentCarOrderAmount.add(orderMainPO.getRentalPrice().multiply(new BigDecimal(overdueHours+1)));
|
||||||
rentCarOrderAmount = rentCarOrderAmount.add(orderMainPO.getRentalPrice());
|
} else if(RentCarTypeEnum.DAILY_RENTAL.getCode().equalsIgnoreCase(orderMainPO.getRentalType())){
|
||||||
|
Integer rentalDays = OrderUtil.getOrderExpectedDays(orderMainPO.getEndRentTime());
|
||||||
|
rentCarOrderAmount = rentCarOrderAmount.add(orderMainPO.getRentalPrice().multiply(new BigDecimal(rentalDays+1)));
|
||||||
|
} else if(RentCarTypeEnum.DAYS_RENTAL.getCode().equalsIgnoreCase(orderMainPO.getRentalType())){
|
||||||
|
Integer rentalDays = OrderUtil.getOrderExpectedDays(orderMainPO.getEndRentTime());
|
||||||
|
rentCarOrderAmount = rentCarOrderAmount.add(orderMainPO.getRentalPrice().multiply(new BigDecimal(rentalDays+orderMainPO.getRentalDays())));
|
||||||
|
} else {
|
||||||
|
Integer rentalDays = OrderUtil.getOrderExpectedDays(orderMainPO.getEndRentTime());
|
||||||
|
rentCarOrderAmount = rentCarOrderAmount.add(orderMainPO.getRentalPrice().multiply(new BigDecimal(rentalDays+30)));
|
||||||
}
|
}
|
||||||
|
|
||||||
//生成租车子订单
|
//生成租车子订单
|
||||||
OrderSubPO rentOrder = new OrderSubPO();
|
OrderSubPO rentOrder = new OrderSubPO();
|
||||||
rentOrder.setOrderId(orderMainPO.getOrderId());
|
rentOrder.setOrderId(orderMainPO.getOrderId());
|
||||||
@ -244,15 +257,18 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
rentOrder.setPaymentMethod(paymentType);
|
rentOrder.setPaymentMethod(paymentType);
|
||||||
orderSubRepo.save(rentOrder);
|
orderSubRepo.save(rentOrder);
|
||||||
|
|
||||||
LocalDateTime oldEndRentTime = orderMainPO.getEndRentTime();
|
LocalDateTime nowTime = LocalDateTime.now();
|
||||||
|
LocalDateTime oldEndRentTime = orderMainPO.getEndRentTime().isAfter(nowTime) ? orderMainPO.getEndRentTime() : nowTime;
|
||||||
LocalDateTime newEndRentTime = oldEndRentTime;
|
LocalDateTime newEndRentTime = oldEndRentTime;
|
||||||
//刷新预计还车时间
|
//刷新预计还车时间
|
||||||
if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.DAILY_RENTAL.getCode(), orderMainPO.getRentalType())
|
if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.HOUR_RENTAL.getCode(), orderMainPO.getRentalType())){
|
||||||
|| StringUtils.equalsIgnoreCase(RentCarTypeEnum.HOUR_RENTAL.getCode(), orderMainPO.getRentalType())){
|
newEndRentTime = oldEndRentTime.plusHours(1);
|
||||||
|
} else if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.DAILY_RENTAL.getCode(), orderMainPO.getRentalType())){
|
||||||
newEndRentTime = oldEndRentTime.plusDays(1);
|
newEndRentTime = oldEndRentTime.plusDays(1);
|
||||||
} else if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.DAYS_RENTAL.getCode(), orderMainPO.getRentalType())){
|
} else if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.DAYS_RENTAL.getCode(), orderMainPO.getRentalType())){
|
||||||
orderMainPO.setEndRentTime(LocalDateTime.now().plusDays(orderMainPO.getRentalDays()));
|
|
||||||
newEndRentTime = oldEndRentTime.plusDays(orderMainPO.getRentalDays());
|
newEndRentTime = oldEndRentTime.plusDays(orderMainPO.getRentalDays());
|
||||||
|
} else if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.RENT_INSTEAD_SELL.getCode(), orderMainPO.getRentalType())){
|
||||||
|
newEndRentTime = oldEndRentTime.plusDays(30);
|
||||||
}
|
}
|
||||||
//更新订单状态及信息
|
//更新订单状态及信息
|
||||||
LambdaUpdateWrapper<OrderMainPO> updateWrapper = new LambdaUpdateWrapper<>();
|
LambdaUpdateWrapper<OrderMainPO> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
@ -314,8 +330,12 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
paymentType = PaymentTypeEnum.ZFB_PAY.getCode();
|
paymentType = PaymentTypeEnum.ZFB_PAY.getCode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Integer overDueDaysOrHours = OrderUtil.getOrderOverdueDays(orderMainPO.getEndRentTime());
|
||||||
|
if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.HOUR_RENTAL.getCode(), orderMainPO.getRentalType())){
|
||||||
|
overDueDaysOrHours = OrderUtil.getOrderOverdueHours(orderMainPO.getEndRentTime());
|
||||||
|
}
|
||||||
//生成租车订单
|
//生成租车订单
|
||||||
BigDecimal overDueAmount = OrderUtil.getOrderOverdueAmount(orderMainPO.getOverdueDays(), orderMainPO.getOverdueFee());
|
BigDecimal overDueAmount = OrderUtil.getOrderOverdueAmount(overDueDaysOrHours, orderMainPO.getOverdueFee());
|
||||||
//生成租车子订单
|
//生成租车子订单
|
||||||
OrderSubPO rentOrder = new OrderSubPO();
|
OrderSubPO rentOrder = new OrderSubPO();
|
||||||
rentOrder.setOrderId(orderMainPO.getOrderId());
|
rentOrder.setOrderId(orderMainPO.getOrderId());
|
||||||
@ -436,28 +456,46 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
//如果是租车中,需要判断是否逾期了
|
//如果是租车中,需要判断是否逾期了
|
||||||
log.info("判断订单是否逾期");
|
log.info("判断订单是否逾期");
|
||||||
if(orderMainPO.getEndRentTime()!=null){
|
if(orderMainPO.getEndRentTime()!=null){
|
||||||
Integer overdueDays = OrderUtil.getOrderOverdueDays(orderMainPO.getEndRentTime());
|
if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.HOUR_RENTAL.getCode(), orderMainPO.getRentalType())){
|
||||||
log.info("预计还车时间:{},订单逾期天数:{}",orderMainPO.getEndRentTime(),overdueDays);
|
Integer overdueHours = OrderUtil.getOrderOverdueHours(orderMainPO.getEndRentTime());
|
||||||
//逾期天数>0,则改为逾期,并且计算逾期天数以及逾期金额
|
log.info("预计还车时间:{},订单逾期小时数:{}",orderMainPO.getEndRentTime(),overdueHours);
|
||||||
if(overdueDays>0){
|
if(overdueHours>0){
|
||||||
orderDetailDTO.setOverdueDays(overdueDays);
|
orderDetailDTO.setOverdueAmount(OrderUtil.getOrderOverdueAmount(overdueHours, orderMainPO.getOverdueFee()));
|
||||||
orderDetailDTO.setOverdueAmount(OrderUtil.getOrderOverdueAmount(overdueDays, orderMainPO.getOverdueFee()));
|
orderDetailDTO.setOrderStatus(OrderStatusEnum.RENT_OVERDUE.getCode());
|
||||||
orderDetailDTO.setOrderStatus(OrderStatusEnum.RENT_OVERDUE.getCode());
|
LambdaUpdateWrapper<OrderMainPO> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
LambdaUpdateWrapper<OrderMainPO> updateWrapper = new LambdaUpdateWrapper<>();
|
updateWrapper.set(OrderMainPO::getOrderStatus, OrderStatusEnum.RENT_OVERDUE.getCode());
|
||||||
updateWrapper.set(OrderMainPO::getOrderStatus, OrderStatusEnum.RENT_OVERDUE.getCode());
|
updateWrapper.eq(OrderMainPO::getOrderId, orderMainPO.getOrderId());
|
||||||
updateWrapper.set(OrderMainPO::getOverdueDays, overdueDays);
|
orderMainRepo.update(updateWrapper);
|
||||||
updateWrapper.eq(OrderMainPO::getOrderId, orderMainPO.getOrderId());
|
}
|
||||||
orderMainRepo.update(updateWrapper);
|
} else {
|
||||||
}else {
|
Integer overdueDays = OrderUtil.getOrderOverdueDays(orderMainPO.getEndRentTime());
|
||||||
//没逾期则计算到期天数
|
log.info("预计还车时间:{},订单逾期天数:{}",orderMainPO.getEndRentTime(),overdueDays);
|
||||||
orderDetailDTO.setExpectedDays(OrderUtil.getOrderExpectedDays(orderMainPO.getEndRentTime()));
|
//逾期天数>0,则改为逾期,并且计算逾期天数以及逾期金额
|
||||||
|
if(overdueDays>0){
|
||||||
|
orderDetailDTO.setOverdueDays(overdueDays);
|
||||||
|
orderDetailDTO.setOverdueAmount(OrderUtil.getOrderOverdueAmount(overdueDays, orderMainPO.getOverdueFee()));
|
||||||
|
orderDetailDTO.setOrderStatus(OrderStatusEnum.RENT_OVERDUE.getCode());
|
||||||
|
LambdaUpdateWrapper<OrderMainPO> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
|
updateWrapper.set(OrderMainPO::getOrderStatus, OrderStatusEnum.RENT_OVERDUE.getCode());
|
||||||
|
updateWrapper.set(OrderMainPO::getOverdueDays, overdueDays);
|
||||||
|
updateWrapper.eq(OrderMainPO::getOrderId, orderMainPO.getOrderId());
|
||||||
|
orderMainRepo.update(updateWrapper);
|
||||||
|
}else {
|
||||||
|
//没逾期则计算到期天数
|
||||||
|
orderDetailDTO.setExpectedDays(OrderUtil.getOrderExpectedDays(orderMainPO.getEndRentTime()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if(OrderStatusEnum.RENT_OVERDUE.getCode().equalsIgnoreCase(orderMainPO.getOrderStatus())){
|
} else if(OrderStatusEnum.RENT_OVERDUE.getCode().equalsIgnoreCase(orderMainPO.getOrderStatus())){
|
||||||
log.info("订单已逾期的,计算逾期金额");
|
log.info("订单已逾期的,计算逾期金额");
|
||||||
if(orderMainPO.getEndRentTime()!=null){
|
if(orderMainPO.getEndRentTime()!=null){
|
||||||
orderDetailDTO.setOverdueAmount(OrderUtil.getOrderOverdueAmount(orderMainPO.getOverdueDays(), orderMainPO.getOverdueFee()));
|
Integer overdueDaysOrHours = OrderUtil.getOrderOverdueDays(orderMainPO.getEndRentTime());
|
||||||
|
if(StringUtils.equalsIgnoreCase(RentCarTypeEnum.HOUR_RENTAL.getCode(), orderMainPO.getRentalType())){
|
||||||
|
overdueDaysOrHours = OrderUtil.getOrderOverdueHours(orderMainPO.getEndRentTime());
|
||||||
|
}
|
||||||
|
orderDetailDTO.setOverdueAmount(OrderUtil.getOrderOverdueAmount(overdueDaysOrHours, orderMainPO.getOverdueFee()));
|
||||||
|
|
||||||
}
|
}
|
||||||
} else if(OrderStatusEnum.WAIT_PAY.getCode().equalsIgnoreCase(orderMainPO.getOrderStatus())||OrderStatusEnum.RERENT_WAIT_PAY.getCode().equalsIgnoreCase(orderMainPO.getOrderStatus())){
|
} else if(OrderStatusEnum.WAIT_PAY.getCode().equalsIgnoreCase(orderMainPO.getOrderStatus())||OrderStatusEnum.RERENT_WAIT_PAY.getCode().equalsIgnoreCase(orderMainPO.getOrderStatus())){
|
||||||
//TODO 待支付状态要拉起支付
|
//TODO 待支付状态要拉起支付
|
||||||
@ -608,4 +646,24 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
List<String> orderStatusList = orderQueryReq.getOrderStatusList().stream().map(OrderStatusEnum::getCode).collect(Collectors.toList());
|
List<String> orderStatusList = orderQueryReq.getOrderStatusList().stream().map(OrderStatusEnum::getCode).collect(Collectors.toList());
|
||||||
return orderMainRepo.pageQueryOrder(pageNo, pageSize, orderQueryReq.getCustomerId(), orderQueryReq.getStoreId(), orderStatusList, orderQueryReq.getQueryBrandName());
|
return orderMainRepo.pageQueryOrder(pageNo, pageSize, orderQueryReq.getCustomerId(), orderQueryReq.getStoreId(), orderStatusList, orderQueryReq.getQueryBrandName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取租车订单金额
|
||||||
|
* @param rentalType
|
||||||
|
* @param rentalPrice
|
||||||
|
* @param rentalDays
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private static BigDecimal getRentCarAmount(String rentalType, BigDecimal rentalPrice, Integer rentalDays) {
|
||||||
|
BigDecimal rentCarOrderAmount = new BigDecimal(0);
|
||||||
|
if(RentCarTypeEnum.HOUR_RENTAL.getCode().equalsIgnoreCase(rentalType)||RentCarTypeEnum.DAILY_RENTAL.getCode().equalsIgnoreCase(rentalType)){
|
||||||
|
rentCarOrderAmount = rentCarOrderAmount.add(rentalPrice);
|
||||||
|
} else if(RentCarTypeEnum.DAYS_RENTAL.getCode().equalsIgnoreCase(rentalType)){
|
||||||
|
rentCarOrderAmount = rentalPrice.multiply(new BigDecimal(rentalDays));
|
||||||
|
} else {
|
||||||
|
rentCarOrderAmount = rentalPrice.multiply(new BigDecimal(30));
|
||||||
|
}
|
||||||
|
return rentCarOrderAmount;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,6 +40,21 @@ public class OrderUtil {
|
|||||||
return prefix + timestamp + uuidSuffix; // sub代表子订单号
|
return prefix + timestamp + uuidSuffix; // sub代表子订单号
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计算订单逾期小时
|
||||||
|
* @param endRentTime 订单结束时间
|
||||||
|
* @return 逾期小时数
|
||||||
|
*/
|
||||||
|
public static Integer getOrderOverdueHours(LocalDateTime endRentTime) {
|
||||||
|
if(endRentTime!=null){
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
if(now.isAfter(endRentTime)){
|
||||||
|
return (int) ChronoUnit.HOURS.between(endRentTime, now);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算订单逾期天数
|
* 计算订单逾期天数
|
||||||
* @param endRentTime 订单结束时间
|
* @param endRentTime 订单结束时间
|
||||||
|
|||||||
Reference in New Issue
Block a user