package com.hzu.labbooking.mapper;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzu.labbooking.domain.Lab;
import com.hzu.labbooking.domain.vo.LabVO;
import com.hzu.labbooking.domain.vo.MyLabVO;
import org.apache.ibatis.annotations.Param;

/**
 * 实验室信息Mapper接口
 *
 * @author yezihao
 * @date 2021-04-29
 */
public interface LabMapper extends BaseMapper<Lab> {

    /**
     * 查询实验室信息
     *
     * @param id 实验室信息ID
     * @return 实验室信息
     */
    public Lab selectLabById(Long id);

    /**
     * 查询实验室信息列表
     *
     * @param lab    实验室信息
     * @param deptId
     * @return 实验室信息集合
     */
    public List<LabVO> selectBookLabList(@Param("lab") Lab lab,
                                         @Param("deptId") Long deptId,
                                         @Param("parentDeptId") Long parentDeptId);

    /**
     * 查询实验室信息列表
     *
     * @param lab    实验室信息
     * @param deptId
     * @return 实验室信息集合
     */
    public List<MyLabVO> selectLabList(@Param("lab") Lab lab,
                                       @Param("deptId") Long deptId,
                                       @Param("parentDeptId") Long parentDeptId,
                                       @Param("userId") Long userId);

    /**
     * 新增实验室信息
     *
     * @param lab 实验室信息
     * @return 结果
     */
    public int insertLab(Lab lab);

    /**
     * 修改实验室信息
     *
     * @param lab 实验室信息
     * @return 结果
     */
    public int updateLab(Lab lab);

}
