package com.ssj.dao.sys.usercenter.dao;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

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

/**
 * @author Mount Liu
 * @date 2018/9/12
 */
public interface UserCenterQueryDao {
    /**
     * 查询学生服务信息
     * @param vipId
     * @param species S003：作业吧， S010：一对一  S005：贝壳服务
     * @return
     */
    List<Map<String, Object>> findStudentServiceList(String vipId, String species);

    /**
     * 查询学生一对一服务信息
     * @param vipId
     * @return
     */
    List<Map<String, Object>> findStudentOneToOneServiceList(String vipId);
    /**
     * 查询学生一对一服务信息
     * @param vipIdList
     * @return
     */
    List<Map<String, Object>> findStudentOneToOneServiceList(List<String> vipIdList);
    /**
     * 学习状态分析
     * @param vipId
     * @param parentNames
     * @return
     */
    List<Map<String, Object>> findStudentWorkList(String vipId, String[] parentNames);

    /**
     * 用户角色
     * @param userId
     * @return
     */
    List<Map<String, Object>> findRoleList(String userId);

    /**
     * 学生签到次数统计
     * @param id
     * @return
     */
    List<Map<String, Object>> findStudentSubscribeCountList(String id);

    /**
     * 查询一对一老师学生
     * @param userId
     * @return
     */
    List<Map<String, Object>> findOneByOneStudentList(String userId);

    /**
     * 老师批改作业统计
     * @param userId
     * @return
     */
    List<Map<String, Object>> findWorkCountOfTeacherList(String userId);

    /**
     * 查询小塾列表
     * @param params
     * @param pageable
     * @return
     */
    Page<Map<String, Object>> findConchListByPage(Map<String, Object> params, Pageable pageable);
    /**
     * 查询学生列表
     * @param params
     * @param pageable
     * @return
     */
    Page<Map<String, Object>> findStudentListByPage(Map<String, Object> params, Pageable pageable);

    Page<Map<String, Object>> findVipStudentList(Map<String, Object> params, Pageable initPage);

    List<Map<String, Object>> findVipListByUserId(Map<String, Object> params);
}
