package com.qxueyou.scc.teach.subject.service; import java.lang.reflect.InvocationTargetException; import java.util.Date; import java.util.List; import java.util.Map; import com.qxueyou.scc.base.model.Pager; import com.qxueyou.scc.base.model.Result; import com.qxueyou.scc.teach.subject.model.Subject; import com.qxueyou.scc.teach.subject.model.view.MySubjectV; import com.qxueyou.scc.teach.subject.model.view.OpenSubjectV; import org.springframework.transaction.annotation.Transactional; public interface ISubjectService { /** * 新增课程 * * @param subjectName * 课程名称 * @param coverPageFileId * 封面文件id * @param contentFileId * 内容文件id * @return */ Result add(String subjectName, String coverPageFileId, String contentFileId, int type, Date startTime, Date endTime); /** * 修改课程 * * @param subjectName * 课程名称 * @param subjectId * 课程id * @param coverPageFileId * 封面文件id * @param contentFileId * 内容文件id * @return */ Result update(String subjectId, String subjectName, String coverPageFileId, String contentFileId,int type); /** * 删除课程 * * @param subjectIds * 课程id数组 * @return 上传结果:{"success":true,msg:"success",attrs:{}} */ Result delete(String[] subjectIds); /** * 发布课程 * * @param subjectIds * 课程id数组 * @return 上传结果:{"success":true,msg:"success",attrs:{}} */ Result doRelease(String[] subjectIds); /** * 撤回课程 * * @param subjectIds * 课程id数组 * @return 上传结果:{"success":true,msg:"success",attrs:{}} */ Result doCancel(String[] subjectIds); /** * 更新课件数量 * * @param subjectId * @param count * @return */ Result addLectureCount(String subjectId, int count); /** * 查询课程 * * @param text * 搜索文本 * @param pageSize * 页码 * @param pageNum * 每页显示行数 * @return 返回课程列表 */ List list(String text, String teacherId, String status,Integer type, Integer pageSize, Integer pageNum); /** * 查询课程个数 * * @param text * 搜索文本 * @return 返回课程总数 */ int listCount(String text, String teacherId, String status,Integer type); /** * 读取课程 * * @param subjectId * 课程ID * @return 返回课程列表 */ Subject read(String subjectId); /** * 读取课程详情介绍 * * @param subjectId * 课程ID * @return 返回课程详情介绍 */ String readSubjectContent(String subjectId); /** * 查询我的课程 * * @param classId * 班级id * @return 返回课程列表 */ List listMySubjectV(String classId,String userId); /** * 查询公开课程 */ List listOpenSubjectV(); /** * 首页查询我的课程 */ List> getMySubjectList(); /** * 查询我的课程 * * @param classId * 班级id * @return 返回课程列表 */ MySubjectV getMy1stSubjectVById(String subjectId); /** * 查询个人课程章节的学习进度 * * @param classId * 班级id * @return 返回章节学习进度列表 */ List> listChapterStudyProgress(String subjectId); /** * 获取subject对象 */ Subject readSubject(String subjectId); /** * 我的活动获取课程完成情况 * * @return */ Result getPerformance4Subject(); /** * 首页获取课程详情列表 */ Result lstSubjectDetail(); /** * 获取数据排行 * * @return */ Result getDataDesc(String classId, String subjectId); /** * 获取上次学习的位置 */ Result lastStudied(String userId); /** * 添加班级课程 * @param origSubjectId * @param teacherId * @param schoolYear * @param term * @return * @throws InvocationTargetException * @throws IllegalAccessException */ Result addClsSubject(String classId,String origSubjectId, String teacherId, Integer schoolYear, Integer term) throws IllegalAccessException, InvocationTargetException; /** * 更新班级课程 * @param subjectId * @param origSubjectId * @param teacherId * @param schoolYear * @param term * @return */ Result updateClsSubject(String classId,String subjectId, String origSubjectId, String teacherId, Integer schoolYear, Integer term); /** * 删除班级课程 * @param classId * @param subjectIds * @return */ Result deleteClsSubject(String classId, String[] subjectIds); /** * 查询班级课程 * * @param classId * @param schoolYear * @param term * @return */ public List> clsSubjectlist(String classId, Integer schoolYear, Integer term); /** * 获取班级学期 * * @param classId * @return */ public List> termList(String classId); /** * 我的课程按学期分类 * * @param classId * @return */ public List> myTermSubjectList(String classId); /** * 我的课程,按时间排序 * * @param classId * @return */ public List> mySubjectList(String classId, Pager pager); /** * 查询老师或管理员可用的课程ID和课程名字列表 * @param teacherId 根据教师ID过滤 * @return */ List> queryAvailableSubjectIdAndName(String teacherId,Integer sbujectType); /** * 我的班级信息 * * @param classId * @return */ public Map myClassInfo(String classId); /** * 获取我的课程数量 * * @param classId * @return */ public long myClsSubjectCount(String classId); /** * 获取我的课程进度 * * @param classId * @param userId * @return */ public List> myClsSubjectlist(String classId, String userId, Pager pager); /** * 学员课程作业进度 * * @param classId * @param subjectId * @return */ public Map studentSubjectHomeworkProgress(String classId, String subjectId, String userId); /** * 学员考试作业进度 * * @param classId * @param subjectId * @return */ public Map studentSubjectExamProgress(String classId, String subjectId, String studentId); /** * 获取学员的课程进度 * * @param classId * @return */ public List> studentSubjectProgress(String classId, Pager pager); /** * 班级学员课件总体进度 * * @param subjectId * @param classId * @return */ public List> studentSubjectLectureProgress(String subjectId, String classId); /** * 我的公开课列表 * * @param pageNum * @param pageSize * @param keyword * @return */ public Map myOpenSubjectList(Integer pageNum, Integer pageSize, String keyword); /** * 公开课列表 * * @param pageNum * @param pageSize * @param keyword * @return */ public Map openSubjectList(Integer pageNum, Integer pageSize, String keyword); /** * 公开课详情 * * @param subjectId * @return */ public Map openSubjectInfo(String subjectId); /** * 我的课程详情 * * @param classId * @return */ public Map mySubjectInfo(String subjectId, String classId); /** * app教师端课程列表 * * @param text * @param status * @param type * @param pageSize * @param pageNum * @return */ Result teacherSubjectList(Pager pager, String keyword, String status,Integer type); /** * 课程按学期分类 * * @param classId * @return */ List> termSubjectList(String classId, List> clsSubjectlist); /** * 查询课程关联的班级信息 * @param origSubjectId * @return */ List> querySubjectReClassInfos(String origSubjectId); /** * 获取课件数量 * * @param subjectId * @return */ public long getLectureCount(String subjectId); /** * 获取课程名称 * @param subjectId * @return */ String findSubjectName(String subjectId); }