package com.hc.business.mapper;

import com.hc.business.dto.ZccmUserCourseDto;
import com.hc.business.model.ZccmUserCourse;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.hc.core.utils.mapper.Mapper;

import java.util.List;

/**
 * 用户课程表(UserCourse)表数据库访问层
 *
 * @author java
 * @since 2020-11-09 10:05:19
 */

@Repository
public interface ZccmUserCourseMapper extends Mapper<ZccmUserCourse> {

    /**
     * 依据用户id 和培训班id 获取用户课程以及进度
     *
     * @param userId 用户id
     * @return 实例对象数组
     */
    List<ZccmUserCourseDto> selectUserCourseList(@Param("userId") Integer userId,
                                                 @Param("classId") Integer classId);

    /**
     * 依据用户id 和培训班id 获取用户课程
     *
     * @param userId  用户id
     * @param classId 班级id
     * @return 实力对象数组
     */
    List<ZccmUserCourse> selectUserCourseListByParam(@Param("userId") Integer userId,
                                                 @Param("classId") Integer classId);

    /**
     * 依据用户id 和培训班id,课程id获取某个课程进度 获取用户课程以及进度
     *
     * @param userId 用户id
     * @return 实例对象数组
     */
    List<ZccmUserCourseDto> selectUserCourseProgress(@Param("userId") Integer userId,
                                                     @Param("classId") Integer classId,
                                                     @Param("courseId") Integer courseId);

    /**
     * 用户课程
     *
     * @param userId   用户id
     * @param classId  班级id
     * @param courseId 课程id
     * @return 实例对象数组
     */
    List<ZccmUserCourse> selectUserCourse(@Param("userId") Integer userId,
                                      @Param("classId") Integer classId,
                                      @Param("courseId") Integer courseId);
}