package com.chuanghai.ihotel.service; import com.baomidou.mybatisplus.extension.service.IService; import com.chuanghai.ihotel.common.utils.PageUtils; import com.chuanghai.ihotel.common.utils.PageParam; import com.chuanghai.ihotel.controller.request.RoomLockRequest; import com.chuanghai.ihotel.controller.request.RoomRealtimeStatuRequest; import com.chuanghai.ihotel.controller.request.ToDirtyRequest; import com.chuanghai.ihotel.dto.LockRoomDTO; import com.chuanghai.ihotel.entity.RoomRealtimeStatuEntity; import com.chuanghai.ihotel.entity.RoomTypeEntity; import com.chuanghai.ihotel.vo.RoomRealDataStatuVO; import java.time.LocalDateTime; import java.util.List; /** * 实时房态 * * @author codingliang * @email codingliang@gmail.com * @date 2022-07-27 10:02:04 */ public interface RoomRealtimeStatuService extends IService { PageUtils queryPage(PageParam pageParam); /** * 获取当前时间段处在繁忙状态的房间数量 * * 状态为2预定、3入住、4脏房、5锁定表示当前处于繁忙状态 * @param roomTypeId 房型id * @param startTime 开始时间 * @param endTime 结束时间 * @return */ int getBusyNum(Long roomTypeId, LocalDateTime startTime, LocalDateTime endTime); /** * 锁定房源 * @param lockRoomDTO 锁房参数 * @return 锁定的房间id */ Long lockRoomByRoomTypeId(LockRoomDTO lockRoomDTO); /** * 房态锁定释放 * @param bizId 业务id */ void releaseByBizId(Long bizId); /** * 房态信息查询 * @param request * @return */ List realData(RoomRealtimeStatuRequest request); /** * 用户入住,更新状态为入住状态 * @param orderId */ void userHoldOrder(Long orderId); /** * 用户退房,更新状态为脏房状态 * @param orderId */ void userReturnOrder(Long orderId); /** * 房态状态改为干净 * @param statuId */ void cleanByStatuId(Long statuId); /** * 锁定房间 * @param roomLockRequest */ void lock(RoomLockRequest roomLockRequest); /** * 转脏房 * @param request */ void toDirtyByRoomId(ToDirtyRequest request); }