package com.qmth.paper.library.business.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qmth.paper.library.business.bean.result.DocManageResult;
import com.qmth.paper.library.business.bean.result.DocManageDetailResult;
import com.qmth.paper.library.business.bean.result.DocManageStatResult;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 文档管理 Mapper 接口
 * </p>
 */
public interface DocManageMapper {

    IPage<DocManageResult> pageData(@Param("page") Page<DocManageResult> page, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("orgIds") Set<Long> orgIds);
    DocManageStatResult statData(@Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("orgIds") Set<Long> orgIds);

    IPage<DocManageDetailResult> pageDetail(@Param("page") Page<DocManageDetailResult> page, @Param("paperScanTaskId") Long paperScanTaskId, @Param("collegeName") String collegeName, @Param("majorName") String majorName, @Param("className") String className, @Param("examRoom") String examRoom, @Param("teacher") String teacher, @Param("teachClass") String teachClass, @Param("isBind") Boolean isBind, @Param("param") String param, @Param("minScore") Double minScore, @Param("maxScore") Double maxScore, @Param("minBindCount") Integer minBindCount, @Param("maxBindCount") Integer maxBindCount, @Param("pictureSymbol") String pictureSymbol, @Param("pictureCount") Integer pictureCount);

    List<DocManageDetailResult> pageDetail(@Param("paperScanTaskId") Long paperScanTaskId, @Param("collegeName") String collegeName, @Param("majorName") String majorName, @Param("className") String className, @Param("examRoom") String examRoom, @Param("teacher") String teacher, @Param("teachClass") String teachClass, @Param("isBind") Boolean isBind, @Param("param") String param, @Param("minScore") Double minScore, @Param("maxScore") Double maxScore, @Param("minBindCount") Integer minBindCount, @Param("maxBindCount") Integer maxBindCount, @Param("pictureSymbol") String pictureSymbol, @Param("pictureCount") Integer pictureCount);

    List<DocManageDetailResult> listDetail(@Param("paperScanTaskId") Long paperScanTaskId, @Param("ids") List<String> ids);
}
