package com.ym.mec.biz.service;

import java.util.List;
import java.util.Map;

import com.ym.mec.biz.dal.dto.MusicGroupExtracurricularSummaryDto;
import com.ym.mec.biz.dal.dto.StudentExercisesSituationDto;
import com.ym.mec.biz.dal.dto.TeacherExercisesServiceDto;
import com.ym.mec.biz.dal.dto.TeacherServeDto;
import com.ym.mec.biz.dal.dto.TeacherServeExtraDto;
import com.ym.mec.biz.dal.dto.TeacherServeHomeworkDto;
import com.ym.mec.biz.dal.dto.TeacherServeHomeworkPojo;
import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
import com.ym.mec.biz.dal.page.StudentExerciseMusicGroupQueryInfo;
import com.ym.mec.biz.dal.page.StudentExercisesSituationQueryInfo;
import com.ym.mec.biz.dal.page.StudentServiceDetailQueryInfo;
import com.ym.mec.biz.dal.page.TeacherServeHomeworkQueryInfo;
import com.ym.mec.biz.dal.page.TeacherServeQueryInfo;
import com.ym.mec.common.page.PageInfo;
import com.ym.mec.common.service.BaseService;

public interface StudentExtracurricularExercisesSituationService extends BaseService<Long, StudentExtracurricularExercisesSituation> {
	
	PageInfo<MusicGroupExtracurricularSummaryDto> queryStudentExerciseMusicGroupList(StudentExerciseMusicGroupQueryInfo queryInfo);

    PageInfo<StudentExercisesSituationDto> findStudentExtracurricularExercisesSituations(StudentExercisesSituationQueryInfo queryInfo);

    /**
     * @describe 获取学员服务信息列表
     * @author Joburgess
     * @date 2020.04.29
     * @param queryInfo:
     * @return com.ym.mec.common.page.PageInfo<com.ym.mec.biz.dal.dto.StudentExercisesSituationDto>
     */
    PageInfo<StudentExercisesSituationDto> findServiceStudentSituations(StudentExercisesSituationQueryInfo queryInfo);

    /**
     * @describe 获取学生服务详情
     * @author Joburgess
     * @date 2020.04.29
     * @param queryInfo:
     * @return com.ym.mec.common.page.PageInfo<com.ym.mec.biz.dal.dto.StudentServiceDetailDto>
     */
    List<Map<String, Object>> findServiceStudentDetail(StudentServiceDetailQueryInfo queryInfo);

    /**
     * @describe 获取教师服务指标明细
     * @author Joburgess
     * @date 2021/3/9 0009
     * @param queryInfo:
     * @return com.ym.mec.common.page.PageInfo<com.ym.mec.biz.dal.dto.TeacherServeDto>
     */
    PageInfo<TeacherServeDto> queryTeacherServeInfo(TeacherServeQueryInfo queryInfo);

    /**
     * @describe 教师作业布置提醒
     * @author Joburgess
     * @date 2021/3/9 0009
     * @param teacherServes:
     * @return void
     */
    void teacherServeRemindPush(List<TeacherServeDto> teacherServes, Integer operatorId, String operatorName);

    PageInfo<TeacherServeHomeworkDto> queryTeacherServeHomeworkDetail(TeacherServeHomeworkQueryInfo queryInfo);

    PageInfo<TeacherServeHomeworkPojo> queryTeacherServeHomeworkDetail1(TeacherServeHomeworkQueryInfo queryInfo);

    PageInfo<TeacherServeExtraDto> queryTeacherServeExtraDetail(TeacherServeHomeworkQueryInfo queryInfo);

    /**
     * 获取能布置作业的课程数量
     * @return
     */
    int countWaitCreateHomeworkNum();
    
    /**
     * 根据条件查询老师的服务指标
     * @param queryInfo
     * @return
     */
    List<TeacherServeDto> queryTeacherPerformanceIndicator(TeacherServeQueryInfo queryInfo);

    //批量新增
    void batchInsert(List<StudentExtracurricularExercisesSituation> situations);

    //删除指定学员服务指标
    void deleteByMonday(String monday,List<Integer> studentIds);

    //删除指定学员服务指标
    void deleteByStudent(Integer studentId,String monday);

    TeacherExercisesServiceDto getStatistics(ExtraExercilseQueryInfo queryInfo);
}
