From 8c99e2d8b6c1e0d9cde6abbe80b4df75be19f6d1 Mon Sep 17 00:00:00 2001
From: Administrator <2863138610@qq.com>
Date: 星期二, 29 十一月 2022 16:31:18 +0800
Subject: [PATCH] 课程与课件bug修复
---
src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java | 789 +++++++++++++++++++++++++++++---------------------------
1 files changed, 410 insertions(+), 379 deletions(-)
diff --git a/src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java b/src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java
index fe85608..9610399 100644
--- a/src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java
+++ b/src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java
@@ -1,12 +1,21 @@
package com.qxueyou.scc.stucontroller;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import com.querydsl.jpa.hibernate.HibernateQueryFactory;
+import com.qxueyou.scc.base.dao.BaseDAO;
import com.qxueyou.scc.base.model.UserInfoWrapper;
+import com.qxueyou.scc.teach.subject.model.SubjectUtils;
import com.qxueyou.scc.user.model.User;
+import org.hibernate.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.orm.hibernate4.HibernateTemplate;
+import org.springframework.orm.jpa.vendor.HibernateJpaSessionFactoryBean;
import org.springframework.web.bind.annotation.*;
import com.alibaba.druid.util.StringUtils;
@@ -34,6 +43,7 @@
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -41,429 +51,450 @@
* 学习端 课程前端控制器
*
* @author chenjunliang
- *
*/
-@Api(tags= "课程管理-学员端")
+@Api(tags = "课程管理-学员端")
@RestController
-@CrossOrigin(origins="*",maxAge=3600)
+@CrossOrigin(origins = "*", maxAge = 3600)
@RequestMapping(value = "stu/subject")
public class StuSubjectController {
- @Autowired
- ISubjectService subjectService;
+ @Autowired
+ ISubjectService subjectService;
- @Autowired
- ILectureService lectureService;
+ @Autowired
+ ILectureService lectureService;
- @Autowired
- IClassLectureService clsLectureService;
+ @Autowired
+ IClassLectureService clsLectureService;
- @Autowired
- IResAudioService audioService;
+ @Autowired
+ IResAudioService audioService;
- @Autowired
- ProgressDAO progressDao;
+ @Autowired
+ ProgressDAO progressDao;
- @Autowired
- ITopicService topicService;
+ @Autowired
+ ITopicService topicService;
- @Autowired
- IEvaluateService evaluateService;
+ @Autowired
+ IEvaluateService evaluateService;
- //--------------------------------------------------------------app端接口---------------------------------------------------------------------------------------------------
- /**
- * 学习端获取 所有课件
- *
- * @param classId
- * @return 状态说明(0,视频。1,音频。2,文档。3,练习。)
- */
- @ApiOperation(value = "获取班级所有课件-学习端", notes = "状态说明(0,视频。1,音频。2,文档。3,练习。)")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType="query", dataType = "String"),
- @ApiImplicitParam(name = "sort", value = "排序方式(desc从大到小,asc从小到大)", required = false, paramType="query", dataType = "String"),
- })
- @GetMapping(value = "/app/getCoursewareLstByClassId")
- public Result appCoursewareLst(String classId, @RequestParam(defaultValue="desc")String sort, Pager pager) {
- System.out.println(classId);
- return clsLectureService.listSubjectLecture(CommonUtils.getClassId(classId), sort, pager);
- }
+ //--------------------------------------------------------------app端接口---------------------------------------------------------------------------------------------------
- /**
- *
- * 学习端获取课程列表
- *
- */
- @ApiOperation(value = "学习端获取课程学年列表")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType="query", dataType = "String"),
- })
- @GetMapping(value = "/app/termList")
- public Result termList(String classId) {
- classId = CommonUtils.getClassId(classId);
- if(StringUtils.isEmpty(classId)) {
- return new Result(false, "班级id不能为空");
- }
- //课程
- List<Map<String, Object>> lstSubject = subjectService.clsSubjectlist(classId, null, null);
- //组装的学期和课程
- List<Map<String, Object>> lstTerm = subjectService.termSubjectList(classId, lstSubject);
-
- return new Result(true, "success",CollectionUtils.newObjectMap("termList", lstTerm, "allSubject", lstSubject));
- }
-
- /**
- *
- * 学习端获取课程列表
- *
- */
- @ApiOperation(value = "我的课程按学期分类")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType="query", dataType = "String"),
- })
- @GetMapping(value = "/app/myTermSubjectList")
- public Result myTermSubjectList(String classId) {
- classId = CommonUtils.getClassId(classId);
- System.out.println("vvvvvvvvv"+classId);
- if(StringUtils.isEmpty(classId)) {
- return new Result(false, "班级id不能为空");
- }
- return new Result(true, "success",subjectService.myTermSubjectList(classId));
- }
-
- /**
- *
- * 学习端获取课程列表
- *
- */
- @ApiOperation(value = "我的课程按时间排序")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType="query", dataType = "String"),
- })
- @GetMapping(value = "/app/mySubjectList")
- public Result mySubjectList(String classId, Pager pager ) {
-// System.out.println("0.0.0.0"+classId);
- classId = CommonUtils.getClassId(classId);
- long count = subjectService.myClsSubjectCount(classId);
- return new Result(true, "success",
- CollectionUtils.newObjectMap("count", count, "listData", subjectService.mySubjectList(classId, pager)));
- }
-
- /**
- * 我的课程详情
- *
- * @param subjectId
- * @param classId
- * @return
- */
- @ApiOperation(value = "我的课程详情")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "subjectId", value = "课程id", required = true, paramType="query", dataType = "String"),
- @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType="query", dataType = "String"),
- })
- @GetMapping(value = "/app/mySubjectInfo")
- public Result mySubjectInfo(String subjectId, String classId) {
- classId = CommonUtils.getClassId(classId);
- if(StringUtils.isEmpty(classId)) {
- return new Result(false, "班级id不能为空");
- }
- if(StringUtils.isEmpty(subjectId)) {
- return new Result(false, "课程id不能为空");
- }
- return new Result(true, "success", subjectService.mySubjectInfo(subjectId, classId));
- }
-
- /**
- *
- * 学习端获取课程列表
- *
- */
- @ApiOperation(value = "我的班级信息")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType="query", dataType = "String"),
- })
- @GetMapping(value = "/app/myClassInfo")
- public Result myClassInfo(String classId) {
- classId = ClientUtils.getClassId();
- if(StringUtils.isEmpty(classId)) {
- return new Result(false, "班级id不能为空");
- }
- return new Result(true, "success",subjectService.myClassInfo(classId));
- }
-
- /**
- *
- * 学习端获取课程列表
- *
- */
- @ApiOperation(value = "学习端获取课程列表")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType="query", dataType = "String"),
- @ApiImplicitParam(name = "schoolYear", value = "学年", required = true, paramType="query", dataType = "String"),
- @ApiImplicitParam(name = "term", value = "学期", required = true, paramType="query", dataType = "String")
- })
- @GetMapping(value = "/app/subjectList")
- public Result subjectList(String classId, Integer schoolYear, Integer term) {
- return new Result(true, "success",subjectService.clsSubjectlist(CommonUtils.getClassId(classId), schoolYear, term));
- }
-
- /**
- *
- * 学习端获取课程列表
- *
- */
- @ApiOperation(value = "学习端获取课程下课件,按创建时间排序")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "subjectId", value = "课程id", required = true, paramType="query", dataType = "String"),
- @ApiImplicitParam(name = "sort", value = "排序方式(desc从大到小,asc从小到大)", required = false, paramType="query", dataType = "String"),
- })
- @GetMapping(value = "/app/listLectureBySubject")
- public Result listLectureBySubject(String subjectId, String classId, @RequestParam(defaultValue="desc")String sort, Pager pager) {
- return new Result(true, "success",clsLectureService.listLectureBySubjectOrderCreateTime(subjectId, CommonUtils.getClassId(classId), sort, pager));
- }
-
- /**
- *
- * 学习端获取其他课件统计
- *
- */
- @ApiOperation(value = "学习端获取其他课件统计")
- @GetMapping(value = "/app/otherLectureCount")
- public Result otherLectureCount() {
- return new Result(true, "success", CollectionUtils.newObjectMap("topicCount",
- topicService.getClassTopicCount(ClientUtils.getClassId()), "evaluate", this.evaluateService.queryStuEvaluateCount()));
- }
-
- /**
- *
- * 学习端获取课程列表
- *
- */
- @ApiOperation(value = "学习端获取课程下课件,按目录分类", notes = "")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType="query", dataType = "String"),
- @ApiImplicitParam(name = "subjectId", value = "课程id", required = true, paramType="query", dataType = "String"),
- @ApiImplicitParam(name = "type", value = "课件类型", required = false, paramType="query", dataType = "String")
- })
- @GetMapping(value = "/app/coursewareList")
- public Result coursewareList(String classId,String subjectId, String type) {
- classId = CommonUtils.getClassId(classId);
-
- if(StringUtils.isEmpty(subjectId)) {
- return new Result(false, "课程id不能为空");
- }
-
- return this.clsLectureService.coursewareChapterList(classId, subjectId, type);
-
- }
-
- /**
- * 我的公开课列表
+ /**
+ * 学习端获取 所有课件
*
- */
+ * @param classId
+ * @return 状态说明(0, 视频 。 1, 音频 。 2, 文档 。 3, 练习 。)
+ */
+ @ApiOperation(value = "获取班级所有课件-学习端", notes = "状态说明(0,视频。1,音频。2,文档。3,练习。)")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "sort", value = "排序方式(desc从大到小,asc从小到大)", required = false, paramType = "query", dataType = "String"),
+ })
+ @GetMapping(value = "/app/getCoursewareLstByClassId")
+ public Result appCoursewareLst(String classId, @RequestParam(defaultValue = "desc") String sort, Pager pager) {
+ System.out.println(classId);
+ return clsLectureService.listSubjectLecture(CommonUtils.getClassId(classId), sort, pager);
+ }
+
+ /**
+ * 学习端获取课程列表
+ */
+ @ApiOperation(value = "学习端获取课程学年列表")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"),
+ })
+ @GetMapping(value = "/app/termList")
+ public Result termList(String classId) {
+ classId = CommonUtils.getClassId(classId);
+ if (StringUtils.isEmpty(classId)) {
+ return new Result(false, "班级id不能为空");
+ }
+ //课程
+ List<Map<String, Object>> lstSubject = subjectService.clsSubjectlist(classId, null, null);
+ //组装的学期和课程
+ List<Map<String, Object>> lstTerm = subjectService.termSubjectList(classId, lstSubject);
+
+ return new Result(true, "success", CollectionUtils.newObjectMap("termList", lstTerm, "allSubject", lstSubject));
+ }
+
+ /**
+ * 学习端获取课程列表
+ */
+ @ApiOperation(value = "我的课程按学期分类")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"),
+ })
+ @GetMapping(value = "/app/myTermSubjectList")
+ public Result myTermSubjectList(String classId) {
+ classId = CommonUtils.getClassId(classId);
+ System.out.println("vvvvvvvvv" + classId);
+ if (StringUtils.isEmpty(classId)) {
+ return new Result(false, "班级id不能为空");
+ }
+ return new Result(true, "success", subjectService.myTermSubjectList(classId));
+ }
+
+ /**
+ * 学习端获取课程列表
+ */
+ @ApiOperation(value = "我的课程按时间排序")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"),
+ })
+ @GetMapping(value = "/app/mySubjectList")
+ public Result mySubjectList(String classId, Pager pager) {
+// System.out.println("0.0.0.0"+classId);
+ classId = CommonUtils.getClassId(classId);
+ long count = subjectService.myClsSubjectCount(classId);
+ return new Result(true, "success",
+ CollectionUtils.newObjectMap("count", count, "listData", subjectService.mySubjectList(classId, pager)));
+ }
+
+ /**
+ * 我的课程详情
+ *
+ * @param subjectId
+ * @param classId
+ * @return
+ */
+ @ApiOperation(value = "我的课程详情")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "subjectId", value = "课程id", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"),
+ })
+ @GetMapping(value = "/app/mySubjectInfo")
+ public Result mySubjectInfo(String subjectId, String classId) {
+ classId = CommonUtils.getClassId(classId);
+ if (StringUtils.isEmpty(classId)) {
+ return new Result(false, "班级id不能为空");
+ }
+ if (StringUtils.isEmpty(subjectId)) {
+ return new Result(false, "课程id不能为空");
+ }
+ return new Result(true, "success", subjectService.mySubjectInfo(subjectId, classId));
+ }
+
+ /**
+ * 学习端获取课程列表
+ */
+ @ApiOperation(value = "我的班级信息")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"),
+ })
+ @GetMapping(value = "/app/myClassInfo")
+ public Result myClassInfo(String classId) {
+ classId = ClientUtils.getClassId();
+ if (StringUtils.isEmpty(classId)) {
+ return new Result(false, "班级id不能为空");
+ }
+ return new Result(true, "success", subjectService.myClassInfo(classId));
+ }
+
+ /**
+ * 学习端获取课程列表
+ */
+ @ApiOperation(value = "学习端获取课程列表")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "schoolYear", value = "学年", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "term", value = "学期", required = true, paramType = "query", dataType = "String")
+ })
+ @GetMapping(value = "/app/subjectList")
+ public Result subjectList(String classId, Integer schoolYear, Integer term) {
+ return new Result(true, "success", subjectService.clsSubjectlist(CommonUtils.getClassId(classId), schoolYear, term));
+ }
+
+ /**
+ * 学习端获取课程列表
+ */
+ @ApiOperation(value = "学习端获取课程下课件,按创建时间排序")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "subjectId", value = "课程id", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "sort", value = "排序方式(desc从大到小,asc从小到大)", required = false, paramType = "query", dataType = "String"),
+ })
+ @GetMapping(value = "/app/listLectureBySubject")
+ public Result listLectureBySubject(String subjectId, String classId, @RequestParam(defaultValue = "desc") String sort, Pager pager) {
+ return new Result(true, "success", clsLectureService.listLectureBySubjectOrderCreateTime(subjectId, CommonUtils.getClassId(classId), sort, pager));
+ }
+
+ /**
+ * 学习端获取其他课件统计
+ */
+ @ApiOperation(value = "学习端获取其他课件统计")
+ @GetMapping(value = "/app/otherLectureCount")
+ public Result otherLectureCount() {
+ return new Result(true, "success", CollectionUtils.newObjectMap("topicCount",
+ topicService.getClassTopicCount(ClientUtils.getClassId()), "evaluate", this.evaluateService.queryStuEvaluateCount()));
+ }
+
+ /**
+ * 学习端获取课程列表
+ */
+ @ApiOperation(value = "学习端获取课程下课件,按目录分类", notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "subjectId", value = "课程id", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "type", value = "课件类型", required = false, paramType = "query", dataType = "String")
+ })
+ @GetMapping(value = "/app/coursewareList")
+ public Result coursewareList(String classId, String subjectId, String type) {
+ classId = CommonUtils.getClassId(classId);
+
+ if (StringUtils.isEmpty(subjectId)) {
+ return new Result(false, "课程id不能为空");
+ }
+
+ return this.clsLectureService.coursewareChapterList(classId, subjectId, type);
+
+ }
+
+ /**
+ * 我的公开课列表
+ */
@ApiOperation(value = "我的公开课列表", notes = "")
- @GetMapping(value = "/app/myOpenSubjectList")
- public Result myOpenSubjectList(Pager pager, @RequestParam(defaultValue = "")String keyword) {
- return new Result(true, "success", this.subjectService.myOpenSubjectList(pager.getOffset(), pager.getPageSize(), keyword));
- }
+ @GetMapping(value = "/app/myOpenSubjectList")
+ public Result myOpenSubjectList(Pager pager, @RequestParam(defaultValue = "") String keyword) {
+ return new Result(true, "success", this.subjectService.myOpenSubjectList(pager.getOffset(), pager.getPageSize(), keyword));
+ }
/**
* 公开课列表
- *
- */
+ */
@ApiOperation(value = "公开课列表", notes = "")
- @GetMapping(value = "/app/openSubjectList")
- public Result openSubjectList(Pager pager, @RequestParam(defaultValue = "")String keyword) {
- return new Result(true, "success", this.subjectService.openSubjectList(pager.getOffset(), pager.getPageSize(), keyword));
- }
+ @GetMapping(value = "/app/openSubjectList")
+ public Result openSubjectList(Pager pager, @RequestParam(defaultValue = "") String keyword) {
+ return new Result(true, "success", this.subjectService.openSubjectList(pager.getOffset(), pager.getPageSize(), keyword));
+ }
/**
* 公开课详情
- *
*/
@ApiOperation(value = "公开课详情", notes = "")
- @GetMapping(value = "/app/openSubjectInfo")
- public Result openSubjectInfo(@RequestParam(defaultValue = "")String subjectId) {
- return new Result(true, "success", this.subjectService.openSubjectInfo(subjectId));
- }
+ @GetMapping(value = "/app/openSubjectInfo")
+ public Result openSubjectInfo(@RequestParam(defaultValue = "") String subjectId) {
+ return new Result(true, "success", this.subjectService.openSubjectInfo(subjectId));
+ }
- //--------------------------------------------------------后台端接口---------------------------------------------------------------------------------------------------
+ //--------------------------------------------------------后台端接口---------------------------------------------------------------------------------------------------
- /**
- * 加载课件tree
- */
- @ApiOperation(value = "加载课件tree", notes = "")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "subjectId", value = "班级id", required = false, paramType="query", dataType = "String")
- })
- @GetMapping(value = "categoryTree")
- public Result categoryTree(String subjectId, String parentId) {
+ /**
+ * 加载课件tree
+ */
+ @ApiOperation(value = "加载课件tree", notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "subjectId", value = "班级id", required = false, paramType = "query", dataType = "String")
+ })
+ @GetMapping(value = "categoryTree")
+ public Result categoryTree(String subjectId, String parentId) {
// classId = StringUtils.isEmpty(classId)?ClientUtils.getClassId():classId;
- List<SubjectProgressTreeV> chapterLst = clsLectureService.getChapterTreeVList(subjectId, parentId);
+ List<SubjectProgressTreeV> chapterLst = clsLectureService.getChapterTreeVList(subjectId, parentId);
- for (SubjectProgressTreeV v : chapterLst) {
- v.setNodeName(v.getNodeName() + "(" + String.format("%.2f", v.getPercent()*100) + "%)"); //保留两位小数
- }
+ for (SubjectProgressTreeV v : chapterLst) {
+ v.setNodeName(v.getNodeName() + "(" + String.format("%.2f", v.getPercent() * 100) + "%)"); //保留两位小数
+ }
- return new Result(true, "success", QBeanUtils.listBean2ListMap(chapterLst, CollectionUtils
- .newStringMap("nodeName", "name", "id.nodeId", "id", "parentId", "parentId", "percent", "percent")));
- }
+ return new Result(true, "success", QBeanUtils.listBean2ListMap(chapterLst, CollectionUtils
+ .newStringMap("nodeName", "name", "id.nodeId", "id", "parentId", "parentId", "percent", "percent")));
+ }
- /**
- * 学习端获取 所有课件
- *
- * @param classId
- * @return 状态说明(0,视频。1,音频。2,文档。3,练习。)
- */
- @ApiOperation(value = "学习端获取 所有课件", notes = "状态说明(0,视频。1,音频。2,文档。3,练习。)")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "subjectId", value = "班级id", required = false, paramType="query", dataType = "String")
- })
- @GetMapping(value = "getCoursewareLstByClassId")
- public Result getCoursewareLst(String subjectId) {
- List<ClsSubjectLecture> lectureLst = clsLectureService.listLecture(subjectId);
+ /**
+ * 学习端获取 所有课件
+ *
+ * @param classId
+ * @return 状态说明(0, 视频 。 1, 音频 。 2, 文档 。 3, 练习 。)
+ */
+ @ApiOperation(value = "学习端获取 所有课件", notes = "状态说明(0,视频。1,音频。2,文档。3,练习。)")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "subjectId", value = "班级id", required = false, paramType = "query", dataType = "String")
+ })
+ @GetMapping(value = "getCoursewareLstByClassId")
+ public Result getCoursewareLst(String subjectId) {
+ List<ClsSubjectLecture> lectureLst = clsLectureService.listLecture(subjectId);
- // id为小节id //返回的数据按照tree的小节排序
- return new Result(true, "success",
+ // id为小节id //返回的数据按照tree的小节排序
+ return new Result(true, "success",
- QBeanUtils.listBean2ListMap(lectureLst, CollectionUtils.newStringMap("name", "name", "lectureId", "id",
- "lectureType", "type", "chapterId", "chapterId")));
- }
+ QBeanUtils.listBean2ListMap(lectureLst, CollectionUtils.newStringMap("name", "name", "lectureId", "id",
+ "lectureType", "type", "chapterId", "chapterId")));
+ }
- /**
- * 获取课件列表
- *
- * @param chapterId
- * 章节id
- * @param type
- * 课件类型
- * @param keyword
- * 搜索关键字
- * @param limit
- * 每页显示几条
- * @param pageNum
- * 页码
- * @return 状态说明(0,视频。1,音频。2,文档。3,练习。)
- */
- @ApiOperation(value = "根据章节获取课件列表", notes = "状态说明(0,视频。1,音频。2,文档。3,练习。)")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "chapterId", value = "章节id", required = true, paramType="query", dataType = "String"),
- @ApiImplicitParam(name = "type", value = "课件类型", required = false, paramType="query", dataType = "String")
- })
- @GetMapping(value = "coursewareListByChapterId")
- public Result coursewareList(String chapterId, String type, String keyword, Integer limit, @RequestParam(defaultValue="1")Integer pageNum) {
+ /**
+ * 获取课件列表
+ *
+ * @param chapterId 章节id
+ * @param type 课件类型
+ * @param keyword 搜索关键字
+ * @param limit 每页显示几条
+ * @param pageNum 页码
+ * @return 状态说明(0, 视频 。 1, 音频 。 2, 文档 。 3, 练习 。)
+ */
+ @ApiOperation(value = "根据章节获取课件列表", notes = "状态说明(0,视频。1,音频。2,文档。3,练习。)")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "chapterId", value = "章节id", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "type", value = "课件类型", required = false, paramType = "query", dataType = "String")
+ })
+ @GetMapping(value = "coursewareListByChapterId")
+ public Result coursewareList(String chapterId, String type, String keyword, Integer limit, @RequestParam(defaultValue = "1") Integer pageNum) {
- List<MyLectureV> lectures = clsLectureService.listLectureV(ClientUtils.getUserId(), chapterId, keyword, limit,
- pageNum, type);
+ List<MyLectureV> lectures = clsLectureService.listLectureV(ClientUtils.getUserId(), chapterId, keyword, limit,
+ pageNum, type);
- return new Result(true, "success",
- CollectionUtils.newObjectMap("coursewareLst",
- QBeanUtils.listBean2ListMap(lectures,
- CollectionUtils.newStringMap("lectureName", "name", "id.lectureId", "id", "lectureType",
- "type", "lectureUpdateTime", "endUpdateTime", "percent", "percent"))));
+ return new Result(true, "success",
+ CollectionUtils.newObjectMap("coursewareLst",
+ QBeanUtils.listBean2ListMap(lectures,
+ CollectionUtils.newStringMap("lectureName", "name", "id.lectureId", "id", "lectureType",
+ "type", "lectureUpdateTime", "endUpdateTime", "percent", "percent"))));
- }
+ }
- /**
- * 课件学习进度提交 stu/subject/study
- *
- * @param lectureId
- * 课件id
- * @param from
- * 开始学习位置 ,如视频,则为时分秒(00:10:12),如文档,则无需提交该参数
- * @param to
- * 结束学习位置,同to
- */
- @ApiOperation(value = "提交学习进度")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "lectureId", value = "课件id", required = true, paramType="query", dataType = "String"),
- @ApiImplicitParam(name = "from", value = "开始学习位置 ,如视频,则为时分秒(00:10:12),如文档,则无需提交该参数", required = true, paramType="query", dataType = "Double"),
- @ApiImplicitParam(name = "to", value = "结束学习位置,同to", required = true, paramType="query", dataType = "Double"),
- @ApiImplicitParam(name = "subjectId", value = "课程id", required = true, paramType="query", dataType = "String"),
- @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType="query", dataType = "String"),
- @ApiImplicitParam(name = "lectureParentId", value = "父课件id", required = false, paramType="query", dataType = "String"),
- })
- @GetMapping(value = "study")
- public Result study(String lectureId, @RequestParam(defaultValue = "1") Double from,
- @RequestParam(defaultValue = "0") Double to, String subjectId, String classId, String lectureParentId) {
- String userId = ClientUtils.getUserId();
- classId = CommonUtils.getClassId(classId);
- progressDao.putStudyById(userId, subjectId, lectureId, lectureParentId, classId);// 记录学员每个课程的学习位置;
- progressDao.putStudyByUserId(userId, subjectId, lectureId, lectureParentId, classId);// 记录学员上次学习的位置;
- return clsLectureService.doStudy(lectureId, from, to);
- }
+ /**
+ * 课件学习进度提交 stu/subject/study
+ *
+ * @param lectureId 课件id
+ * @param from 开始学习位置 ,如视频,则为时分秒(00:10:12),如文档,则无需提交该参数
+ * @param to 结束学习位置,同to
+ */
+ @ApiOperation(value = "提交学习进度")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "lectureId", value = "课件id", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "from", value = "开始学习位置 ,如视频,则为时分秒(00:10:12),如文档,则无需提交该参数", required = true, paramType = "query", dataType = "Double"),
+ @ApiImplicitParam(name = "to", value = "结束学习位置,同to", required = true, paramType = "query", dataType = "Double"),
+ @ApiImplicitParam(name = "subjectId", value = "课程id", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "lectureParentId", value = "父课件id", required = false, paramType = "query", dataType = "String"),
+ })
+ @GetMapping(value = "study")
+ public Result study(String lectureId, @RequestParam(defaultValue = "1") Double from,
+ @RequestParam(defaultValue = "0") Double to, String subjectId, String classId, String lectureParentId) {
+ String userId = ClientUtils.getUserId();
+ classId = CommonUtils.getClassId(classId);
+ progressDao.putStudyById(userId, subjectId, lectureId, lectureParentId, classId);// 记录学员每个课程的学习位置;
+ progressDao.putStudyByUserId(userId, subjectId, lectureId, lectureParentId, classId);// 记录学员上次学习的位置;
+ return clsLectureService.doStudy(lectureId, from, to);
+ }
- /**
- * 音频时长提交 stu/subject/submitAudioDuration
- *
- * @param lectureId
- * 课件id
- * @param seconds
- * 时长
- */
- @ApiOperation(value = "音频时长提交")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "lectureId", value = "课件id", required = true, paramType="query", dataType = "String"),
- @ApiImplicitParam(name = "seconds", value = "时长", required = true, paramType="query", dataType = "Double")
- })
- @CacheEvict(value = "LectureAudioV", key = "#lectureId")
- @GetMapping(value = "submitAudioDuration")
- public Result submitAudioDuration(String lectureId, double seconds) {
+ /**
+ * 音频时长提交 stu/subject/submitAudioDuration
+ *
+ * @param lectureId 课件id
+ * @param seconds 时长
+ */
+ @ApiOperation(value = "音频时长提交")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "lectureId", value = "课件id", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "seconds", value = "时长", required = true, paramType = "query", dataType = "Double")
+ })
+ @CacheEvict(value = "LectureAudioV", key = "#lectureId")
+ @GetMapping(value = "submitAudioDuration")
+ public Result submitAudioDuration(String lectureId, double seconds) {
- LectureAudioV audio = lectureService.readAudioLecture(lectureId);
+ LectureAudioV audio = lectureService.readAudioLecture(lectureId);
- return audioService.updateDuration(audio.getAudioId(), (int) seconds);
+ return audioService.updateDuration(audio.getAudioId(), (int) seconds);
- }
+ }
- /**
- * 课程列表
- *
- * @param clssId
- * 班级id
- * @param startTime
- * 开班时间
- */
- @ApiOperation(value = "课程列表")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType="query", dataType = "String"),
- @ApiImplicitParam(name = "startTime", value = "开班时间", required = false, paramType="query", dataType = "String")
- })
- @GetMapping(value = "getSubjectLst")
- public Result getList(String userId,String classId, String startTime, Integer limit, @RequestParam(defaultValue="1")Integer pageNum, HttpServletRequest request) {
- userId = StringUtils.isEmpty(userId)?ClientUtils.getUserId():userId;
- if(userId == null || userId == ""){
- userId = ClientUtils.getUserId();
- }
- classId = StringUtils.isEmpty(classId)?ClientUtils.getClassId():classId;
- List<MySubjectV> result = subjectService.listMySubjectV(classId,userId);
- return new Result(true, "success",
- QBeanUtils.listBean2ListMap(result,
- CollectionUtils.newStringMap("id.subjectId", "subjectId", "id.classId", "classId",
- "subjectName", "subjectName,coursewareName", "percent", "percent", "progressValue",
- "studyTime", "coverPageUrl", "coverPageUrl")));
- }
+ /**
+ * 课程列表
+ *
+ * @param clssId 班级id
+ * @param startTime 开班时间
+ */
+ @ApiOperation(value = "课程列表")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "startTime", value = "开班时间", required = false, paramType = "query", dataType = "String")
+ })
+ @GetMapping(value = "getSubjectLst")
+ public Result getList(String userId, String classId, String startTime, Integer limit, @RequestParam(defaultValue = "1") Integer pageNum, HttpServletRequest request) {
+ userId = StringUtils.isEmpty(userId) ? ClientUtils.getUserId() : userId;
+ classId = StringUtils.isEmpty(classId) ? ClientUtils.getClassId() : classId;
+ List<MySubjectV> resultMs = subjectService.listMySubjectV(classId, userId);
+ List<MySubjectV> result = new ArrayList<>();
+ List<Object> lecurelist = new ArrayList<>();
+ int i = 0;
+ for(MySubjectV ms : resultMs){
+ SubjectUtils subjectUtils = new SubjectUtils();
+ List<MyLectureV> myLectureVList = lectureService.listLectureVBySubjectId(userId, ms.getId().getSubjectId(), "", 1000, 1, null);
+ Double percent = 0.0;
+ Double progressValue = 0.0;
+ Double percentAvg = 0.0;
+ if(!myLectureVList.isEmpty()) {
+ for (MyLectureV myLectureV : myLectureVList) {
+ if (myLectureV.getPercent() != null && myLectureV.getProgressValue() != null) {
+ percent += myLectureV.getPercent();
+ progressValue += myLectureV.getProgressValue().intValue();
+ }
+ }
+ percentAvg = percent / myLectureVList.size();
+ if (percentAvg.isNaN()) {
+ percentAvg = 0.0;
+ }
+ subjectUtils.setCoursewareName(myLectureVList.get(0).getLectureName());
+ subjectUtils.setSubjectId(myLectureVList.get(0).getSubjectId());
+ subjectUtils.setPercent(new BigDecimal(percentAvg));
+ subjectUtils.setStudyTime(new BigDecimal(progressValue));
+ }else {
+ subjectUtils.setCoursewareName(null);
+ subjectUtils.setSubjectId(ms.getId().getSubjectId());
+ subjectUtils.setPercent(new BigDecimal(percentAvg));
+ subjectUtils.setStudyTime(new BigDecimal(progressValue));
+ }
+ result.add(ms);
+ lecurelist.add(subjectUtils);
+ }
+ return new Result(true, "success",
+ CollectionUtils.newObjectMap("subjectList",
+ QBeanUtils.listBean2ListMap(result,
+ CollectionUtils.newStringMap("id.subjectId", "subjectId", "id.classId", "classId",
+ "subjectName", "subjectName", "percent", "percent", "progressValue",
+ "studyTime", "coverPageUrl", "coverPageUrl")),"lecurelist",lecurelist));
+ }
- /**
- * 进入课程
- *
- * @param subjectId
- * 课程id
- */
- @ApiOperation(value = "课程详情")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "subjectId", value = "课程id", required = false, paramType="query", dataType = "String")
- })
- @GetMapping(value = "getSubjectDetail")
- public Result getSubjectDetail(String subjectId) {
- MySubjectV subject = subjectService.getMy1stSubjectVById(subjectId);
+ /**
+ * 进入课程
+ *
+ * @param subjectId 课程id
+ */
+ @ApiOperation(value = "课程详情")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "subjectId", value = "课程id", required = false, paramType = "query", dataType = "String")
+ })
+ @GetMapping(value = "getSubjectDetail")
+ public Result getSubjectDetail(String subjectId) {
+ MySubjectV subject = subjectService.getMy1stSubjectVById(subjectId);
- List<Map<String, Object>> progressLst = subjectService.listChapterStudyProgress(subjectId);
+ List<Map<String, Object>> progressLst = subjectService.listChapterStudyProgress(subjectId);
+ List<MyLectureV> myLectureVList = lectureService.listLectureVBySubjectId(ClientUtils.getUserId(), subjectId, "", 1000, 1, null);
+ Double percent = 0.0;
+ Double progressValue = 0.0;
+ String coursewareName = null;
+ if(!myLectureVList.isEmpty()) {
+ for (MyLectureV myLectureV : myLectureVList) {
+ if (myLectureV.getPercent() != null && myLectureV.getProgressValue() != null) {
+ percent += myLectureV.getPercent();
+ progressValue += myLectureV.getProgressValue().intValue();
+ }
+ }
+ Double percentAvg = percent / myLectureVList.size();
+ if (percentAvg.isNaN()) {
+ percentAvg = 0.0;
+ }
+ subject.setPercent(percentAvg);
+ subject.setProgressValue(new BigDecimal(progressValue));
+ progressLst.get(0).put("percent", subject.getPercent());
+ progressLst.get(0).put("studyTime", subject.getProgressValue());
+ coursewareName = myLectureVList.get(0).getLectureName();
+ }else {
- return new Result(true, "success",
- CollectionUtils.newObjectMap("subject", QBeanUtils.bean2Map(subject,
- CollectionUtils.newStringMap("subjectName", "subjectName", "id.subjectId", "subjectId",
- "progressValue", "studyTime", "percent", "percent", "coverPageUrl", "coverPageUrl")),
- "chapterLst",progressLst));
- }
+ }
+ return new Result(true, "success",
+ CollectionUtils.newObjectMap("subject", QBeanUtils.bean2Map(subject,
+ CollectionUtils.newStringMap("subjectName", "subjectName", "id.subjectId", "subjectId",
+ "progressValue", "studyTime", "percent", "percent", "coverPageUrl", "coverPageUrl")),
+ "chapterLst", progressLst,"coursewareName",coursewareName));
+ }
}
--
Gitblit v1.8.0