package com.srs.dormitory.mapper;

import java.util.List;

import com.srs.dormitory.domain.DmsNewRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.srs.dormitory.domain.Dto.DmsSearch;
import com.srs.dormitory.domain.Vo.DomInfo;
import com.srs.comprehensive.domain.CphMsg;
import org.apache.ibatis.annotations.Param;

/**
 * 住宿记录Mapper接口
 *
 * @author srs
 * @date 2024-03-15
 */
public interface DmsNewRecordMapper extends BaseMapper<DmsNewRecord> {

    int fastConfirm();
    int confirmUnconfirmedStudents();

    List<DmsNewRecord> findByParam(DmsSearch param);

    List<DomInfo> listView(DmsSearch param);


    /**
     * 查询住宿记录
     *
     * @param id 住宿记录主键
     * @return 住宿记录
     */
    public DmsNewRecord selectDmsNewRecordById(Long id);

    /**
     * 查询住宿记录列表
     *
     * @param dmsNewRecord 住宿记录
     * @return 住宿记录集合
     */
    List<DmsNewRecord> selectDmsNewRecordList(DmsNewRecord dmsNewRecord);

    /**
     * 新增住宿记录
     *
     * @param dmsNewRecord 住宿记录
     * @return 结果
     */
    int insertDmsNewRecord(DmsNewRecord dmsNewRecord);

    /**
     * 修改住宿记录
     *
     * @param dmsNewRecord 住宿记录
     * @return 结果
     */
    int updateDmsNewRecord(DmsNewRecord dmsNewRecord);

    /**
     * 删除住宿记录
     *
     * @param id 住宿记录主键
     * @return 结果
     */
    int deleteDmsNewRecordById(Long id);

    /**
     * 批量删除住宿记录
     *
     * @param ids 需要删除的住宿记录主键集合
     * @return 结果
     */
    int deleteDmsNewRecordByIds(Long[] ids);

    /**
     * 批量插入消息
     *
     * @param messages 消息列表
     * @return 结果
     */
    int batchInsertCphMsg(List<CphMsg> messages);


    /**
     * 根据年级ID列表查询学生用户ID
     *
     * @param gradeIds 年级ID列表
     * @return 学生用户ID列表
     */
    List<Long> selectStudentIdsByGrades(@Param("gradeIds") List<String> gradeIds);

    /**
     * 根据年级ID列表查询学生学号列表
     *
     * @param gradeIds 年级ID列表
     * @return 学生学号列表
     */
    List<String> selectStudentNosByGrades(@Param("gradeIds") List<String> gradeIds);
}
