package cn.teammodel.controller.admin.service;

import cn.teammodel.model.dto.admin.appraise.TimeRangeDto;
import cn.teammodel.model.dto.admin.appraise.UpdateAchievementRuleDto;
import cn.teammodel.model.entity.appraise.AchievementRule;
import cn.teammodel.model.vo.admin.*;
import cn.teammodel.model.vo.appraise.RecordVo;

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

/**
 * @author winter
 * @create 2023-12-06 14:45
 */
public interface AdminAppraiseService {
    AppraiseIndexData getIndexData(TimeRangeDto timeRangeDto);

    /**
    * 按时期分页获取最新的评价数据
    */
    List<RecordVo> conditionLatestRecord(TimeRangeDto timeRangeDto, HttpServletRequest request);

    List<RankPo> classRank(TimeRangeDto timeRangeDto);

    List<RankVo> teacherRank(TimeRangeDto timeRangeDto);

    List<AppraiseNodeRankVo> appraiseNodeRank(TimeRangeDto timeRangeDto);

    List<StudentRankVo> studentRank(TimeRangeDto timeRangeDto);

    List<AchievementRule> updateAchieveRule(UpdateAchievementRuleDto ruleDto);

    List<AchievementRule> getAchieveRules(String periodId);
}
