From bc835f7b8d4ab951999ff7a08bf62d18daa0461e Mon Sep 17 00:00:00 2001 From: EricsHu <hrr145632> Date: 星期日, 25 六月 2023 16:59:36 +0800 Subject: [PATCH] 关闭定时器 --- src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java | 393 ++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 257 insertions(+), 136 deletions(-) diff --git a/src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java b/src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java index 9610399..3303d50 100644 --- a/src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java +++ b/src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java @@ -9,7 +9,11 @@ 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.Subject; +import com.qxueyou.scc.teach.subject.model.SubjectChapter; +import com.qxueyou.scc.teach.subject.model.SubjectLecture; import com.qxueyou.scc.teach.subject.model.SubjectUtils; +import com.qxueyou.scc.teach.subject.model.view.*; import com.qxueyou.scc.user.model.User; import org.hibernate.Session; import org.springframework.beans.factory.annotation.Autowired; @@ -32,9 +36,6 @@ import com.qxueyou.scc.evaluate.service.IEvaluateService; import com.qxueyou.scc.operation.topic.service.ITopicService; import com.qxueyou.scc.teach.res.service.IResAudioService; -import com.qxueyou.scc.teach.subject.model.view.LectureAudioV; -import com.qxueyou.scc.teach.subject.model.view.MyLectureV; -import com.qxueyou.scc.teach.subject.model.view.MySubjectV; import com.qxueyou.scc.teach.subject.service.ILectureService; import com.qxueyou.scc.teach.subject.service.ISubjectService; @@ -48,11 +49,11 @@ import javax.servlet.http.HttpServletResponse; /** - * 学习端 课程前端控制器 + * 瀛︿範绔� 璇剧▼鍓嶇鎺у埗鍣� * * @author chenjunliang */ -@Api(tags = "课程管理-学员端") +@Api(tags = "璇剧▼绠$悊-瀛﹀憳绔�") @RestController @CrossOrigin(origins = "*", maxAge = 3600) @RequestMapping(value = "stu/subject") @@ -79,18 +80,18 @@ @Autowired IEvaluateService evaluateService; - //--------------------------------------------------------------app端接口--------------------------------------------------------------------------------------------------- + //--------------------------------------------------------------app绔帴鍙�--------------------------------------------------------------------------------------------------- /** - * 学习端获取 所有课件 + * 瀛︿範绔幏鍙� 鎵�鏈夎浠� * * @param classId - * @return 状态说明(0, 视频 。 1, 音频 。 2, 文档 。 3, 练习 。) + * @return 鐘舵�佽鏄�(0, 瑙嗛 銆� 1, 闊抽 銆� 2, 鏂囨。 銆� 3, 缁冧範 銆�) */ - @ApiOperation(value = "获取班级所有课件-学习端", notes = "状态说明(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"), + @ApiImplicitParam(name = "classId", value = "鐝骇id", required = false, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "sort", value = "鎺掑簭鏂瑰紡锛坉esc浠庡ぇ鍒板皬,asc浠庡皬鍒板ぇ锛�", required = false, paramType = "query", dataType = "String"), }) @GetMapping(value = "/app/getCoursewareLstByClassId") public Result appCoursewareLst(String classId, @RequestParam(defaultValue = "desc") String sort, Pager pager) { @@ -99,49 +100,49 @@ } /** - * 学习端获取课程列表 + * 瀛︿範绔幏鍙栬绋嬪垪琛� */ - @ApiOperation(value = "学习端获取课程学年列表") + @ApiOperation(value = "瀛︿範绔幏鍙栬绋嬪骞村垪琛�") @ApiImplicitParams({ - @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"), + @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不能为空"); + 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 = "我的课程按学期分类") + @ApiOperation(value = "鎴戠殑璇剧▼鎸夊鏈熷垎绫�") @ApiImplicitParams({ - @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"), + @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(false, "鐝骇id涓嶈兘涓虹┖"); } return new Result(true, "success", subjectService.myTermSubjectList(classId)); } /** - * 学习端获取课程列表 + * 瀛︿範绔幏鍙栬绋嬪垪琛� */ - @ApiOperation(value = "我的课程按时间排序") + @ApiOperation(value = "鎴戠殑璇剧▼鎸夋椂闂存帓搴�") @ApiImplicitParams({ - @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "classId", value = "鐝骇id", required = false, paramType = "query", dataType = "String"), }) @GetMapping(value = "/app/mySubjectList") public Result mySubjectList(String classId, Pager pager) { @@ -153,53 +154,53 @@ } /** - * 我的课程详情 + * 鎴戠殑璇剧▼璇︽儏 * * @param subjectId * @param classId * @return */ - @ApiOperation(value = "我的课程详情") + @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"), + @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不能为空"); + return new Result(false, "鐝骇id涓嶈兘涓虹┖"); } if (StringUtils.isEmpty(subjectId)) { - return new Result(false, "课程id不能为空"); + return new Result(false, "璇剧▼id涓嶈兘涓虹┖"); } return new Result(true, "success", subjectService.mySubjectInfo(subjectId, classId)); } /** - * 学习端获取课程列表 + * 瀛︿範绔幏鍙栬绋嬪垪琛� */ - @ApiOperation(value = "我的班级信息") + @ApiOperation(value = "鎴戠殑鐝骇淇℃伅") @ApiImplicitParams({ - @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"), + @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(false, "鐝骇id涓嶈兘涓虹┖"); } return new Result(true, "success", subjectService.myClassInfo(classId)); } /** - * 学习端获取课程列表 + * 瀛︿範绔幏鍙栬绋嬪垪琛� */ - @ApiOperation(value = "学习端获取课程列表") + @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") + @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) { @@ -207,12 +208,12 @@ } /** - * 学习端获取课程列表 + * 瀛︿範绔幏鍙栬绋嬪垪琛� */ - @ApiOperation(value = "学习端获取课程下课件,按创建时间排序") + @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"), + @ApiImplicitParam(name = "subjectId", value = "璇剧▼id", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "sort", value = "鎺掑簭鏂瑰紡锛坉esc浠庡ぇ鍒板皬,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) { @@ -220,9 +221,9 @@ } /** - * 学习端获取其他课件统计 + * 瀛︿範绔幏鍙栧叾浠栬浠剁粺璁� */ - @ApiOperation(value = "学习端获取其他课件统计") + @ApiOperation(value = "瀛︿範绔幏鍙栧叾浠栬浠剁粺璁�") @GetMapping(value = "/app/otherLectureCount") public Result otherLectureCount() { return new Result(true, "success", CollectionUtils.newObjectMap("topicCount", @@ -230,20 +231,20 @@ } /** - * 学习端获取课程列表 + * 瀛︿範绔幏鍙栬绋嬪垪琛� */ - @ApiOperation(value = "学习端获取课程下课件,按目录分类", notes = "") + @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") + @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 new Result(false, "璇剧▼id涓嶈兘涓虹┖"); } return this.clsLectureService.coursewareChapterList(classId, subjectId, type); @@ -251,140 +252,192 @@ } /** - * 我的公开课列表 + * 鎴戠殑鍏紑璇惧垪琛� */ - @ApiOperation(value = "我的公开课列表", notes = "") + @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)); } /** - * 公开课列表 + * 鍏紑璇惧垪琛� */ - @ApiOperation(value = "公开课列表", notes = "") + @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)); } /** - * 公开课详情 + * 鍏紑璇捐鎯� */ - @ApiOperation(value = "公开课详情", notes = "") + @ApiOperation(value = "鍏紑璇捐鎯�", notes = "") @GetMapping(value = "/app/openSubjectInfo") public Result openSubjectInfo(@RequestParam(defaultValue = "") String subjectId) { return new Result(true, "success", this.subjectService.openSubjectInfo(subjectId)); } - //--------------------------------------------------------后台端接口--------------------------------------------------------------------------------------------------- + //--------------------------------------------------------鍚庡彴绔帴鍙�--------------------------------------------------------------------------------------------------- /** - * 加载课件tree + * 鍔犺浇璇句欢tree */ - @ApiOperation(value = "加载课件tree", notes = "") + @ApiOperation(value = "鍔犺浇璇句欢tree", notes = "") @ApiImplicitParams({ - @ApiImplicitParam(name = "subjectId", value = "班级id", required = false, paramType = "query", dataType = "String") + @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); + Subject subject = subjectService.read(subjectId); + if (subject.getType() == 3) { + List<SubjectChapter> openChapterLst = lectureService.getListChapter(subjectId, parentId); + return new Result(true, "success", QBeanUtils.listBean2ListMap(openChapterLst, CollectionUtils + .newStringMap("name", "name", "chapterId", "id", "parentChapterId", "parentId"))); - for (SubjectProgressTreeV v : chapterLst) { - v.setNodeName(v.getNodeName() + "(" + String.format("%.2f", v.getPercent() * 100) + "%)"); //保留两位小数 + } else { +// classId = StringUtils.isEmpty(classId)?ClientUtils.getClassId():classId; + List<SubjectProgressTreeV> chapterLst = clsLectureService.getChapterTreeVList(subjectId, parentId); + + 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, 练习 。) + * @return 鐘舵�佽鏄�(0, 瑙嗛 銆� 1, 闊抽 銆� 2, 鏂囨。 銆� 3, 缁冧範 銆�) */ - @ApiOperation(value = "学习端获取 所有课件", notes = "状态说明(0,视频。1,音频。2,文档。3,练习。)") + @ApiOperation(value = "瀛︿範绔幏鍙� 鎵�鏈夎浠�", notes = "鐘舵�佽鏄�(0,瑙嗛銆�1,闊抽銆�2,鏂囨。銆�3,缁冧範銆�)") @ApiImplicitParams({ - @ApiImplicitParam(name = "subjectId", value = "班级id", required = false, paramType = "query", dataType = "String") + @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); + if (lectureLst.size() > 0) { + // id涓哄皬鑺俰d //杩斿洖鐨勬暟鎹寜鐓ree鐨勫皬鑺傛帓搴� + 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"))); + } else { + List<SubjectLecture> lectureList = lectureService.listLectureBySubjectId(subjectId); + // id涓哄皬鑺俰d //杩斿洖鐨勬暟鎹寜鐓ree鐨勫皬鑺傛帓搴� + return new Result(true, "success", - QBeanUtils.listBean2ListMap(lectureLst, CollectionUtils.newStringMap("name", "name", "lectureId", "id", - "lectureType", "type", "chapterId", "chapterId"))); + QBeanUtils.listBean2ListMap(lectureList, 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, 练习 。) + * @param chapterId 绔犺妭id + * @param type 璇句欢绫诲瀷 + * @param keyword 鎼滅储鍏抽敭瀛� + * @param limit 姣忛〉鏄剧ず鍑犳潯 + * @param pageNum 椤电爜 + * @return 鐘舵�佽鏄�(0, 瑙嗛 銆� 1, 闊抽 銆� 2, 鏂囨。 銆� 3, 缁冧範 銆�) */ - @ApiOperation(value = "根据章节获取课件列表", notes = "状态说明(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") + @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); + if (lectures.size() == 0) { + List<SubjectLecture> lecturesTwo = lectureService.getSubjectLectureVByChapterId(chapterId, keyword, limit, pageNum); + List<MyOpenLectureV> lecturesThree = lectureService.getMyOpenLectureVByChapterId(ClientUtils.getUserId(), chapterId, keyword, limit, pageNum); + for (SubjectLecture subjectLecture : lecturesTwo) { + boolean isNull = true; + MyLectureV myLectureV = new MyLectureV(new MyLectureVId()); + for (MyOpenLectureV myOpenLectureV : lecturesThree) { + if (subjectLecture.getLectureId().equals(myOpenLectureV.getLectureId())) { + isNull = false; + myLectureV.setLectureName(myOpenLectureV.getLectureName()); + myLectureV.getId().setLectureId(myOpenLectureV.getLectureId()); + myLectureV.setLectureType(myOpenLectureV.getLectureType()); + myLectureV.setLectureUpdateTime(myOpenLectureV.getLectureUpdateTime()); + myLectureV.setPercent(myOpenLectureV.getPercent()); + lectures.add(myLectureV); + } + } + if (isNull) { + myLectureV.setLectureName(subjectLecture.getName()); + myLectureV.getId().setLectureId(subjectLecture.getLectureId()); + myLectureV.setLectureType(subjectLecture.getLectureType()); + myLectureV.setLectureUpdateTime(subjectLecture.getUpdateTime()); + myLectureV.setPercent(0.0); + lectures.add(myLectureV); + } + } + 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")))); + } else { + 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 + * 璇句欢瀛︿範杩涘害鎻愪氦 stu/subject/study * - * @param lectureId 课件id - * @param from 开始学习位置 ,如视频,则为时分秒(00:10:12),如文档,则无需提交该参数 - * @param to 结束学习位置,同to + * @param lectureId 璇句欢id + * @param from 寮�濮嬪涔犱綅缃� 锛屽瑙嗛锛屽垯涓烘椂鍒嗙(00:10:12),濡傛枃妗o紝鍒欐棤闇�鎻愪氦璇ュ弬鏁� + * @param to 缁撴潫瀛︿範浣嶇疆锛屽悓to */ - @ApiOperation(value = "提交学习进度") + @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"), + @ApiImplicitParam(name = "lectureId", value = "璇句欢id", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "from", value = "寮�濮嬪涔犱綅缃� 锛屽瑙嗛锛屽垯涓烘椂鍒嗙(00:10:12),濡傛枃妗o紝鍒欐棤闇�鎻愪氦璇ュ弬鏁�", 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 = "鐖惰浠秈d", 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);// 记录学员上次学习的位置; + progressDao.putStudyById(userId, subjectId, lectureId, lectureParentId, classId);// 璁板綍瀛﹀憳姣忎釜璇剧▼鐨勫涔犱綅缃�; + progressDao.putStudyByUserId(userId, subjectId, lectureId, lectureParentId, classId);// 璁板綍瀛﹀憳涓婃瀛︿範鐨勪綅缃�; return clsLectureService.doStudy(lectureId, from, to); } /** - * 音频时长提交 stu/subject/submitAudioDuration + * 闊抽鏃堕暱鎻愪氦 stu/subject/submitAudioDuration * - * @param lectureId 课件id - * @param seconds 时长 + * @param lectureId 璇句欢id + * @param seconds 鏃堕暱 */ - @ApiOperation(value = "音频时长提交") + @ApiOperation(value = "闊抽鏃堕暱鎻愪氦") @ApiImplicitParams({ - @ApiImplicitParam(name = "lectureId", value = "课件id", required = true, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "seconds", value = "时长", required = true, paramType = "query", dataType = "Double") + @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") @@ -397,15 +450,15 @@ } /** - * 课程列表 + * 璇剧▼鍒楄〃 * - * @param clssId 班级id - * @param startTime 开班时间 + * @param clssId 鐝骇id + * @param startTime 寮�鐝椂闂� */ - @ApiOperation(value = "课程列表") + @ApiOperation(value = "璇剧▼鍒楄〃") @ApiImplicitParams({ - @ApiImplicitParam(name = "classId", value = "班级id", required = false, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "startTime", value = "开班时间", required = false, paramType = "query", dataType = "String") + @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) { @@ -414,14 +467,13 @@ List<MySubjectV> resultMs = subjectService.listMySubjectV(classId, userId); List<MySubjectV> result = new ArrayList<>(); List<Object> lecurelist = new ArrayList<>(); - int i = 0; - for(MySubjectV ms : resultMs){ + 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()) { + if (!myLectureVList.isEmpty()) { for (MyLectureV myLectureV : myLectureVList) { if (myLectureV.getPercent() != null && myLectureV.getProgressValue() != null) { percent += myLectureV.getPercent(); @@ -436,7 +488,7 @@ subjectUtils.setSubjectId(myLectureVList.get(0).getSubjectId()); subjectUtils.setPercent(new BigDecimal(percentAvg)); subjectUtils.setStudyTime(new BigDecimal(progressValue)); - }else { + } else { subjectUtils.setCoursewareName(null); subjectUtils.setSubjectId(ms.getId().getSubjectId()); subjectUtils.setPercent(new BigDecimal(percentAvg)); @@ -445,56 +497,125 @@ result.add(ms); lecurelist.add(subjectUtils); } + List<OpenSubjectV> openSubjects = subjectService.listOpenSubjectV(); + for (OpenSubjectV openSubjectV : openSubjects) { + MySubjectV mySubjectV = new MySubjectV(new MySubjectVId()); + SubjectUtils subjectUtils = new SubjectUtils(); + List<SubjectLecture> subjectLectureList = lectureService.listLectureBySubjectId(openSubjectV.getSubjectId()); + List<MyOpenLectureV> myLectureVList = lectureService.listOpenLectureVBySubjectId(userId, openSubjectV.getSubjectId(), "", 1000, 1, null); + Double percent = 0.0; + Double progressValue = 0.0; + Double percentAvg = 0.0; + if (!myLectureVList.isEmpty()) { + for (MyOpenLectureV myOpenLectureV : myLectureVList) { + if (myOpenLectureV.getPercent() != null && myOpenLectureV.getProgressValue() != null) { + percent += myOpenLectureV.getPercent(); + progressValue += myOpenLectureV.getProgressValue().intValue(); + } + } + percentAvg = percent / subjectLectureList.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(openSubjectV.getSubjectId()); + subjectUtils.setPercent(new BigDecimal(percentAvg)); + subjectUtils.setStudyTime(new BigDecimal(progressValue)); + } + mySubjectV.setSubjectName(openSubjectV.getSubjectName()); + mySubjectV.setCoverPageUrl(openSubjectV.getCoverPageUrl()); + mySubjectV.getId().setSubjectId(openSubjectV.getSubjectId()); + result.add(mySubjectV); + lecurelist.add(subjectUtils); + } + for (MySubjectV mySubjectV: + result) { + System.out.println(mySubjectV); + } 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)); + QBeanUtils.listBean2ListMap(result, + CollectionUtils.newStringMap("id.subjectId", "subjectId", "id.classId", "classId", + "subjectName", "subjectName", "percent", "percent", "progressValue", + "studyTime", "coverPageUrl", "coverPageUrl")), "lecurelist", lecurelist)); } /** - * 进入课程 + * 杩涘叆璇剧▼ * - * @param subjectId 课程id + * @param subjectId 璇剧▼id */ - @ApiOperation(value = "课程详情") + @ApiOperation(value = "璇剧▼璇︽儏") @ApiImplicitParams({ - @ApiImplicitParam(name = "subjectId", value = "课程id", required = false, paramType = "query", dataType = "String") + @ApiImplicitParam(name = "subjectId", value = "璇剧▼id", required = false, paramType = "query", dataType = "String") }) @GetMapping(value = "getSubjectDetail") public Result getSubjectDetail(String subjectId) { MySubjectV subject = subjectService.getMy1stSubjectVById(subjectId); - + Subject subject1 = subjectService.read(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) { + List<MyOpenLectureV> myOpenLectureVList = lectureService.listOpenLectureVBySubjectId(ClientUtils.getUserId(), subjectId, "", 100, 1, null); + List<SubjectLecture> subjectLectureList = lectureService.listLectureBySubjectId(subjectId); + if (myLectureVList.size() > 0) { + 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.setCoverPageUrl(subject1.getCoverPageUrl()); 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 { - + } else if (subjectLectureList.size() > 0) { + if (myOpenLectureVList.size() > 0) { + for (MyOpenLectureV myLectureV : myOpenLectureVList) { + if (myLectureV.getPercent() != null && myLectureV.getProgressValue() != null) { + percent += myLectureV.getPercent(); + progressValue += myLectureV.getProgressValue().intValue(); + } + } + coursewareName = myOpenLectureVList.get(0).getLectureName(); + } + if (subject == null) { + subject = new MySubjectV(new MySubjectVId()); + } + Double percentAvg = percent / subjectLectureList.size(); + if (percentAvg.isNaN()) { + percentAvg = 0.0; + } + subject.setCoverPageUrl(subject1.getCoverPageUrl()); + subject.setPercent(percentAvg); + subject.setProgressValue(new BigDecimal(progressValue)); + subject.setSubjectName(subject1.getName()); + subject.getId().setSubjectId(subjectLectureList.get(0).getSubjectId()); + Map<String, Object> map = new HashMap<>(); + map.put("percent", subject.getPercent()); + map.put("studyTime", subject.getProgressValue()); + map.put("chapterId", subjectLectureList.get(0).getSubjectId()); + map.put("chapterName", subject1.getName()); + progressLst.add(map); } 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)); + "chapterLst", progressLst, "coursewareName", coursewareName)); } } -- Gitblit v1.8.0