package com.ssj.dao.kmt.correctsys;

import com.ssj.bean.weixin.libmy.domain.TbLibLoginInfo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

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

/**
 * @author yanghuan
 * @title: OneDayAndOneMonthDao
 * @projectName ssj
 * @description: TODO
 * @date 2019/8/1 16:27
 */
public interface OneDayAndOneMonthDao {

    /**
     * 先查出所有当天应该出勤的老师(名字，时间)
     */
    Page<Map<String, java.lang.Object>> findAllTeacher(Map map, Pageable pageable);

    /**
     * 查询各种计算
     */
    Map<String, java.lang.Object> findAllCalculate(Map condition);


    /**
     * 查询各种计算
     */
    Map<String, java.lang.Object> findOneMonthAllCalculate(Map condition);

    /**
     * 查询当天老师们是否出勤
     */
    Map<String, java.lang.Object> findWhetherOnline(Map map);

    /**
     * 查询当月老师出勤率
     */
    Map<String, java.lang.Object> findAttendacneRate(Map map);

    /**
     * 计算老师综合满意度
     */
    Map<String, java.lang.Object> findTeacherSatis(Map map);

    /**
     * 计算总的出勤率
     */
    Map<String, java.lang.Object> findTotalAttenRate(Map map);

    /**
     * 计算匹配知识点老师的响应时间
     */
    Map<String, java.lang.Object> findRespTime(Map map);

    /**
     * 查询单个老师平均响应时间
     */
    Map<String, java.lang.Object> findAvgTime(Map map);

    /**
     * 查询需要丢回收站的匹配老师作业
     */
    List<Map<String, java.lang.Object>> findAllUnfinshHomework(Map map);

    /**
     * 查询所有老师详情
     */
    Page<Map<String, java.lang.Object>> findAllTeacherInfo(Pageable pageable, Map map);

    /**
     * 查询所有练习册老师
     */
    Page<Map<String, java.lang.Object>> findAllExreciseTeacherInfo(Pageable pageable, Map map);

    /**
     *
     */
    Map<String, java.lang.Object> findTeacherCount(Map map);

    /**
     * 查出记录在200条那一个点的时间
     */

    Map<String, java.lang.Object> findTheCount(Map map);

    List<Map<String, Object>> findAllCorrectTeacher(Map map);

    /**
     * 查出记录在500条那个点
     */
    Map<String, java.lang.Object> findKnowCount(Map map);

    /**
     * 查询月出勤率
     */
    Map<String, Object> findMonthCount(Map map);

    Map<String, Object> findWrongCount(Map map);

    Page<Map<String, Object>> findByStartTimeAndEndTime(Map map, Pageable pageable);

    /**
     * 单个老师作业最长等待时长，累计批改时间，响应速度计算
     */
    Map<String, Object> querySimpleTeacherCalculate(Map condition);

    /**
     * 根据老师有效总张数，是否在线离线进行排序
     */
    Page<Map<String, Object>> sortTeacherInfoByHomePicCount(Map map, Pageable pageable);

}
