package com.qmth.distributed.print.business.mapper;

import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
import com.qmth.teachcloud.common.entity.BasicClazz;
import com.qmth.teachcloud.common.entity.BasicCourse;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 查询条件 Mapper 接口
 * </p>
 */
public interface ConditionMapper {

    List<BasicCourse> listCourse(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("enable") Boolean enable, @Param("printPlanIds") List<String> printPlanIds, @Param("dpr") DataPermissionRule dpr);

    List<String> listPaperNumber(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("printPlanIds") List<String> printPlanIds, @Param("dpr") DataPermissionRule dpr);

    List<BasicCourse> listCourseForApply(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("enable") Boolean enable, @Param("userId") Long userId);

    List<BasicCourse> listCourseForAudit(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("enable") Boolean enable);

    List<String> listPaperNumberForApply(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("userId") Long userId);

    List<String> listPaperNumberAudit(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode);

    List<PrintPlanBrief> listPrintPlan(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);

    List<BasicCourse> listCourseForScore(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("basicCourses") List<BasicCourse> basicCourses, @Param("dpr") DataPermissionRule dpr);

    List<BasicClazz> listClazz(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("dpr") DataPermissionRule dpr);

    List<PrintPlanBrief> listPrintPlanForClient(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("examDetailStatus") String[] examDetailStatus);
}
