Browse Source

查询详单时 已入住的和预约的房间分开返回

qh 2 years ago
parent
commit
012363e464

+ 30 - 5
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusRoomBookingOrdersServiceImpl.java

@@ -13,10 +13,7 @@ import org.jeecg.modules.business.enums.BookingStatusTypeEnum;
 import org.jeecg.modules.business.enums.CheckInTypeEnum;
 import org.jeecg.modules.business.enums.CustomerTypeEnum;
 import org.jeecg.modules.business.mapper.BusRoomBookingOrdersMapper;
-import org.jeecg.modules.business.service.IBusBookingLayoutDayPriceService;
-import org.jeecg.modules.business.service.IBusCustomerService;
-import org.jeecg.modules.business.service.IBusRoomBookingOrdersService;
-import org.jeecg.modules.business.service.IBusRoomsLivingOrderService;
+import org.jeecg.modules.business.service.*;
 import org.jeecg.modules.business.vo.BatchOrderEditVo;
 import org.jeecg.modules.business.vo.BookingBatchRoomsVo;
 import org.jeecg.modules.business.vo.BookingOrderEditVo;
@@ -35,6 +32,7 @@ import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -61,6 +59,9 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
     @Resource
     private IBusRoomsLivingOrderService roomsLivingOrderService;
 
+    @Resource
+    private IBusLivingCustomerService livingCustomerService;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public String bookingOrderSave(BookingOrderSaveDto item) {
@@ -288,7 +289,31 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
                 s.setLayoutDayPrices(findLayoutPrice);
             });
             result.setLayoutDayPrices(layoutDayPrices);
-            result.setRoomIds(bookingRooms);
+            // 设置不是住脏或者住净的 预约中的房间
+            result.setRoomIds(bookingRooms.stream().filter(r->!(r.getRoomStatus().equals(RoomStatusEnum.LIVE_DIRTY.getKey()) || r.getRoomStatus().equals(RoomStatusEnum.LIVE_CLEAR.getKey()))).collect(Collectors.toList()));
+            //<editor-fold msg="入住相关信息查询">
+            List<ExtendBusBookingRoomsVo> livingRooms = bookingRooms.stream().filter(r->(r.getRoomStatus().equals(RoomStatusEnum.LIVE_DIRTY.getKey()) || r.getRoomStatus().equals(RoomStatusEnum.LIVE_CLEAR.getKey()))).collect(Collectors.toList());
+            List<String> livingBookingRoomIds = livingRooms.stream().map(r->r.getId()).collect(Collectors.toList());
+
+            List<BusRoomsLivingOrder> livingOrders =
+                    livingBookingRoomIds.size() > 0?
+                    roomsLivingOrderService.list(Wrappers.<BusRoomsLivingOrder>query()
+                    .in("booking_room_id",livingBookingRoomIds)): new ArrayList<>();
+            List<String> livingOrderIds = livingOrders.stream().map(r->r.getId()).collect(Collectors.toList());
+            List<BusLivingCustomer> livingCustomers =livingOrderIds.size()>0? livingCustomerService.list(Wrappers.<BusLivingCustomer>query()
+            .in("living_order_id", livingOrderIds)):new ArrayList<>();
+            livingRooms.forEach(r->{
+                Optional<BusRoomsLivingOrder> opLvOrder = livingOrders.stream().filter(a->a.getBookingRoomId().equals(r.getId())).findFirst();
+
+                if(opLvOrder.isPresent()){
+                    BusRoomsLivingOrder order = opLvOrder.get();
+                    List<BusLivingCustomer> currentLivingCustomers = livingCustomers.stream().filter(s->s.getLivingOrderId().equals(order.getId())).collect(Collectors.toList());
+                    r.setLivingOrder(order);
+                    r.setLivingCustomers(currentLivingCustomers);
+                }
+            });
+            result.setLivingRoomIds(livingRooms);
+            //</editor-fold>
         } else if(orderInfo.getBookingOrdersType().equals(BookingOrdersType.TEAM.getKey())) {
             List<BusBookingBatch> batches = bookingBatchService.list(Wrappers.<BusBookingBatch>query().eq("booking_orders_id",orderId));
             List<BookingBatchRoomsVo> batchesVo = new ArrayList<>();

+ 3 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/BookingOrderEditVo.java

@@ -16,8 +16,10 @@ public class BookingOrderEditVo {
     /**
      *散客预定 走这个
      **/
-    @ApiModelProperty(value = "散客预定 走这个,关联的房间id")
+    @ApiModelProperty(value = "散客预定 走这个,关联的房间id,预约房间列表")
     private List<ExtendBusBookingRoomsVo> roomIds;
+    @ApiModelProperty(value = "散客预定 走这个,关联的房间id,已入住房间列表")
+    private List<ExtendBusBookingRoomsVo> livingRoomIds;
     @ApiModelProperty(value = "房型每天价格 ,1 散客预定 每天房价传入这个必传")
     private List<BusBookingLayoutDayPrice> layoutDayPrices;
     @ApiModelProperty(value = "如果是团队预定,关联房间ID和房型每天价格 走这个参数")

+ 4 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/ExtendBusBookingRoomsVo.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;
 import org.jeecg.modules.business.entity.BusBookingLayoutDayPrice;
 import org.jeecg.modules.business.entity.BusBookingRooms;
+import org.jeecg.modules.business.entity.BusLivingCustomer;
+import org.jeecg.modules.business.entity.BusRoomsLivingOrder;
 
 import java.util.List;
 
@@ -12,4 +14,6 @@ public class ExtendBusBookingRoomsVo extends BusBookingRooms {
     private String layoutName;
     private String roomName;
     private List<BusBookingLayoutDayPrice> layoutDayPrices;
+    private BusRoomsLivingOrder livingOrder;
+    private List<BusLivingCustomer> livingCustomers;
 }