ソースを参照

房态获只取每个房间当天预约信息

qh 2 年 前
コミット
5dae55bd37

+ 9 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/TodayBookingQueryDto.java

@@ -0,0 +1,9 @@
+package org.jeecg.modules.business.dto;
+
+import lombok.Data;
+
+@Data
+public class TodayBookingQueryDto {
+    private String bookingOrderId;
+    private String roomId;
+}

+ 2 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusRoomBookingOrdersMapper.java

@@ -3,6 +3,7 @@ package org.jeecg.modules.business.mapper;
 import java.util.List;
 
 import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.business.dto.TodayBookingQueryDto;
 import org.jeecg.modules.business.entity.BusRoomBookingOrders;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -13,5 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @Version: V1.0
  */
 public interface BusRoomBookingOrdersMapper extends BaseMapper<BusRoomBookingOrders> {
-
+    List<TodayBookingQueryDto> getTodayBookingOrder(@Param("roomIds") List<String> roomIds);
 }

+ 11 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusRoomBookingOrdersMapper.xml

@@ -2,4 +2,15 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.business.mapper.BusRoomBookingOrdersMapper">
 
+
+    <select id="getTodayBookingOrder" resultType="org.jeecg.modules.business.dto.TodayBookingQueryDto">
+        select o.id,br.room_id from bus_booking_rooms br inner join
+                                    (
+                                        select id from bus_room_booking_orders where DATE_FORMAT(arrival_time,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')
+                                    ) as o on br.booking_orders_id = o.id
+        where br.room_id in
+        <foreach collection="roomIds" item="roomId" open="(" close=")" separator=",">
+            #{roomId}
+        </foreach>
+    </select>
 </mapper>

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

@@ -8,6 +8,7 @@ import org.jeecg.common.util.TokenUtils;
 import org.jeecg.modules.business.dto.BatchOrderSavaDto;
 import org.jeecg.modules.business.dto.BookingBatchRoomsDto;
 import org.jeecg.modules.business.dto.BookingOrderSaveDto;
+import org.jeecg.modules.business.dto.TodayBookingQueryDto;
 import org.jeecg.modules.business.entity.*;
 import org.jeecg.modules.business.enums.BookingOrdersType;
 import org.jeecg.modules.business.enums.BookingStatusTypeEnum;
@@ -919,9 +920,13 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
     @Override
     public List<FloorBuildingRoomVo> getRealtimeInfo(List<CesRooms> rooms) {
         List<FloorBuildingRoomVo> roomVos = new ArrayList<>();
-        List<String> bookingOrderIds = rooms.stream().map(s->s.getBookingOrderId()).collect(Collectors.toList());
+//        List<String> bookingOrderIds = rooms.stream().map(s->s.getBookingOrderId()).collect(Collectors.toList());
+        List<TodayBookingQueryDto> roomBookingOrders = baseMapper.getTodayBookingOrder(rooms.stream().map(s->s.getId()).collect(Collectors.toList()));
+        List<String> bookingOrderIds = roomBookingOrders.stream().map(s->s.getBookingOrderId()).collect(Collectors.toList());
         List<String> livingOrderIds = rooms.stream().map(s->s.getLivingOrderId()).collect(Collectors.toList());
-        List<BusRoomBookingOrders> bookingOrders =  this.list(Wrappers.<BusRoomBookingOrders>query().in("id",bookingOrderIds));
+        List<BusRoomBookingOrders> bookingOrders = bookingOrderIds.size() > 0 ?
+                this.list(Wrappers.<BusRoomBookingOrders>query().in("id",bookingOrderIds))
+                :new ArrayList<>();
         List<BusBookingLayoutDayPrice> bookingLayoutDayPrices =bookingOrderIds.size() > 0? dayPriceService.list(Wrappers.<BusBookingLayoutDayPrice>query()
         .in("booking_order_id",bookingOrderIds)):new ArrayList<>();
         List<String> bookingCusIds = bookingOrders.stream().map(s->s.getContactId()).collect(Collectors.toList());
@@ -938,15 +943,20 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
             vo.setRoomId(s.getId());
             vo.setBookingData(new BookingRealtimeVo());
             vo.setLivingData(new LivingRealtimeVo());
-             Optional<BusRoomBookingOrders> opBookingOrder = bookingOrders.stream().filter(a->a.getId().equals(s.getBookingOrderId())).findFirst();
-             if(opBookingOrder.isPresent()) {
-                 vo.getBookingData().setBookingOrder(opBookingOrder.get());
-                 Optional<BusCustomer> opBookingCustomer = bookingCustomers.stream().filter(a->a.getId().equals(opBookingOrder.get().getContactId())).findFirst();
-                 if(opBookingCustomer.isPresent()){
-                     vo.getBookingData().setBookingCustomer(opBookingCustomer.get());
-                 }
-                 vo.getBookingData().setLayoutDayPrices(bookingLayoutDayPrices.stream().filter(a->a.getBookingOrderId().equals(opBookingOrder.get().getId())).collect(Collectors.toList()));
-             }
+            Optional<TodayBookingQueryDto> optionalTodayBookingQueryDto =  roomBookingOrders.stream().filter(t->t.getRoomId().equals(s.getId())).findFirst();
+            if(optionalTodayBookingQueryDto.isPresent()) {
+                s.setBookingOrderId(optionalTodayBookingQueryDto.get().getBookingOrderId());
+                Optional<BusRoomBookingOrders> opBookingOrder = bookingOrders.stream().filter(a->a.getId().equals(s.getBookingOrderId())).findFirst();
+                if(opBookingOrder.isPresent()) {
+                    vo.getBookingData().setBookingOrder(opBookingOrder.get());
+                    Optional<BusCustomer> opBookingCustomer = bookingCustomers.stream().filter(a->a.getId().equals(opBookingOrder.get().getContactId())).findFirst();
+                    if(opBookingCustomer.isPresent()){
+                        vo.getBookingData().setBookingCustomer(opBookingCustomer.get());
+                    }
+                    vo.getBookingData().setLayoutDayPrices(bookingLayoutDayPrices.stream().filter(a->a.getBookingOrderId().equals(opBookingOrder.get().getId())).collect(Collectors.toList()));
+                }
+            }
+
 
              Optional<BusRoomsLivingOrder> opLivingOrder=livingOrders.stream().filter(a->a.getId().equals(s.getLivingOrderId())).findFirst();
              if(opLivingOrder.isPresent()) {