package com.ssj.dao.sys.situation.dao;

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

import com.ssj.bean.sys.knowledge.domain.KnowDimension;

public interface SituationDao {
    /**
     * 查询学情各维度
     * @return
     */
    List<KnowDimension> findKnowDimesion();

    /**
     * 查询所有知识维度
     * @return
     */
    List<Map<String, Object>> findKnowledgeDimesion (String subject);

    /**
     * 查询语文知识维度
     * @return
     */
    List<Map<String, Object>> findChineseKnowledgeDimension ();

    /**
     * 查询作业各知识维度数量
     * @param vipId 学生id
     * @param subject 科目
     * @param beginTime 开始时间
     * @param endTime 结束时间
     * @param type 类型，1错题，2全部
     * @return
     */
    List<Map<String, Object>> getHomeworkKnowModuleData(String vipId, String subject, String beginTime, String endTime, int type);

    /**
     * 查询使用二级模块作为知识维度的数量
     * @param vipId
     * @param subject
     * @param beginTime
     * @param endTime
     * @param type
     * @return
     */
    List<Map<String, Object>> getChineseHomeworkKnowModuleData(String vipId, String subject, String beginTime, String endTime, int type);

    /**
     * 查询作业理解、记忆、应用类数量
     * @param vipId 学生id
     * @param subject 科目
     * @param beginTime 开始时间
     * @param endTime 结束时间
     * @param type 类型，1错题，2全部
     * @return
     */
    List<Map<String, Object>> getHomeworkKnowClassData(String vipId, String subject, String beginTime, String endTime, int type);

    /**
     * 查询所有有服务过的学生
     * @return
     */
    List<String> queryAllServiceStudent ();

    /**
     * 查询一对一学生的所有知识维度数量
     * @param vipId
     * @param subject
     * @param beginTime
     * @param endTime
     * @return
     */
    List<Map<String, Object>> get121KnowModuleData(String vipId, String subject, String beginTime, String endTime);

    /**
     * 查询一对一学生的错题知识维度数量
     * @param vipId
     * @param subject
     * @param beginTime
     * @param endTime
     * @return
     */
    List<Map<String, Object>> get121WrongKnowModuleData(String vipId, String subject, String beginTime, String endTime);

    /**
     * 查询学生的整体一对一技能维度
     * @param vipId
     * @param subject
     * @param beginTime
     * @param endTime
     * @return
     */
    List<String> get121SkillData(String vipId, String subject, String beginTime, String endTime);

    /**
     * 查询学生的错题一对一技能维度
     * @param vipId
     * @param subject
     * @param beginTime
     * @param endTime
     * @return
     */
    List<String> get121SkillWrongData(String vipId, String subject, String beginTime, String endTime);

    /**
     * 查询作业的错题知识点
     * @param vipId
     * @param subject
     * @param beginTime
     * @param endTime
     * @return
     */
    List<Map<String, Object>> getHomeworkWrongDetail (String vipId, String subject, String beginTime, String endTime);

    /**
     * 查询授课的错题知识点
     * @param vipId
     * @param subject
     * @param beginTime
     * @param endTime
     * @return
     */
    List<Map<String, Object>> getOne2OneWrongDetail (String vipId, String subject, String beginTime, String endTime);

    /**
     * 查询手动勾选的知识点的各维度数量
     * @param vipId
     * @param subject
     * @param beginTime
     * @param endTime
     * @param type
     * @return
     */
    List<Map<String, Object>> getHomeworkKnowHowModuleData(String vipId, String subject, String beginTime, String endTime, int type);

    /**
     * 查询手动勾选知识点的各维度数量，使用二级模块
     * @param vipId
     * @param subject
     * @param beginTime
     * @param endTime
     * @param type
     * @return
     */
    List<Map<String, Object>> getChineseHomeworkKnowHowModuleData(String vipId, String subject, String beginTime, String endTime, int type);

    /**
     * 查询手动勾选知识点各分类知识点错题数量
     * @param vipId
     * @param subject
     * @param beginTime
     * @param endTime
     * @return
     */
    List<Map<String, Object>> getHomeworkWrongKnowHowClassData(String vipId, String subject, String beginTime, String endTime);

    /**
     * 查询手动勾选知识点各分类知识点全部数量
     * @param vipId
     * @param subject
     * @param beginTime
     * @param endTime
     * @return
     */
    List<Map<String, Object>> getHomeworkAllKnowHowClassData(String vipId, String subject, String beginTime, String endTime);
	
	


	List<Map<String, Object>> getHomeworkWrongDetailDemo(String vipId, String subject, String dimension, String grade);

	List<Map<String, Object>> getOne2OneWrongDetailDemo(String vipId, String subject, String dimension);

}
