|
|
@@ -325,8 +325,12 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
|
|
|
rabbitTemplate.convertAndSend(rabbitMQConfig.getOrderEventExchange(), rabbitMQConfig.getOrderCloseDelayRoutingKey(), eventMessage);
|
|
|
|
|
|
// 返回支付参数
|
|
|
- String payUrl = String.format(jxnxsPayConfig.getPayUrl(), hotelOrder.getId(), request.getPayAmount());
|
|
|
- return OrderSubmitVO.builder().orderId(hotelOrder.getId()).payUrl(payUrl).build();
|
|
|
+ String payUrl = null;
|
|
|
+ if (totalAmount.doubleValue() > 0) {
|
|
|
+ payUrl = String.format(jxnxsPayConfig.getPayUrl(), hotelOrder.getId(), request.getPayAmount());
|
|
|
+ }
|
|
|
+
|
|
|
+ return OrderSubmitVO.builder().orderId(hotelOrder.getId()).payAmount(totalAmount).payUrl(payUrl).build();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -543,18 +547,24 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
|
|
|
}
|
|
|
|
|
|
// 结算订单
|
|
|
- BillHandleResultDTO billHandleResult = orderBillService.calcBill(orderId);
|
|
|
+ BigDecimal payAmount = order.getPayAmount();
|
|
|
+
|
|
|
String orderStatu = OrderStatuEnum.WAIT_BILL.getCode();
|
|
|
- if ("1".equals(billHandleResult.getResultFlag())) { // 待退款
|
|
|
- if (billHandleResult.getReturnFee().doubleValue() > 0) {
|
|
|
- // TODO 发起退款
|
|
|
- } else {
|
|
|
- // 自动完结订单
|
|
|
- orderStatu = OrderStatuEnum.FINISH.getCode();
|
|
|
+ BillHandleResultDTO billHandleResult = orderBillService.calcBill(orderId);
|
|
|
+ if (payAmount.doubleValue() == 0) { // 实际支付金额为0,表明不需要支付
|
|
|
+ // 自动完结订单
|
|
|
+ orderStatu = OrderStatuEnum.FINISH.getCode();
|
|
|
+ } else {
|
|
|
+ if ("1".equals(billHandleResult.getResultFlag())) { // 待退款
|
|
|
+ if (billHandleResult.getReturnFee().doubleValue() > 0) {
|
|
|
+ // TODO 发起退款
|
|
|
+ } else {
|
|
|
+ // 自动完结订单
|
|
|
+ orderStatu = OrderStatuEnum.FINISH.getCode();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// 密码锁密码删除
|
|
|
roomDoorLockDataService.deleteByOrderId(orderId);
|
|
|
|
|
|
@@ -571,9 +581,13 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
|
|
|
OrderBillHandleVO vo = new OrderBillHandleVO();
|
|
|
vo.setOrderId(orderId);
|
|
|
vo.setBillId(billHandleResult.getBillId());
|
|
|
- vo.setFlag(billHandleResult.getResultFlag());
|
|
|
- vo.setRefundFee(billHandleResult.getReturnFee());
|
|
|
- vo.setSupperFee(billHandleResult.getRealFee());
|
|
|
+ if (OrderStatuEnum.FINISH.getCode().equals(orderStatu)) {
|
|
|
+ vo.setFlag("3");
|
|
|
+ } else {
|
|
|
+ vo.setFlag(billHandleResult.getResultFlag());
|
|
|
+ vo.setRefundFee(billHandleResult.getReturnFee());
|
|
|
+ vo.setSupperFee(billHandleResult.getRealFee());
|
|
|
+ }
|
|
|
|
|
|
return vo;
|
|
|
}
|
|
|
@@ -603,12 +617,18 @@ public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrder
|
|
|
orderEntityList.forEach(order -> {
|
|
|
Long orderId = order.getId();
|
|
|
// 结算订单
|
|
|
- BillHandleResultDTO billHandleResult = orderBillService.calcBill(orderId);
|
|
|
- if ("1".equals(billHandleResult.getResultFlag()) && billHandleResult.getReturnFee().doubleValue() == 0) { // 待退款
|
|
|
+ BigDecimal payAmount = order.getPayAmount();
|
|
|
+ if (payAmount.doubleValue() == 0) {
|
|
|
finishOrderIdList.add(orderId);
|
|
|
} else {
|
|
|
- waitBillOrderIdList.add(orderId);
|
|
|
+ BillHandleResultDTO billHandleResult = orderBillService.calcBill(orderId);
|
|
|
+ if ("1".equals(billHandleResult.getResultFlag()) && billHandleResult.getReturnFee().doubleValue() == 0) { // 待退款
|
|
|
+ finishOrderIdList.add(orderId);
|
|
|
+ } else {
|
|
|
+ waitBillOrderIdList.add(orderId);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
// 密码锁密码删除
|
|
|
roomDoorLockDataService.deleteByOrderId(orderId);
|
|
|
// 更新房态状态
|