package com.zhongzheng.modules.course.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzheng.common.core.domain.entity.SysRole;
import com.zhongzheng.modules.course.bo.CourseMenuQueryBo;
import com.zhongzheng.modules.course.bo.CourseQueryBo;
import com.zhongzheng.modules.course.domain.Course;
import com.zhongzheng.modules.course.vo.CourseUserVo;
import com.zhongzheng.modules.course.vo.CourseVo;
import com.zhongzheng.modules.goods.vo.GoodsPeriodStatusVo;
import com.zhongzheng.modules.goods.vo.GoodsPeriodVo;
import com.zhongzheng.modules.goods.vo.GoodsUserVo;
import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
import com.zhongzheng.modules.user.bo.UserPlanQueryBo;
import org.apache.ibatis.annotations.Param;

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

/**
 * 课程Mapper接口
 *
 * @author hjl
 * @date 2021-05-19
 */
public interface CourseMapper extends BaseMapper<Course> {

    CourseVo selectDetailById(Long id);

    List<CourseVo> selectCourseList(CourseQueryBo bo);


    List<GoodsPeriodVo> listGoodsPeriodVo(UserPlanQueryBo bo);

    List<GoodsPeriodStatusVo> listSection(ClassGradeUserQueryBo bo);

    List<GoodsUserVo> goodsList(CourseQueryBo bo);

    List<CourseUserVo> courseList(CourseQueryBo bo);

    CourseUserVo getCourseUserVoInfo(Long id);

    Long rebuildNext(ClassGradeUserQueryBo bo);

    Long gradeIdSelect(@Param("userId") Long userId,@Param("goodsId") Long goodsId);
}
