package com.ym.mec.biz.service;

import com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto;
import com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto;
import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
import com.ym.mec.biz.dal.entity.StudentCourseHomework;
import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
import com.ym.mec.biz.dal.page.ExtraExercilseReplyQueryInfo;
import com.ym.mec.common.page.PageInfo;
import com.ym.mec.common.service.BaseService;

import java.util.List;

public interface ExtracurricularExercisesReplyService extends BaseService<Long, ExtracurricularExercisesReply> {

    /**
     * @describe
     * @author Joburgess
     * @date 2020/3/26
     * @param extraExerciseId: 课外训练编号
     * @return java.util.List<com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto>
     */
    List<StudentCourseHomework> findExtraExerciseStudents(Long extraExerciseId, String studentName);

    /**
     * @describe 获取学生的课外训练列表
     * @author Joburgess
     * @date 2020/3/26
     * @param queryInfo:
     * @return java.util.List<com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto>
     */
    PageInfo findStudentExtraExercises(ExtraExercilseQueryInfo queryInfo);

    /**
     * @describe 获取学生课外训练详情
     * @author Joburgess
     * @date 2020/3/26
     * @param studentExerciseId: 学生课外训练编号
     * @return com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto
     */
    CourseHomeworkStudentDetailDto findStudentExtraExerciseDetail(Long studentExerciseId);

    /**
     * @describe 学生提交课外训练
     * @author Joburgess
     * @date 2020/3/26
     * @param extracurricularExercisesReply:
     * @return void
     */
    void submitExtraExercise(ExtracurricularExercisesReply extracurricularExercisesReply);

    /**
     * @describe 获取学生课外训练
     * @author Joburgess
     * @date 2020/4/7
     * @param queryInfo:
     * @return com.ym.mec.common.page.PageInfo
     */
    PageInfo<ExtraExerciseStudentsDto> findExtraExercises(ExtraExercilseReplyQueryInfo queryInfo);

    /**
     * @describe 学生服务信息统计
     * @author Joburgess
     * @date 2020/4/10
     * @param : 
     * @return void
     */
    void exercisesSituationStatistics();
    void exercisesSituationStatistics2(String monday);
}
