|
|
@@ -3,8 +3,11 @@ package org.dromara.backstage.basics.service.impl;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import org.dromara.backstage.basics.domain.PtRoomType;
|
|
|
import org.dromara.backstage.basics.domain.bo.PtRoomBatchSetBo;
|
|
|
+import org.dromara.backstage.basics.domain.bo.QueryRoomBo;
|
|
|
import org.dromara.backstage.basics.domain.vo.PtAreaVo;
|
|
|
+import org.dromara.backstage.basics.mapper.PtRoomTypeMapper;
|
|
|
import org.dromara.common.core.constant.CacheNames;
|
|
|
import org.dromara.common.core.enums.FJLXEnum;
|
|
|
import org.dromara.common.core.enums.HotelRoomStatusEnum;
|
|
|
@@ -43,6 +46,8 @@ public class PtRoomServiceImpl implements IPtRoomService {
|
|
|
|
|
|
private final PtAreaServiceImpl areaService;
|
|
|
|
|
|
+ private final PtRoomTypeMapper roomTypeMapper;
|
|
|
+
|
|
|
// public static final String ROOM_KF = "10";
|
|
|
|
|
|
/**
|
|
|
@@ -90,6 +95,29 @@ public class PtRoomServiceImpl implements IPtRoomService {
|
|
|
return TableDataInfo.build(result);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public TableDataInfo<PtRoomVo> queryPageListByAreaIds(QueryRoomBo bo, PageQuery pageQuery) {
|
|
|
+ LambdaQueryWrapper<PtRoom> lqw = new LambdaQueryWrapper<>();
|
|
|
+ lqw.eq(StringUtils.isNotBlank(bo.getRoomType()),PtRoom::getRoomType, bo.getRoomType());
|
|
|
+ lqw.eq(StringUtils.isNotBlank(bo.getStatus()),PtRoom::getStatus, bo.getStatus());
|
|
|
+ lqw.in(CollectionUtil.isNotEmpty(bo.getFloorIds()),PtRoom::getAreaId, bo.getFloorIds())
|
|
|
+ .and(StringUtils.isNotBlank(bo.getRoomCode()),
|
|
|
+ e -> e.eq(PtRoom::getRoomCode, bo.getRoomCode()).or().eq(PtRoom::getRoomName, bo.getRoomCode()));
|
|
|
+ lqw.orderByDesc(PtRoom::getCreateTime);
|
|
|
+ Page<PtRoomVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
+ List<PtRoomVo> records = result.getRecords();
|
|
|
+ if(CollectionUtil.isNotEmpty(records)){
|
|
|
+ List<PtRoomType> ptRoomTypes = roomTypeMapper.selectBatchIds(records.stream().map(PtRoomVo::getGuestRoomType).collect(Collectors.toList()));
|
|
|
+ Map<Long, PtRoomType> ptRoomTypeMap = ptRoomTypes.stream().collect(Collectors.toMap(PtRoomType::getRoomTypeId, e -> e));
|
|
|
+ records.forEach(x -> {
|
|
|
+ PtRoomType ptRoomType = ptRoomTypeMap.get(x.getGuestRoomType() == null ? "" : x.getGuestRoomType());
|
|
|
+ x.setGuestRoomTypeName(Optional.ofNullable(ptRoomType).map(PtRoomType::getRoomTypeName).orElse(""));
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ return TableDataInfo.build(result);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 根据areaId查询下面的所有房间
|
|
|
*/
|