package com.hc.business.mapper;

import com.hc.business.dto.StaTimeTable;
import com.hc.business.dto.UserListDto;
import com.hc.business.dto.UserProgressDto;
import com.hc.business.dto.UserScoreDto;
import com.hc.business.model.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.hc.core.utils.mapper.Mapper;

import java.util.List;

/**
 * 用户表(User)表数据库访问层
 *
 * @author java
 * @since 2020-11-09 10:04:14
 */

@Repository
public interface UserMapper extends Mapper<User> {

    /**
     * 手机号查询用户
     *
     * @param userMobile 手机号
     * @return 实例对象数组
     */
    List<User> queryUserByMobile(String userMobile);

    /**
     * 身份证号查询用户
     *
     * @param cardId 身份证号
     * @return 实例对象数组
     */
    List<User> queryOneByCardId(String cardId);

    /**
     * 姓名查询用户
     *
     * @param name 身份证号
     * @return 实例对象数组
     */
    List<User> queryUserByName(String name);


    /**
     * 姓名查询用户
     *
     * @param name 身份证号
     * @return 实例对象数组
     */
    List<UserListDto> queryUserByClassName(@Param("name")String name);

    /**
     * 姓名查询用户
     *
     * @param name 身份证号
     * @return 实例对象数组
     */
    List<UserListDto> queryUserByClassNameAndPay(@Param("name")String name);

    /**
     * 获取最近七天用户统计数量
     *
     * @return 实例对象数组
     */
    List<StaTimeTable> queryByUserCount();

    /**
     * 当天注册用户
     *
     * @return int
     */
    Integer queryToday();

    /**
     * 当月注册用户
     *
     * @return int
     */
    Integer queryMonth();

    /**
     * 当年注册用户
     *
     * @return int
     */
    Integer queryYear();

    /**
     * 用户总数
     *
     * @return int
     */
    int queryTotal();


    //新增统计
    List<UserListDto> queryClassUserList(Integer id);
    List<UserScoreDto>  queryClassScoreList(Integer id);
    List<UserProgressDto> queryClassProgress(Integer id);

}