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

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.CourseHomeVo;
import com.yonge.cooleshow.biz.dal.vo.SubjectHomeVo;
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 com.yonge.cooleshow.common.entity.HttpResponseResult;
import com.yonge.toolset.base.page.PageInfo;

import java.util.Map;

/**
 * @Author: liweifan
 * @Data: 2022/3/30 18:07
 */
public interface HomeService {
    /***
     * 查询首页待办事项
     * @author liweifan
     * @updateTime 2022/3/30 18:10
     * @return: com.yonge.cooleshow.biz.dal.vo.HomeTotalVo
     */
    HomeUserToDoNum getUserToDoNum();
    /***
     * 统计老师数据
     * @author liweifan
     * @param: totalReq
     * @updateTime 2022/4/20 17:00
     * @return: com.yonge.cooleshow.biz.dal.vo.HomeTotalVo.TotalTeacher
     */
    HttpResponseResult<HomeTotalTeacher> totalTeacher(TotalReq totalReq);
    /***
     * 统计学员数据
     * @author liweifan
     * @param: totalReq
     * @updateTime 2022/4/21 15:08
     * @return: com.yonge.cooleshow.common.entity.HttpResponseResult<com.yonge.cooleshow.biz.dal.vo.res.HomeTotalTeacher>
     */
    HttpResponseResult<HomeTotalStudent> totalStudent(TotalReq totalReq);

    /**
     * 获取首页课程数据
     * <p>未完成  未开始&进行中
     * <p>已完成  已完成课程
     *
     * @param param 传入参数
     *              <p> - dateTime  如果查询年数据 yyyy   如果查询月数据 yyyy-mm
     *              <p> - type 类型  PRACTICE陪练课  LIVE直播课
     *              <p> - timeType 时间类型 MONTH、月度 YEAR
     */
    CourseHomeVo queryCourseHomeData(Map<String, Object> param);

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