package com.zd.laboratory.service;

import java.util.List;

import com.zd.system.api.domain.LabStudentsInfo;
import com.zd.laboratory.domain.dto.LabStudentsInfoAuditDTO;
import com.zd.laboratory.domain.vo.LabStudentsInfoVO;

/**
 * 学生信息Service接口
 *
 * @author zhoupan
 * @date 2021-09-10
 */
public interface ILabStudentsInfoService {
    /**
     * 查询学生信息
     *
     * @param joinStudentsId 学生信息主键
     * @return 学生信息
     */
    public LabStudentsInfo selectLabStudentsInfoByJoinStudentsId(Long joinStudentsId);

    /**
     * 审核
     *
     * @param studentsInfoAuditDTO@return 学生信息
     */
    public Boolean audit(LabStudentsInfoAuditDTO studentsInfoAuditDTO);

    /**
     * 查询学生信息列表
     *
     * @param labStudentsInfo 学生信息
     * @return 学生信息集合
     */
    public List<LabStudentsInfo> selectLabStudentsInfoList(LabStudentsInfo labStudentsInfo);

    /**
     * 新增学生信息
     *
     * @param labStudentsInfo 学生信息
     * @return 结果
     */
    public int insertLabStudentsInfo(LabStudentsInfo labStudentsInfo);

    /**
     * 查询学生信息列表 -vo
     *
     * @param labStudentsInfo 学生信息
     * @return 学生信息集合
     */
    public List<LabStudentsInfoVO> selectStudentsInfoListVO(LabStudentsInfo labStudentsInfo);

    /**
     * 提交我的学生卡
     *
     * @param url 学生卡地址
     * @return 结果
     */
    public int commitMyCard(String url);


    /**
     * 提交我的人脸信息
     *
     * @param url 学生卡地址
     * @return 结果
     */
    public int commitMyFace(String url);


    /**
     * 提交我的人脸信息
     *
     * @param url 学生卡地址
     * @param f 人脸特征数据
     * @return 结果
     */
    public int commitMyFace(String url,byte[] f);

    /**
     * 修改学生信息
     *
     * @param labStudentsInfo 学生信息
     * @return 结果
     */
    public int updateLabStudentsInfo(LabStudentsInfo labStudentsInfo);

    /**
     * 批量删除学生信息
     *
     * @param joinStudentsIds 需要删除的学生信息主键集合
     * @return 结果
     */
    public int deleteLabStudentsInfoByJoinStudentsIds(Long[] joinStudentsIds);

    /**
     * 删除学生信息信息
     *
     * @param joinStudentsId 学生信息主键
     * @return 结果
     */
    public int deleteLabStudentsInfoByJoinStudentsId(Long joinStudentsId);
}
