package com.palmnest.dao.dorm;

import java.util.List;

import com.palmnest.application.bean.Page;
import com.palmnest.application.dto.input.DormRoomerListDto;
import com.palmnest.dao.GenericDao;
import com.palmnest.model.dorm.DormRoomerInfo;

/**
 * 宿舍管理信息DAO接口类
 *
 * @author longmeizhen
 */
public interface DormRoomerDao extends GenericDao<DormRoomerInfo, Long> {
	/**
	 * 获取宿舍管理信息列表
	 *
	 * @param dto界面上的参数
	 * @param pageNo
	 * @param pageSize
	 * @return
	 * @throws Exception
	 */
	public Page findList(DormRoomerListDto dto, int pageNo, int pageSize) throws Exception;

	/**
	 * 根据项目、身份证、电话号码查找入宿信息
	 * 项目为必须传的参数
	 * 身份证号码、电话号码为二选一或两者都填
	 *
	 * @param orgId
	 * @param idCard
	 * @param mobile
	 * @return
	 */
	public DormRoomerInfo getDormInfoByIDcardOrMobile(String orgId, String idCard, String mobile);

	/**
	 * 根据项目、身份证、电话号码查找入宿信息
	 *
	 * @param orgId
	 * @param idCard
	 * @param mobile
	 * @return
	 */
	public DormRoomerInfo getDormInfoByOrdId(String orgId, String idCard, String mobile);


	/**
	 * 根据openId获取登录的员工入宿信息
	 *
	 * @param openId
	 * @return
	 */
	public DormRoomerInfo getDormInfoByOpenId(String openId, String orgId);

	/**
	 * 根据公寓、楼宇、楼层、房间号以及项目获取全部舍友
	 * (如果维护了id之后可直接根据房间号id获取对应的数据，现无法满足2018-09-26)
	 * 备注：避免不同楼宇楼层房间名称一样的情况，因此需要这些参数一起做校验
	 *
	 * @param orgId     项目
	 * @param apartment 公寓
	 * @param build     楼宇
	 * @param floor     楼层
	 * @param room      房间
	 * @return
	 */
	public List<DormRoomerInfo> getRoomerByRoomInfo(Long id, String orgId, String apartment, String build, String floor, String room);
}
