package com.zcloud.service.task;

import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;

import java.util.List;

/**
 * 说明：阶段考试学员关系表
 * 作者：luoxiaobao
 * 时间：2021-10-08
 * 官网：www.zcloudchina.com
 */
public interface StageStudentRelationService{

	/**新增
	 * @param pd
	 * @throws Exception
	 */
	public void save(PageData pd)throws Exception;

	/**删除
	 * @param pd
	 * @throws Exception
	 */
	public void delete(PageData pd)throws Exception;

	/**修改
	 * @param pd
	 * @throws Exception
	 */
	public void edit(PageData pd)throws Exception;

	/**列表
	 * @param page
	 * @throws Exception
	 */
	public List<PageData> list(Page page)throws Exception;

	/**列表(全部)
	 * @param pd
	 * @throws Exception
	 */
	public List<PageData> listAll(PageData pd)throws Exception;

	/**通过id获取数据
	 * @param pd
	 * @throws Exception
	 */
	public PageData findById(PageData pd)throws Exception;

	/**批量删除
	 * @param pd
	 * @throws Exception
	 */
	public void deleteAll(PageData pd)throws Exception;

	/**列表(根据所选ID获取数据)
	 * @param pd
	 * @throws Exception
	 */
	List<PageData> findByIds(PageData pd)throws Exception;

	/**
	 * 获取所选考试人员
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	List<PageData> findByExamPaper(PageData pd)throws Exception;

	/**
	 * 保存所选考试人员
	 * @param pd
	 * @throws Exception
	 */
	void saveFromPager(PageData pd)throws Exception;

	/**
	 *根据试卷ID删除考试人员
	 * @param pd
	 */
    void deleteByExamPaper(PageData pd) throws Exception;

	/**
	 * 列表【我的考试】（获取当前用户的所属阶段考试信息）
	 * @param page
	 * @return
	 * @throws Exception
	 */
    List<PageData> pageDataByUser(Page page) throws Exception;

	/**
	 /**列表【app成绩查询】（获取当前用户的所属考试信息列表）
	 * @param page
	 * @return
	 * @throws Exception
	 */
	List<PageData> pageTaskScoreByUser(Page page) throws Exception;

	/**
	 /**列表【app成绩查询】（获取当前用户的所属考试所有信息列表）
	 * @param page
	 * @return
	 * @throws Exception
	 */
	List<PageData> pageTaskScoreByUserAll(Page page) throws Exception;


	/**修改（更新学员考试状态）
	 * @param
	 * @throws Exception
	 */
	public void updateStudentState(PageData pd)throws Exception;

	/**修改（更新学员考试成绩及状态）
	 * @param
	 * @throws Exception
	 */
	public void updateStudentScore(PageData pd)throws Exception;

	/**
	 * 定时任务，处理没有参加考试的学员阶考，考试未考STAGEEXAMSTATE = '4'
	 * @param pd
	 * @throws Exception
	 */
    void overStage(PageData pd)throws Exception;

	/**
	 * 保存所选考试人员
	 * @param pd
	 * @throws Exception
	 */
	void saveFromPagerV2(PageData pd)throws Exception;

	/**列表【app我的任务】（获取当前用户的所属任务信息列表）
	 * @param page
	 * @throws Exception
	 */
	List<PageData> pageTaskByUser(Page page) throws Exception;

	/**
	 *  【app任务详细】（根据STAGESTUDENTRELATION_ID获取当前的任务及课件）
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	PageData getMyTask(PageData pd)throws Exception;

	/**修改  学习完成的 任务 人员关系表
	 * @param pd
	 * @throws Exception
	 */
	void updateClassHourAndCount(PageData pd)throws Exception;

}

