package com.yonge.cooleshow.biz.dal.dao;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yonge.cooleshow.biz.dal.dto.SubjectHomeSearch;
import com.yonge.cooleshow.biz.dal.dto.req.TotalReq;
import com.yonge.cooleshow.biz.dal.vo.SubjectHomeVo;
import com.yonge.cooleshow.biz.dal.vo.TagTotalTeacher;
import com.yonge.cooleshow.biz.dal.vo.res.HomeTotalStudent;
import com.yonge.cooleshow.biz.dal.vo.res.HomeTotalTeacher;
import com.yonge.cooleshow.biz.dal.vo.res.HomeUserToDoNum;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 首页统计查询
 *
 * @Author: liweifan
 * @Data: 2022/4/20 18:34
 */
public interface HomeDao {
    /***
     * 待办事项统计查询
     * @author liweifan
     * @updateTime 2022/4/20 18:39
     * @return: com.yonge.cooleshow.biz.dal.vo.HomeUserToDoNum
     */
    HomeUserToDoNum getUserToDoNum();

    /***
     * 统计查询老师信息
     * @author liweifan
     * @param: totalReq
     * @updateTime 2022/4/21 11:33
     * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.res.HomeTotalTeacher>
     */
    List<HomeTotalTeacher> totalTeacher(@Param("timeType") String timeType, @Param("param") TotalReq param);

    /***
     * 统计查询学生信息
     * @author liweifan
     * @param: timeType
     * @param: param
     * @updateTime 2022/4/21 15:11
     * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.res.HomeTotalStudent>
     */
    List<HomeTotalStudent> totalStudent(@Param("timeType") String timeType, @Param("param") TotalReq param);

    /**
     * 点亮图标统计
     *
     * @param timeType
     * @param query
     * @return
     */
    List<TagTotalTeacher> tagTeacher(@Param("timeType") String timeType, @Param("param") TotalReq query);


    /**
     * 内容数据 声部列表
     *
     * @param page
     * @param query
     * @return
     */
    IPage<SubjectHomeVo> selectSubjectHome(@Param("page") IPage<SubjectHomeVo> page, @Param("query") SubjectHomeSearch query);
}
