package com.srs.workstudy.mapper;

import java.util.List;

import com.srs.comprehensive.domain.CphTeacher;
import com.srs.workstudy.domain.QgzxStuPost;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.srs.workstudy.domain.dto.QgzxStuPostDto;
import com.srs.workstudy.domain.dto.StuPostSelectDto;
import com.srs.workstudy.domain.vo.StuPostListFindVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

/**
 * 学生岗位Mapper接口
 *
 * @author srs
 * @date 2024-06-03
 */
@Mapper
public interface QgzxStuPostMapper extends BaseMapper<QgzxStuPost> {

    public List<CphTeacher> listTeacher(CphTeacher param);


    @Select("select a.teacher_name\n" +
            "from view_stu_info as a\n" +
            "where a.stu_no = #{stuNo}")
    public String getFdyNameByStuNo(String stuNo);



    @Select("select count(1)\n" +
            "from qgzx_stu_post as a\n" +
            "where a.post_id = #{postId} and  (a.apply_status = 2 or (a.apply_status = 4 and a.work_status = \"是\" ) )")
    public Long countZdlsYes(Long postId); //统计指导老师通过的学生数量


    public List<QgzxStuPost> listView(QgzxStuPost param);


    /**
     * 查询学生岗位
     *
     * @param id 学生岗位主键
     * @return 学生岗位
     */
    public QgzxStuPost selectQgzxStuPostById(Long id);

    /**
     * 查询学生岗位列表
     *
     * @param qgzxStuPost 学生岗位
     * @return 学生岗位集合
     */
    List<QgzxStuPost> selectQgzxStuPostList(QgzxStuPost qgzxStuPost);

    /**
     * 新增学生岗位
     *
     * @param qgzxStuPost 学生岗位
     * @return 结果
     */
    int insertQgzxStuPost(QgzxStuPost qgzxStuPost);

    /**
     * 修改学生岗位
     *
     * @param qgzxStuPost 学生岗位
     * @return 结果
     */
    int updateQgzxStuPost(QgzxStuPost qgzxStuPost);
    /**
     * 修改指导老师
     */
    int updateInstructor(QgzxStuPostDto qgzxStuPostDto);

    /**
     * 删除学生岗位
     *
     * @param id 学生岗位主键
     * @return 结果
     */
    int deleteQgzxStuPostById(Long id);

    /**
     * 批量删除学生岗位
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteQgzxStuPostByIds(Long[] ids);

    List<StuPostListFindVo> getQgzxStuPostList(StuPostSelectDto param);

}
