package com.qmth.teachcloud.mark.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qmth.teachcloud.mark.dto.mark.entrance.MarkEntranceDto;
import com.qmth.teachcloud.mark.dto.mark.manage.MarkQualityDto;
import com.qmth.teachcloud.mark.dto.mark.manage.MarkUserGroupProgressDto;
import com.qmth.teachcloud.common.bean.dto.mark.MarkUser;
import com.qmth.teachcloud.mark.entity.MarkUserGroup;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 评卷员表 Mapper 接口
 * </p>
 *
 * @author xf
 * @since 2023-09-22
 */
public interface MarkUserGroupMapper extends BaseMapper<MarkUserGroup> {

    IPage<MarkEntranceDto> listEntranceGroup(@Param("page") Page<MarkUserGroup> page, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("userId") Long userId, @Param("status") String status);

    List<MarkUser> listGroupUserByExamIdAndPaperNumberAndGroupNumber(@Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("groupNumber") Integer groupNumber, @Param("className") String className);

    IPage<MarkUserGroupProgressDto> pageGroupUserByExamIdAndPaperNumberAndGroupNumber(@Param("page") Page<MarkUserGroupProgressDto> page, @Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("groupNumber") Integer groupNumber, @Param("loginName") String loginName, @Param("className") String className);

    IPage<MarkQualityDto> pageQuality(@Param("page") Page<MarkQualityDto> page, @Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("groupNumber") Integer groupNumber, @Param("loginName") String loginName);
}
