|
@@ -18,9 +18,11 @@ import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.jeecg.common.api.vo.Result;
|
|
import org.jeecg.common.api.vo.Result;
|
|
|
import org.jeecg.common.exception.JeecgBootException;
|
|
import org.jeecg.common.exception.JeecgBootException;
|
|
|
|
|
+import org.jeecg.modules.business.entity.BusBookingRooms;
|
|
|
import org.jeecg.modules.business.entity.BusHotel;
|
|
import org.jeecg.modules.business.entity.BusHotel;
|
|
|
import org.jeecg.modules.business.enums.BookingOrdersType;
|
|
import org.jeecg.modules.business.enums.BookingOrdersType;
|
|
|
import org.jeecg.modules.business.enums.CheckInTypeEnum;
|
|
import org.jeecg.modules.business.enums.CheckInTypeEnum;
|
|
|
|
|
+import org.jeecg.modules.business.service.IBusBookingRoomsService;
|
|
|
import org.jeecg.modules.business.service.impl.BusHotelServiceImpl;
|
|
import org.jeecg.modules.business.service.impl.BusHotelServiceImpl;
|
|
|
import org.jeecg.modules.rooms.DTO.*;
|
|
import org.jeecg.modules.rooms.DTO.*;
|
|
|
import org.jeecg.modules.rooms.Enum.CouponEnums;
|
|
import org.jeecg.modules.rooms.Enum.CouponEnums;
|
|
@@ -69,6 +71,9 @@ public class CesRoomsServiceImpl extends ServiceImpl<CesRoomsMapper, CesRooms> i
|
|
|
@Resource
|
|
@Resource
|
|
|
private CesHourRoomRuleServiceImpl hourRoomRuleService;
|
|
private CesHourRoomRuleServiceImpl hourRoomRuleService;
|
|
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private IBusBookingRoomsService bookingRoomsService;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 查询房间
|
|
* 查询房间
|
|
|
* @param dto
|
|
* @param dto
|
|
@@ -285,6 +290,13 @@ public class CesRoomsServiceImpl extends ServiceImpl<CesRoomsMapper, CesRooms> i
|
|
|
hourPrice = hourRoomRule.getAfterOpenRoomPay();
|
|
hourPrice = hourRoomRule.getAfterOpenRoomPay();
|
|
|
}
|
|
}
|
|
|
BigDecimal finalHourPrice = hourPrice;
|
|
BigDecimal finalHourPrice = hourPrice;
|
|
|
|
|
+ List<CesRooms> choiceRooms = null;
|
|
|
|
|
+ if(param.getOrderId() != null && !param.getOrderId().isEmpty()) {
|
|
|
|
|
+ List<BusBookingRooms> bookingRooms = bookingRoomsService.list(Wrappers.<BusBookingRooms>query().eq("booking_orders_id",param.getOrderId()));
|
|
|
|
|
+ List<String> choiceRoomIds = bookingRooms.stream().map(w->w.getRoomId()).collect(Collectors.toList());
|
|
|
|
|
+ choiceRooms = list(Wrappers.<CesRooms>query().in("id",choiceRoomIds));
|
|
|
|
|
+ }
|
|
|
|
|
+ List<CesRooms> finalChoiceRooms = choiceRooms;
|
|
|
layouts.forEach(s-> {
|
|
layouts.forEach(s-> {
|
|
|
CanUseResultVo item = new CanUseResultVo();
|
|
CanUseResultVo item = new CanUseResultVo();
|
|
|
List<CanUseBuildingRoomsVo> floorVos = new ArrayList<>();
|
|
List<CanUseBuildingRoomsVo> floorVos = new ArrayList<>();
|
|
@@ -298,17 +310,23 @@ public class CesRoomsServiceImpl extends ServiceImpl<CesRoomsMapper, CesRooms> i
|
|
|
s.setFavPrice(finalHourPrice);
|
|
s.setFavPrice(finalHourPrice);
|
|
|
} else
|
|
} else
|
|
|
s.setFavPrice(null);
|
|
s.setFavPrice(null);
|
|
|
|
|
+
|
|
|
floors.forEach(c->{
|
|
floors.forEach(c->{
|
|
|
CanUseBuildingRoomsVo floorRoomsVo = new CanUseBuildingRoomsVo();
|
|
CanUseBuildingRoomsVo floorRoomsVo = new CanUseBuildingRoomsVo();
|
|
|
List<CesRooms> floorRooms = allRooms.stream().filter(e->e.getFloorId().equals(c.getId()) && e.getLayoutId().equals(s.getId())).collect(Collectors.toList());
|
|
List<CesRooms> floorRooms = allRooms.stream().filter(e->e.getFloorId().equals(c.getId()) && e.getLayoutId().equals(s.getId())).collect(Collectors.toList());
|
|
|
Optional<CesRoomBuildingFloor> opBuilding = allBuildingFloors.stream().filter(q->q.getId().equals(c.getParentId())).findFirst();
|
|
Optional<CesRoomBuildingFloor> opBuilding = allBuildingFloors.stream().filter(q->q.getId().equals(c.getParentId())).findFirst();
|
|
|
if(!opBuilding.isPresent()) return;
|
|
if(!opBuilding.isPresent()) return;
|
|
|
- floorRoomsVo.setFloorRooms(floorRooms);
|
|
|
|
|
|
|
+
|
|
|
floorRoomsVo.setFloorName(c.getName());
|
|
floorRoomsVo.setFloorName(c.getName());
|
|
|
floorRoomsVo.setFloorId(c.getId());
|
|
floorRoomsVo.setFloorId(c.getId());
|
|
|
floorRoomsVo.setBuildingName(opBuilding.get().getName());
|
|
floorRoomsVo.setBuildingName(opBuilding.get().getName());
|
|
|
floorRoomsVo.setBuildingId(opBuilding.get().getId());
|
|
floorRoomsVo.setBuildingId(opBuilding.get().getId());
|
|
|
canUseRoomCount[0] += floorRooms.size();
|
|
canUseRoomCount[0] += floorRooms.size();
|
|
|
|
|
+ // 设置完size之后添加已用房间 不影响数量
|
|
|
|
|
+ List<String> currentFloorRoomIds = floorRooms.stream().map(r->r.getId()).collect(Collectors.toList());
|
|
|
|
|
+ List<CesRooms> orderRooms = finalChoiceRooms.stream().filter(y->y.getFloorId().equals(c.getId()) && !currentFloorRoomIds.contains(y.getId())).collect(Collectors.toList());
|
|
|
|
|
+ floorRooms.addAll(orderRooms);
|
|
|
|
|
+ floorRoomsVo.setFloorRooms(floorRooms);
|
|
|
floorVos.add(floorRoomsVo);
|
|
floorVos.add(floorRoomsVo);
|
|
|
});
|
|
});
|
|
|
// 主要为了排除掉未排房数量
|
|
// 主要为了排除掉未排房数量
|