package com.qmth.teachcloud.mark.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qmth.teachcloud.mark.dto.mark.manage.MarkGroupClassProgressDto;
import com.qmth.teachcloud.common.bean.dto.mark.MarkUser;
import com.qmth.teachcloud.mark.dto.mark.setting.MarkUserClassDto;
import com.qmth.teachcloud.common.bean.params.mark.setting.MarkClassUserParams;
import com.qmth.teachcloud.mark.entity.MarkUserClass;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 评卷员班级 服务类
 * </p>
 *
 * @author xf
 * @since 2023-09-22
 */
public interface MarkUserClassService extends IService<MarkUserClass> {

    void deleteByExamIdAndPaperNumber(Long examId, String paperNumber);

    MarkUserClassDto listMarkUserClassByExamIdAndPaperNumber(Long examId, String paperNumber);

    List<MarkUser> listClassMarkerByExamIdAndPaperNumberAndGroupNumberAndClassName(Long examId, String paperNumber, Integer groupNumber, String className);

    boolean saveMarkClassUser(MarkClassUserParams markClassUserParams);

    boolean deleteByExamIdAndPaperNumberAndClassName(Long examId, String paperNumber, String className);

    List<MarkUserClass> listByExamIdAndPaperNumber(Long examId, String paperNumber);

    IPage<MarkGroupClassProgressDto> pageClassByExamIdAndPaperNumber(Page<MarkGroupClassProgressDto> page, Long examId, String paperNumber, String className);

    List<MarkUserClass> listByExamIdAndPaperNumberAndUserId(Long examId, String paperNumber, Long userId);
}
