package com.xjrsoft.module.room.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseMapper;
import com.xjrsoft.module.room.dto.AddRoomDto;
import com.xjrsoft.module.room.dto.RoomPageDto;
import com.xjrsoft.module.room.entity.Room;
import com.xjrsoft.module.room.vo.RoomClassCountVo;
import com.xjrsoft.module.room.vo.RoomClassExistentVo;
import com.xjrsoft.module.room.vo.RoomExcelVo;
import com.xjrsoft.module.room.vo.RoomPageVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @title: 寝室
* @Author dzx
* @Date: 2023-12-27
* @Version 1.0
*/
@Mapper
public interface RoomMapper extends MPJBaseMapper<Room> {
    /**
     * 分页查询
     * @param page
     * @param dto
     * @return
     */
    Page<RoomPageVo> getPage(Page<RoomPageVo> page, RoomPageDto dto);

    List<RoomExcelVo> getList(@Param("dto") RoomPageDto dto);
    /**
     * 批量添加
     */
    Boolean saveBatch(AddRoomDto dto);

    /**
     * 返回最大的序号
     * @return
     */
    Integer getMaxSortCode();

    List<RoomClassCountVo> getRoomClassCount(List<Long> ids);

    /**
     * 查询每个寝室已经入住的班级有哪些
     * @param ids
     * @return
     */
    List<RoomClassExistentVo> getRoomClassExistent(List<Long> ids);

    /**
     * 将有多个班级的寝室设置为混合寝室
     * @return
     */
    Boolean setIsmaxTrue();

    /**
     * 将没有多个班级的混合寝室清除掉
     * @return
     */
    Boolean setIsmaxFalse();


}
