package com.srs.workstudy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.srs.common.core.domain.AjaxResult;
import com.srs.common.core.page.TableDataInfo;
import com.srs.comprehensive.domain.CphTeacher;
import com.srs.workstudy.domain.QgzxStuPost;
import com.srs.workstudy.domain.dto.QgzxStuPostDto;
import com.srs.workstudy.domain.dto.StuPostSelectDto;
import com.srs.workstudy.domain.vo.StuPostListFindVo;

import java.util.List;
import java.util.Map;

/**
 * 学生岗位Service接口
 *
 * @author srs
 * @date 2024-06-03
 */
public interface IQgzxStuPostService extends IService<QgzxStuPost> {


    public List<CphTeacher> listTeacher(CphTeacher param);

    public AjaxResult getStuFdyName(String stuNo);

    public AjaxResult doReply(QgzxStuPost param);

    Map<String, Object> countStuPostInByPostId(Long postId);

    public AjaxResult doQuit(QgzxStuPost param);

    public AjaxResult doAudit(QgzxStuPost param);

    public AjaxResult cancelApply(Long id);

    List<QgzxStuPost> listView(QgzxStuPost param);

    public AjaxResult doSave(QgzxStuPost param);

    public AjaxResult doApply(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 ids 需要删除的学生岗位主键集合
     * @return 结果
     */
    int deleteQgzxStuPostByIds(Long[] ids);

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

    /**
     * 批量处理
     * @param param
     * @return
     */
    AjaxResult manyAudit(List<QgzxStuPost> param);

    /**
     *  查询学生岗位列表
     * @param param
     * @return
     */
    List<StuPostListFindVo> getQgzxStuPostList(StuPostSelectDto param);
}
