派生自 projectDept/qhighschool

yn147
2023-11-24 26780c533f2c2af6b9216306f649c1bcede94e4a
src/main/java/com/qxueyou/scc/teach/subject/service/ISubjectService.java
@@ -1,6 +1,7 @@
package com.qxueyou.scc.teach.subject.service;
import java.lang.reflect.InvocationTargetException;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -8,67 +9,69 @@
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
    *            封面文件id
    * @param contentFileId
    *            内容文件id
    *            内容文件id
    * @return
    */
   Result add(String subjectName, String coverPageFileId, String contentFileId,int type);
   Result add(String subjectName, String coverPageFileId, String contentFileId, int type, Date startTime, Date endTime);
   /**
    * 修改课程
    *
    * 修改课程
    *
    * @param subjectName
    *            课程名称
    *            课程名称
    * @param subjectId
    *            课程id
    *            课程id
    * @param coverPageFileId
    *            封面文件id
    *            封面文件id
    * @param contentFileId
    *            内容文件id
    *            内容文件id
    * @return
    */
   Result update(String subjectId, String subjectName, String coverPageFileId, String contentFileId,int  type);
   /**
    * 删除课程
    *
    * 删除课程
    *
    * @param subjectIds
    *            课程id数组
    * @return 上传结果:{"success":true,msg:"success",attrs:{}}
    *            课程id数组
    * @return 上传结果:{"success":true,msg:"success",attrs:{}}
    */
   Result delete(String[] subjectIds);
   /**
    * 发布课程
    *
    * 发布课程
    *
    * @param subjectIds
    *            课程id数组
    * @return 上传结果:{"success":true,msg:"success",attrs:{}}
    *            课程id数组
    * @return 上传结果:{"success":true,msg:"success",attrs:{}}
    */
   Result doRelease(String[] subjectIds);
   /**
    * 撤回课程
    *
    * 撤回课程
    *
    * @param subjectIds
    *            课程id数组
    * @return 上传结果:{"success":true,msg:"success",attrs:{}}
    *            课程id数组
    * @return 上传结果:{"success":true,msg:"success",attrs:{}}
    */
   Result doCancel(String[] subjectIds);
   /**
    * 更新课件数量
    *
    * 更新课件数量
    *
    * @param subjectId
    * @param count
    * @return
@@ -76,121 +79,126 @@
   Result addLectureCount(String subjectId, int count);
   /**
    * 查询课程
    *
    * 查询课程
    *
    * @param text
    *            搜索文本
    *            搜索文本
    * @param pageSize
    *            页码
    *            页码
    * @param pageNum
    *            每页显示行数
    * @return 返回课程列表
    *            每页显示行数
    * @return 返回课程列表
    */
   List<Subject> list(String text, String teacherId, String status,Integer type, Integer pageSize, Integer pageNum);
   /**
    * 查询课程个数
    *
    * 查询课程个数
    *
    * @param text
    *            搜索文本
    * @return 返回课程总数
    *            搜索文本
    * @return 返回课程总数
    */
   int listCount(String text, String teacherId, String status,Integer type);
   /**
    * 读取课程
    *
    * 读取课程
    *
    * @param subjectId
    *            课程ID
    * @return 返回课程列表
    *            课程ID
    * @return 返回课程列表
    */
   Subject read(String subjectId);
   /**
    * 读取课程详情介绍
    *
    * 读取课程详情介绍
    *
    * @param subjectId
    *            课程ID
    * @return 返回课程详情介绍
    *            课程ID
    * @return 返回课程详情介绍
    */
   String readSubjectContent(String subjectId);
   /**
    * 查询我的课程
    *
    * 查询我的课程
    *
    * @param classId
    *            班级id
    * @return 返回课程列表
    *            班级id
    * @return 返回课程列表
    */
   List<MySubjectV> listMySubjectV(String classId,String userId);
   /**
    * 首页查询我的课程
    * 查询公开课程
    */
   List<OpenSubjectV> listOpenSubjectV();
   /**
    * 首页查询我的课程
    */
   List<Map<String, Object>> getMySubjectList();
   /**
    * 查询我的课程
    *
    * 查询我的课程
    *
    * @param classId
    *            班级id
    * @return 返回课程列表
    *            班级id
    * @return 返回课程列表
    */
   MySubjectV getMy1stSubjectVById(String subjectId);
   /**
    * 查询个人课程章节的学习进度
    *
    * 查询个人课程章节的学习进度
    *
    * @param classId
    *            班级id
    * @return 返回章节学习进度列表
    *            班级id
    * @return 返回章节学习进度列表
    */
   List<Map<String, Object>> listChapterStudyProgress(String subjectId);
   /**
    * 获取subject对象
    * 获取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
    * @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
@@ -199,155 +207,155 @@
    * @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<Map<String, Object>> clsSubjectlist(String classId, Integer schoolYear, Integer term);
   /**
    * 获取班级学期
    *
    * 获取班级学期
    *
    * @param classId
    * @return
    */
   public List<Map<String,Object>> termList(String classId);
   /**
    * 我的课程按学期分类
    *
    * 我的课程按学期分类
    *
    * @param classId
    * @return
    */
   public List<Map<String,Object>> myTermSubjectList(String classId);
   /**
    * 我的课程,按时间排序
    *
    * 我的课程,按时间排序
    *
    * @param classId
    * @return
    */
   public List<Map<String,Object>> mySubjectList(String classId, Pager pager);
   /**
    * 查询老师或管理员可用的课程ID和课程名字列表
    * @param teacherId 根据教师ID过滤
    * 查询老师或管理员可用的课程ID和课程名字列表
    * @param teacherId 根据教师ID过滤
    * @return
    */
   List<Map<String, Object>> queryAvailableSubjectIdAndName(String teacherId,Integer sbujectType);
   /**
    * 我的班级信息
    *
    * 我的班级信息
    *
    * @param classId
    * @return
    */
   public Map<String,Object> myClassInfo(String classId);
   /**
    * 获取我的课程数量
    *
    * 获取我的课程数量
    *
    * @param classId
    * @return
    */
   public long myClsSubjectCount(String classId);
   /**
    * 获取我的课程进度
    *
    * 获取我的课程进度
    *
    * @param classId
    * @param userId
    * @return
    */
   public List<Map<String,Object>> myClsSubjectlist(String classId, String userId, Pager pager);
   /**
    * 学员课程作业进度
    *
    * 学员课程作业进度
    *
    * @param classId
    * @param subjectId
    * @return
    */
   public Map<String, Object> studentSubjectHomeworkProgress(String classId, String subjectId, String userId);
   /**
    * 学员考试作业进度
    *
    * 学员考试作业进度
    *
    * @param classId
    * @param subjectId
    * @return
    */
   public Map<String, Object> studentSubjectExamProgress(String classId, String subjectId, String studentId);
   /**
    * 获取学员的课程进度
    *
    * 获取学员的课程进度
    *
    * @param classId
    * @return
    */
   public List<Map<String,Object>> studentSubjectProgress(String classId, Pager pager);
   /**
    * 班级学员课件总体进度
    *
    * 班级学员课件总体进度
    *
    * @param subjectId
    * @param classId
    * @return
    */
    public List<Map<String, Object>> studentSubjectLectureProgress(String subjectId, String classId);
    /**
    * 我的公开课列表
    *
    * 我的公开课列表
    *
    * @param pageNum
    * @param pageSize
    * @param keyword
    * @return
    */
   public Map<String,Object> myOpenSubjectList(Integer pageNum, Integer pageSize, String keyword);
   /**
    * 公开课列表
    *
    * 公开课列表
    *
    * @param pageNum
    * @param pageSize
    * @param keyword
    * @return
    */
   public Map<String,Object> openSubjectList(Integer pageNum, Integer pageSize, String keyword);
   /**
    * 公开课详情
    *
    * 公开课详情
    *
    * @param subjectId
    * @return
    */
   public Map<String,Object> openSubjectInfo(String subjectId);
   /**
    * 我的课程详情
    *
    * 我的课程详情
    *
    * @param classId
    * @return
    */
   public Map<String,Object> mySubjectInfo(String subjectId, String classId);
   /**
    * app教师端课程列表
    *
    * app教师端课程列表
    *
    * @param text
    * @param status
    * @param type
@@ -356,28 +364,35 @@
    * @return
    */
   Result teacherSubjectList(Pager pager, String keyword, String status,Integer type);
   /**
    * 课程按学期分类
    *
    * 课程按学期分类
    *
    * @param classId
    * @return
    */
   List<Map<String,Object>> termSubjectList(String classId, List<Map<String,Object>> clsSubjectlist);
   /**
    * 查询课程关联的班级信息
    * 查询课程关联的班级信息
    * @param origSubjectId
    * @return
    */
   List<Map<String, Object>> querySubjectReClassInfos(String origSubjectId);
   /**
    * 获取课件数量
    *
    * 获取课件数量
    *
    * @param subjectId
    * @return
    */
   public long getLectureCount(String subjectId);
   /**
    * 获取课程名称
    * @param subjectId
    * @return
    */
   String findSubjectName(String subjectId);
}