package cn.teammodel.controller.admin.service;

import cn.teammodel.model.dto.admin.teacher.CoreUser;
import cn.teammodel.model.dto.admin.teacher.GpTeacherDto;
import cn.teammodel.model.dto.admin.teacher.GpTeacherRequest;
import cn.teammodel.model.dto.admin.teacher.TeacherDto;
import cn.teammodel.model.entity.school.Teacher;
import cn.teammodel.model.entity.teacher.PtTeacherInfo;
import cn.teammodel.model.vo.admin.GpTeacherVo;

import javax.servlet.http.HttpServletRequest;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

public interface TeacherService {
    List<Map<String,Integer>> getTeacherList(TeacherDto teacherDto);
    Map<String, Object> compareData(TeacherDto teacherDto, HttpServletRequest request);
    List<GpTeacherVo> getTeacherFromIes(TeacherDto teacherDto, HttpServletRequest request);
    Map<String,Object> getTeacherDetail(TeacherDto teacherDto, HttpServletRequest request);
    Map<Long, Integer>  getTeacherByRecord(TeacherDto teacherDto);
    Map<String,Object> getTeacherLearningCategory(TeacherDto teacherDto);
    Map<String,Object> getTeacherGradeCount(TeacherDto teacherDto, HttpServletRequest request);
    List<Map<String,Map<String, Long>>> getDistributionOfTeachers(TeacherDto teacherDto, HttpServletRequest request);
    Map<String,Object> getTeachingAndResearch(TeacherDto teacherDto, HttpServletRequest request);
    List<LinkedHashMap<String, LinkedHashMap<String,Object>>>  getTeachingOfTeacher(TeacherDto teacherDto, HttpServletRequest request);
    Map<String,Object> getTeacherOfCapabilityAssessment(TeacherDto teacherDto, HttpServletRequest request);
    void update (TeacherDto teacherDto);
    Map<String,Object> findIdentityByTmdId(TeacherDto teacherDto);
    void delete(TeacherDto teacherDto);
    List<GpTeacherVo>  batchImportPtTeachers(List<GpTeacherVo> gpTeachers, HttpServletRequest request);
    List<Map<String, Object>> findTeachers(CoreUser dto, HttpServletRequest request);
    List<PtTeacherInfo> saveOrUpdate(GpTeacherRequest gpTeacherRequest, HttpServletRequest request);
    void dataSync(GpTeacherRequest gpTeacherRequest, HttpServletRequest request);
}
