From 888af852af74ecd24f4f4370b61427771e60d314 Mon Sep 17 00:00:00 2001 From: Administrator <2863138610@qq.com> Date: 星期一, 12 十二月 2022 11:18:56 +0800 Subject: [PATCH] 华为云obs上传访问 --- src/main/java/com/qxueyou/scc/controller/CoursewareController.java | 4 src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClassLectureService.java | 17 src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java | 5 src/main/java/com/qxueyou/scc/teach/subject/model/view/MyOpenLectureV.java | 154 ++++++ src/main/java/com/qxueyou/scc/teach/subject/service/ILectureService.java | 156 ++--- src/main/java/com/qxueyou/scc/admin/classes/service/IClassLectureService.java | 82 +- src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java | 9 src/main/java/com/qxueyou/scc/teach/subject/service/ISubjectService.java | 6 src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectLectureService.java | 731 +++++++++++++++++------------- src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectService.java | 72 +++ src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java | 6 src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java | 182 ++++++- 12 files changed, 925 insertions(+), 499 deletions(-) diff --git a/src/main/java/com/qxueyou/scc/admin/classes/service/IClassLectureService.java b/src/main/java/com/qxueyou/scc/admin/classes/service/IClassLectureService.java index f2162a9..bdc418f 100644 --- a/src/main/java/com/qxueyou/scc/admin/classes/service/IClassLectureService.java +++ b/src/main/java/com/qxueyou/scc/admin/classes/service/IClassLectureService.java @@ -8,13 +8,14 @@ import com.qxueyou.scc.admin.progress.model.view.SubjectProgressTreeV; import com.qxueyou.scc.base.model.Pager; import com.qxueyou.scc.base.model.Result; +import com.qxueyou.scc.teach.subject.model.SubjectLecture; import com.qxueyou.scc.teach.subject.model.view.MyLectureV; public interface IClassLectureService { /** * 鏂板绔犺妭鏂囦欢澶� - * + * * @param parentChapterId * 鐖剁骇绔犺妭鏂囦欢澶筰d * @param name @@ -25,7 +26,7 @@ /** * 杩斿洖涓嬬骇绔犺妭鏂囦欢澶瑰垪琛�,濡傛灉 - * + * * @param classId * 鐝骇id * @param parentChapterId @@ -36,7 +37,7 @@ /** * 璇句欢鍒楄〃鎼滅储 - * + * * @param chapterId * 绔犺妭id * @param keyword @@ -54,7 +55,7 @@ /** * 淇敼绔犺妭鏂囦欢澶� - * + * * @param chapterId * 鏂囦欢澶筰d * @param name @@ -65,7 +66,7 @@ /** * 鍒犻櫎绔犺妭鏂囦欢澶� - * + * * @param chapterIds * 绔犺妭鏂囦欢澶筰d鏁扮粍 * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{}} @@ -74,7 +75,7 @@ /** * 鏂板璇句欢 - * + * * @param chapterId * 绔犺妭id * @param resId @@ -85,7 +86,7 @@ /** * 淇敼璇句欢 - * + * * @param lectureId * 璇句欢id * @param resId @@ -96,7 +97,7 @@ /** * 鍒犻櫎璇句欢 - * + * * @param lectureIds * 璇句欢id鏁扮粍 * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{}} @@ -105,7 +106,7 @@ /** * 璇句欢瀛︿範杩涘害鎻愪氦 - * + * * @param clsLectureId * @param from * @param to @@ -115,7 +116,7 @@ /** * 澶嶅埗璇句欢 - * + * * @param lectureId * 璇句欢id * @param destChapterId @@ -128,7 +129,7 @@ /** * 绉诲姩璇句欢 - * + * * @param lectureId * 璇句欢id * @param destChapterId @@ -141,7 +142,7 @@ /** * 璇句欢鍒楄〃鎼滅储 - * + * * @param chapterId * 绔犺妭id * @param keyword @@ -159,7 +160,7 @@ /** * 璇句欢鍒楄〃 - * + * * @param classId * 绔犺妭id * @return @@ -168,7 +169,7 @@ /** * 璇诲彇璇句欢鐪熷疄鏂囦欢璁块棶璺緞 - * + * * @param lectureId * 璇句欢id鏁扮粍 * @param attribute @@ -184,7 +185,7 @@ /** * 璇诲彇璇句欢鐩綍 - * + * * @param chapterId * @return */ @@ -192,7 +193,7 @@ /** * 璇句欢鍒楄〃澶у皬 - * + * * @param chapterId * 绔犺妭id * @param keyword @@ -205,7 +206,7 @@ /** * 杩斿洖涓嬬骇绔犺妭鏂囦欢澶瑰垪琛� - * + * * @param classId * 鐝骇id * @param classId @@ -218,7 +219,7 @@ /** * 杩斿洖涓嬬骇绔犺妭鏂囦欢澶瑰垪琛�,濡傛灉 - * + * * @param classId * 鐝骇id * @param subjectId @@ -231,7 +232,7 @@ /** * 鎶婅绋嬩笂鐨勮浠舵嫹璐濆埌鐝骇璇剧▼ - * + * * @param subjectId * 璇剧▼id * @param classId @@ -239,8 +240,8 @@ * @return */ Result doCopyLecturesToClass(String origSubjectId, String subjectId, String classId); - - + + /** * 娓呯悊鎵�鏈夌殑鐝骇璇句欢 * @param subjectId @@ -248,72 +249,72 @@ * @return */ Result doClearLecturesToClass(String subjectId, String classId); - + /** * 鏍规嵁璇剧▼鏌ヨ璇句欢 - * + * * @param subjectId * @param type * @param classId * @return */ List<Map<String, Object>> listLectureBySubject(String subjectId, String type, String classId); - + /** * 鏌ヨ鐝骇鍐呯殑璇句欢鍜岃绋� - * + * * @param classId * @return */ Result listSubjectLecture(String classId, String sort, Pager pager); - + /** * 鑾峰彇璇剧▼涓嬬殑璇句欢 - * + * * @param subjectId * @param type * @return */ public Map<String,Object> listLectureBySubjectOrderCreateTime(String subjectId, String classId, String sort, Pager pager); - + /** * 瀛﹀憳绔幏鍙栬绋嬩笅璇句欢 - * + * * @param subjectId * @param type * @return */ public List<Map<String, Object>> listStuLectureBySubject(String subjectId, String classId); - + /** * 瀛﹀憳绔幏鍙栬绋嬩笅璇句欢鏁伴噺 - * + * * @param subjectId * @param type * @return */ public long stuLectureCountBySubject(String subjectId, String classId); - + /** * 鑾峰彇绔犺妭涓嬬殑璇句欢 - * + * * @param chapterLst * @param lectures * @return */ public List<ClsSubjectChapter> getChapterLectures(List<ClsSubjectChapter> chapterLst, List<Map<String, Object>> lectures); - + /** * 鑾峰彇鏂囨。椤电爜 - * + * * @param resItemId * @return */ public int readDocPageCount(String resItemId); - + /** * 鍏紑璇捐浠� - * + * * @param subjectId * @param classId * @param sort @@ -321,14 +322,17 @@ * @return */ public Map<String,Object> listOpenLectureBySubjectOrderCreateTime(String subjectId, String sort, Pager pager); - + /** * 璇句欢鎸夌洰褰曞垎绫� - * + * * @param classId * @param subjectId * @param type * @return */ public Result coursewareChapterList(String classId,String subjectId, String type); + + List<Map<String, Object>> listStuLectureByOpenSubject(String subjectId); + } diff --git a/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClassLectureService.java b/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClassLectureService.java index 18a3e55..6e4fb50 100644 --- a/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClassLectureService.java +++ b/src/main/java/com/qxueyou/scc/admin/classes/service/impl/ClassLectureService.java @@ -273,13 +273,20 @@ public Result updateLecturetime(String targetId) { ClsSubjectLecture lecture = read(ClsSubjectLecture.class, targetId); + if(lecture == null){ + SubjectLecture lecture1 = read(SubjectLecture.class,targetId); + TraceUtils.setUpdateTrace(lecture1); + lecture1.setUpdateTime(new Date()); + lecture1.setUpdator(ClientUtils.getUserId()); + save(lecture1); + }else { + TraceUtils.setUpdateTrace(lecture); - TraceUtils.setUpdateTrace(lecture); - - lecture.setUpdateTime(new Date()); - lecture.setUpdator(ClientUtils.getUserId()); - save(lecture); + lecture.setUpdateTime(new Date()); + lecture.setUpdator(ClientUtils.getUserId()); + save(lecture); + } return new Result(true, "success"); } diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java index 5cd277a..e7d57a0 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java @@ -5,6 +5,7 @@ import javax.annotation.PostConstruct; +import com.qxueyou.scc.teach.subject.service.ILectureService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Service; @@ -21,7 +22,10 @@ public class LectureProgressService extends CommonAppService implements IDetailProgressService { @Autowired - IClassLectureService lectureService; + IClassLectureService clsLectureService; + + @Autowired + ILectureService lectureService; /** * 鍚勭被鍨嬭浠惰繘搴︽湇鍔″疄鐜� @@ -45,8 +49,7 @@ @Override public Result addProgress(String targetId,String learnerId, int start, int end) { - ClsSubjectLecture lecture = lectureService.readClsLecture(targetId); - + ClsSubjectLecture lecture = clsLectureService.readClsLecture(targetId); String lectureType = null; if(lecture == null) { lectureType = this.read(SubjectLecture.class, targetId).getLectureType(); diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java index 81d8722..cb46020 100644 --- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java +++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java @@ -5,6 +5,8 @@ import com.qxueyou.scc.admin.classes.model.ClsSubjectLecture; import com.qxueyou.scc.admin.classes.service.impl.ClassLectureService; +import com.qxueyou.scc.teach.subject.service.ILectureService; +import com.qxueyou.scc.teach.subject.service.impl.SubjectLectureService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -34,6 +36,9 @@ @Autowired ClassLectureService classLectureService; + @Autowired + SubjectLectureService subjectLectureService; + @Override public Result addProgress(String targetId, String learnerId, int start, int end) { diff --git a/src/main/java/com/qxueyou/scc/controller/CoursewareController.java b/src/main/java/com/qxueyou/scc/controller/CoursewareController.java index 2474063..640040c 100644 --- a/src/main/java/com/qxueyou/scc/controller/CoursewareController.java +++ b/src/main/java/com/qxueyou/scc/controller/CoursewareController.java @@ -136,7 +136,7 @@ public Result deleteCourseware(String id) { Result result = lectureService.deleteLecture(id.split(",")); - lectureService.deleteLectureLoad(id.split(",")); +// lectureService.deleteLectureLoad(id.split(",")); return result; } @@ -323,8 +323,6 @@ result = lectureService.addLecture(sectionId, resId_); successCount = result.isSuccess() ? 1 : 0; } - lectureService.addLectureLoad(sectionId); - return new Result(true, null, successCount); } diff --git a/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java b/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java index 861f990..27f0f4e 100644 --- a/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java +++ b/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java @@ -39,17 +39,17 @@ private HweiYunOBSService hweiYunOBSService; @RequestMapping(value = "upload", method = RequestMethod.POST) - public Result save(@RequestParam(value = "file", required = false) MultipartFile file) { + public List<FileMeta> save(@RequestParam(value = "file", required = false) MultipartFile file) { if (ObjectUtils.isEmpty(file) || file.getSize() <= 0) { - return new Result(false,"鏂囦欢涓虹┖"); + return null; } // if (FileUtil.isEmpty(file)) { // return new Result(false,"鏂囦欢涓虹┖"); // } final List<FileMeta> test = hweiYunOBSService.fileUpload(file, file.getOriginalFilename()); // return ResponseVO.ok("鎵ц鎴愬姛",test); - return new Result(true,"success",test); + return test; } @RequestMapping(value = "delete", method = RequestMethod.POST) diff --git a/src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java b/src/main/java/com/qxueyou/scc/stucontroller/StuSubjectController.java index 72cac28..0e8fa69 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; @@ -288,15 +289,23 @@ }) @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"))); } /** @@ -312,12 +321,22 @@ @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涓哄皬鑺俰d //杩斿洖鐨勬暟鎹寜鐓ree鐨勫皬鑺傛帓搴� - 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"))); + } + + } /** @@ -340,12 +359,46 @@ 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")))); + + } } @@ -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,12 +497,47 @@ 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.getId().setSubjectId(openSubjectV.getSubjectId()); + result.add(mySubjectV); + 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)); + QBeanUtils.listBean2ListMap(result, + CollectionUtils.newStringMap("id.subjectId", "subjectId", "id.classId", "classId", + "subjectName", "subjectName", "percent", "percent", "progressValue", + "studyTime", "coverPageUrl", "coverPageUrl")), "lecurelist", lecurelist)); } /** @@ -465,34 +552,63 @@ @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.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 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.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)); } } diff --git a/src/main/java/com/qxueyou/scc/teach/subject/model/view/MyOpenLectureV.java b/src/main/java/com/qxueyou/scc/teach/subject/model/view/MyOpenLectureV.java new file mode 100644 index 0000000..eaa4c12 --- /dev/null +++ b/src/main/java/com/qxueyou/scc/teach/subject/model/view/MyOpenLectureV.java @@ -0,0 +1,154 @@ +package com.qxueyou.scc.teach.subject.model.view; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonView; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.transaction.annotation.Transactional; + +import javax.persistence.*; +import java.math.BigDecimal; +import java.util.Date; + +@Entity(name = "MyOpenLectureV") +@Table(name = "my_open_lecture_v") +public class MyOpenLectureV implements java.io.Serializable { + private static final long serialVersionUID = -332455459706490649L; + + private String userId; + + private String lectureId; + + private String chapterId; + private String lectureType; + private String lectureName; + private String userName; + private String subjectName; + private Date lectureUpdateTime; + private BigDecimal progressValue; + private Double percent; + private String subjectId; + private Date lectureCreateTime; + + @Id + @Column(name = "USER_ID") + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + @Id + @Column(name = "LECTURE_ID") + public String getLectureId() { + return lectureId; + } + + public void setLectureId(String lectureId) { + this.lectureId = lectureId; + } + + public MyOpenLectureV() { + } + + + @Column(name = "SUBJECT_NAME") + public String getSubjectName() { + return subjectName; + } + + public void setSubjectName(String subjectName) { + this.subjectName = subjectName; + } + + @Column(name = "PROGRESS_VALUE") + public BigDecimal getProgressValue() { + return this.progressValue; + } + + public void setProgressValue(BigDecimal progressValue) { + this.progressValue = progressValue; + } + + @Column(name = "CHAPTER_ID") + public String getChapterId() { + return chapterId; + } + + public void setChapterId(String chapterId) { + this.chapterId = chapterId; + } + + @Column(name = "LECTURE_TYPE") + public String getLectureType() { + return lectureType; + } + + public void setLectureType(String lectureType) { + this.lectureType = lectureType; + } + + @Column(name = "LECTURE_NAME") + public String getLectureName() { + return lectureName; + } + + public void setLectureName(String lectureName) { + this.lectureName = lectureName; + } + + @Column(name = "USER_NAME") + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + @Column(name = "PERCENT") + public Double getPercent() { + return percent; + } + + public void setPercent(Double percent) { + this.percent = percent; + } + + @Column(name = "LECTURE_UPDATE_TIME") + @Temporal(TemporalType.TIMESTAMP) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonIgnore + public Date getLectureUpdateTime() { + return lectureUpdateTime; + } + + public void setLectureUpdateTime(Date lectureUpdateTime) { + this.lectureUpdateTime = lectureUpdateTime; + } + + @Id + @Column(name = "SUBJECT_ID") + public String getSubjectId() { + return subjectId; + } + + public void setSubjectId(String subjectId) { + this.subjectId = subjectId; + } + + + @Column(name = "LECTURE_CREATE_TIME") + public Date getLectureCreateTime() { + return lectureCreateTime; + } + + public void setLectureCreateTime(Date lectureCreateTime) { + this.lectureCreateTime = lectureCreateTime; + } + + + + +} diff --git a/src/main/java/com/qxueyou/scc/teach/subject/service/ILectureService.java b/src/main/java/com/qxueyou/scc/teach/subject/service/ILectureService.java index 9b82060..cded89f 100644 --- a/src/main/java/com/qxueyou/scc/teach/subject/service/ILectureService.java +++ b/src/main/java/com/qxueyou/scc/teach/subject/service/ILectureService.java @@ -6,22 +6,16 @@ import com.qxueyou.scc.base.model.Result; import com.qxueyou.scc.teach.subject.model.SubjectChapter; import com.qxueyou.scc.teach.subject.model.SubjectLecture; -import com.qxueyou.scc.teach.subject.model.view.LectureAudioV; -import com.qxueyou.scc.teach.subject.model.view.LectureDocV; -import com.qxueyou.scc.teach.subject.model.view.LectureVideoV; -import com.qxueyou.scc.teach.subject.model.view.MyLectureV; +import com.qxueyou.scc.teach.subject.model.view.*; public interface ILectureService { /** * 鏂板绔犺妭鏂囦欢澶� * - * @param subjectId - * 璇剧▼id - * @param parentChapterId - * 鐖剁骇绔犺妭鏂囦欢澶筰d - * @param name - * 鏂囦欢澶瑰悕绉� + * @param subjectId 璇剧▼id + * @param parentChapterId 鐖剁骇绔犺妭鏂囦欢澶筰d + * @param name 鏂囦欢澶瑰悕绉� * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{"chapterId","90023afwe32300fee23"}},鑻ユ垚鍔燂紝鍒欒繑鍥濩hapterId */ Result addChapter(String subjectId, String parentChapterId, String name); @@ -37,10 +31,8 @@ /** * 淇敼绔犺妭鏂囦欢澶� * - * @param chapterId - * 鏂囦欢澶筰d - * @param name - * 鍚嶇О + * @param chapterId 鏂囦欢澶筰d + * @param name 鍚嶇О * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{}} */ Result updateChapter(String chapterId, String name); @@ -48,8 +40,7 @@ /** * 鍒犻櫎绔犺妭鏂囦欢澶� * - * @param chapterIds - * 绔犺妭鏂囦欢澶筰d鏁扮粍 + * @param chapterIds 绔犺妭鏂囦欢澶筰d鏁扮粍 * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{}} */ Result deleteChapter(String[] chapterIds); @@ -57,10 +48,8 @@ /** * 杩斿洖涓嬬骇绔犺妭鏂囦欢澶瑰垪琛�,濡傛灉 * - * @param subjectId - * 璇剧▼id - * @param parentChapterId - * 鐖剁骇绔犺妭鏂囦欢澶筰d + * @param subjectId 璇剧▼id + * @param parentChapterId 鐖剁骇绔犺妭鏂囦欢澶筰d * @return 杩斿洖绔犺妭鍒楄〃 */ List<SubjectChapter> doGetListChapter(String subjectId, String parentChapterId); @@ -68,10 +57,8 @@ /** * 杩斿洖涓嬬骇绔犺妭鏂囦欢澶瑰垪琛�,濡傛灉 * - * @param subjectId - * 璇剧▼id - * @param parentChapterId - * 鐖剁骇绔犺妭鏂囦欢澶筰d + * @param subjectId 璇剧▼id + * @param parentChapterId 鐖剁骇绔犺妭鏂囦欢澶筰d * @return 杩斿洖绔犺妭鍒楄〃 */ List<SubjectProgressTreeV> getChapterTreeVList(String subjectId, String parentChapterId); @@ -79,10 +66,8 @@ /** * 杩斿洖涓嬬骇绔犺妭鏂囦欢澶瑰垪琛� * - * @param subjectId - * 璇剧▼id - * @param parentChapterId - * 鐖剁骇绔犺妭鏂囦欢澶筰d + * @param subjectId 璇剧▼id + * @param parentChapterId 鐖剁骇绔犺妭鏂囦欢澶筰d * @return 杩斿洖绔犺妭鍒楄〃 */ List<SubjectChapter> getListChapter(String subjectId, String parentChapterId); @@ -90,8 +75,7 @@ /** * 杩斿洖鎵�鏈夌珷鑺傚垪琛紝鎸塩reateTime鎺掑簭 * - * @param subjectId - * 璇剧▼id + * @param subjectId 璇剧▼id * @return 杩斿洖绔犺妭鍒楄〃 */ List<SubjectChapter> getAllChapterBySubjectId(String subjectId); @@ -99,24 +83,22 @@ /** * 鏂板璇句欢 * - * @param chapterId - * 绔犺妭id - * @param resId - * 璧勬簮id + * @param chapterId 绔犺妭id + * @param resId 璧勬簮id * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{"chapterId","90023afwe32300fee23"}},鑻ユ垚鍔燂紝鍒欒繑鍥瀋hapterId */ Result addLecture(String chapterId, String resId); - /** - * 鏂板鍚庡埛鏂拌浠� - */ - Result addLectureLoad(String sectionId); +// /** +// * 鏂板鍚庡埛鏂拌浠� +// */ +// Result addLectureLoad(String sectionId); + /** * 璇诲彇璇句欢 * - * @param lectureId - * 璇句欢id + * @param lectureId 璇句欢id * @return SubjectLecture */ SubjectLecture readLecture(String lectureId); @@ -124,8 +106,7 @@ /** * 璇诲彇瑙嗛璇句欢 * - * @param lectureId - * 璇句欢id + * @param lectureId 璇句欢id * @return SubjectLecture */ LectureVideoV readVideoLecture(String lectureId); @@ -133,8 +114,7 @@ /** * 璇诲彇闊抽璇句欢 * - * @param lectureId - * 璇句欢id + * @param lectureId 璇句欢id * @return LectureAudioV */ LectureAudioV readAudioLecture(String lectureId); @@ -142,10 +122,8 @@ /** * 淇敼璇句欢 * - * @param lectureId - * 璇句欢id - * @param resId - * 璧勬簮id + * @param lectureId 璇句欢id + * @param resId 璧勬簮id * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{}} */ Result updateLecture(String lectureId, String resId); @@ -153,23 +131,19 @@ /** * 鍒犻櫎璇句欢 * - * @param lectureIds - * 璇句欢id鏁扮粍 + * @param lectureIds 璇句欢id鏁扮粍 * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{}} */ Result deleteLecture(String[] lectureIds); - Result deleteLectureLoad(String[] lectureIds); +// Result deleteLectureLoad(String[] lectureIds); /** * 澶嶅埗璇句欢 * - * @param lectureId - * 璇句欢id - * @param destChapterId - * 鐩爣绔犺妭id - * @param name - * 璇句欢鍚嶇О + * @param lectureId 璇句欢id + * @param destChapterId 鐩爣绔犺妭id + * @param name 璇句欢鍚嶇О * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{}} */ Result doCopyLecture(String lectureId, String destChapterId, String name); @@ -177,12 +151,9 @@ /** * 绉诲姩璇句欢 * - * @param lectureId - * 璇句欢id - * @param destChapterId - * 鐩爣绔犺妭id - * @param name - * 璇句欢鍚嶇О + * @param lectureId 璇句欢id + * @param destChapterId 鐩爣绔犺妭id + * @param name 璇句欢鍚嶇О * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{}} */ Result doMoveLecture(String lectureId, String destChapterId, String name); @@ -190,16 +161,11 @@ /** * 璇句欢鍒楄〃鎼滅储 * - * @param chapterId - * 绔犺妭id - * @param keyword - * 鍏抽敭瀛� - * @param pageSize - * 椤电爜 - * @param pageNum - * 姣忛〉鏄剧ず鏁版嵁鏉℃暟 - * @param type - * 绫诲瀷 + * @param chapterId 绔犺妭id + * @param keyword 鍏抽敭瀛� + * @param pageSize 椤电爜 + * @param pageNum 姣忛〉鏄剧ず鏁版嵁鏉℃暟 + * @param type 绫诲瀷 * @return */ List<SubjectLecture> listLecture(String chapterId, String keyword, Integer pageSize, Integer pageNum, String type); @@ -207,12 +173,9 @@ /** * 璇句欢鍒楄〃澶у皬 * - * @param chapterId - * 绔犺妭id - * @param keyword - * 鍏抽敭瀛� - * @param type - * 绫诲瀷 + * @param chapterId 绔犺妭id + * @param keyword 鍏抽敭瀛� + * @param type 绫诲瀷 * @return */ int listLectureCount(String chapterId, String keyword, String type); @@ -220,20 +183,15 @@ /** * 璇句欢鍒楄〃鎼滅储 * - * @param chapterId - * 绔犺妭id - * @param keyword - * 鍏抽敭瀛� - * @param pageSize - * 椤电爜 - * @param pageNum - * 姣忛〉鏄剧ず鏁版嵁鏉℃暟 - * @param type - * 绫诲瀷 + * @param chapterId 绔犺妭id + * @param keyword 鍏抽敭瀛� + * @param pageSize 椤电爜 + * @param pageNum 姣忛〉鏄剧ず鏁版嵁鏉℃暟 + * @param type 绫诲瀷 * @return */ List<MyLectureV> listLectureV(String learnerId, String chapterId, String keyword, Integer pageSize, Integer pageNum, - String type); + String type); /** * 璇句欢鍒楄〃鎼滅储 @@ -245,10 +203,8 @@ /** * 璇诲彇璇句欢鐪熷疄鏂囦欢璁块棶璺緞 * - * @param lectureId - * 璇句欢id鏁扮粍 - * @param attribute - * 璇句欢闄勫姞灞炴�� + * @param lectureId 璇句欢id鏁扮粍 + * @param attribute 璇句欢闄勫姞灞炴�� * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{"type":"",path:""}} */ Result readLectureAccessPath(String lectureId, String attribute); @@ -262,6 +218,7 @@ /** * 璇句欢璇︽儏鏌ヨ + * * @param learnerId * @param subjectId * @param keyword @@ -271,5 +228,14 @@ * @return */ List<MyLectureV> listLectureVBySubjectId(String learnerId, String subjectId, String keyword, Integer pageSize, - Integer pageNum, String type); + Integer pageNum, String type); + + List<MyOpenLectureV> listOpenLectureVBySubjectId(String learnerId, String subjectId, String keyword, Integer pageSize, + Integer pageNum, String type); + + List<SubjectLecture> getSubjectLectureVByChapterId(String chapterId, String keyword, Integer limit, Integer pageNum); + + List<MyOpenLectureV> getMyOpenLectureVByChapterId(String userId, String chapterId, String keyword, Integer limit, Integer pageNum); + + } diff --git a/src/main/java/com/qxueyou/scc/teach/subject/service/ISubjectService.java b/src/main/java/com/qxueyou/scc/teach/subject/service/ISubjectService.java index 3aab7fd..baee3b0 100644 --- a/src/main/java/com/qxueyou/scc/teach/subject/service/ISubjectService.java +++ b/src/main/java/com/qxueyou/scc/teach/subject/service/ISubjectService.java @@ -8,6 +8,7 @@ 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 { @@ -126,6 +127,11 @@ List<MySubjectV> listMySubjectV(String classId,String userId); /** + * 鏌ヨ鍏紑璇剧▼ + */ + List<OpenSubjectV> listOpenSubjectV(); + + /** * 棣栭〉鏌ヨ鎴戠殑璇剧▼ */ List<Map<String, Object>> getMySubjectList(); diff --git a/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectLectureService.java b/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectLectureService.java index 0835b45..4d8ea9b 100644 --- a/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectLectureService.java +++ b/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectLectureService.java @@ -1,10 +1,14 @@ package com.qxueyou.scc.teach.subject.service.impl; +import java.util.Date; import java.util.List; import com.qxueyou.scc.admin.classes.model.ClsClassReSubject; +import com.qxueyou.scc.admin.classes.model.ClsSubjectChapter; import com.qxueyou.scc.admin.classes.service.IClassLectureService; import com.qxueyou.scc.teach.subject.model.Subject; +import com.qxueyou.scc.teach.subject.model.view.*; +import com.qxueyou.scc.user.model.UserTeacher; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.Cacheable; @@ -26,10 +30,6 @@ import com.qxueyou.scc.teach.res.service.IResService; import com.qxueyou.scc.teach.subject.model.SubjectChapter; import com.qxueyou.scc.teach.subject.model.SubjectLecture; -import com.qxueyou.scc.teach.subject.model.view.LectureAudioV; -import com.qxueyou.scc.teach.subject.model.view.LectureDocV; -import com.qxueyou.scc.teach.subject.model.view.LectureVideoV; -import com.qxueyou.scc.teach.subject.model.view.MyLectureV; import com.qxueyou.scc.teach.subject.service.ILectureService; import com.qxueyou.scc.teach.subject.service.ISubjectService; import org.springframework.transaction.annotation.Transactional; @@ -37,415 +37,510 @@ @Service public class SubjectLectureService extends CommonAppService implements ILectureService { - public static final String RES_LECTURE_CONVER_LST = "RES_LECTURE_CONVER_LST"; + public static final String RES_LECTURE_CONVER_LST = "RES_LECTURE_CONVER_LST"; - @Autowired - ISubjectService subjectService; + @Autowired + ISubjectService subjectService; - @Autowired - IResService resService; + @Autowired + IResService resService; - @Autowired - ICacheService cacheService; + @Autowired + ICacheService cacheService; - @Autowired - IProgressService progressService; + @Autowired + IProgressService progressService; - @Autowired - IClassLectureService clsLectureService; + @Autowired + IClassLectureService clsLectureService; - @Override - public Result addChapter(String subjectId, String parentChapterId, String name) { + @Override + public Result addChapter(String subjectId, String parentChapterId, String name) { - SubjectChapter chapter = new SubjectChapter(); + SubjectChapter chapter = new SubjectChapter(); - TraceUtils.setCreateTrace(chapter); - chapter.setName(name); - chapter.setParentChapterId(parentChapterId); - chapter.setSubjectId(subjectId); + TraceUtils.setCreateTrace(chapter); + chapter.setName(name); + chapter.setParentChapterId(parentChapterId); + chapter.setSubjectId(subjectId); - save(chapter); + save(chapter); - return new Result(true, "success", CollectionUtils.newObjectMap("id", chapter.getChapterId(), "name", name)); + return new Result(true, "success", CollectionUtils.newObjectMap("id", chapter.getChapterId(), "name", name)); - } + } - @Override - public Result updateChapter(String chapterId, String name) { + @Override + public Result updateChapter(String chapterId, String name) { - SubjectChapter chapter = read(SubjectChapter.class, chapterId); + SubjectChapter chapter = read(SubjectChapter.class, chapterId); - TraceUtils.setUpdateTrace(chapter); - chapter.setName(name); + TraceUtils.setUpdateTrace(chapter); + chapter.setName(name); - save(chapter); + save(chapter); - return new Result(true, "success", CollectionUtils.newObjectMap("id", chapter.getChapterId(), "name", name)); - } + return new Result(true, "success", CollectionUtils.newObjectMap("id", chapter.getChapterId(), "name", name)); + } - @Override - public Result deleteChapter(String[] chapterIds) { - for (String chapterId : chapterIds) { - deleteChapter(chapterId); - } + @Override + public Result deleteChapter(String[] chapterIds) { + for (String chapterId : chapterIds) { + deleteChapter(chapterId); + } - return new Result(true, "success"); - } + return new Result(true, "success"); + } - /** - * 鍒犻櫎鍗曚釜绔犺妭 - * - * @param chapterId - * 绔犺妭id - * @return - */ - private Result deleteChapter(String chapterId) { + /** + * 鍒犻櫎鍗曚釜绔犺妭 + * + * @param chapterId 绔犺妭id + * @return + */ + private Result deleteChapter(String chapterId) { - SubjectChapter chapter = read(SubjectChapter.class, chapterId); + SubjectChapter chapter = read(SubjectChapter.class, chapterId); - TraceUtils.setUpdateTrace(chapter); - chapter.setDeleteFlag(true); + TraceUtils.setUpdateTrace(chapter); + chapter.setDeleteFlag(true); - save(chapter); - Result result = this.deleteCourseware4Chapter(chapterId); - if (!result.isSuccess()) { - return result; - } - return new Result(true, "success"); - } + save(chapter); + Result result = this.deleteCourseware4Chapter(chapterId); + if (!result.isSuccess()) { + return result; + } + return new Result(true, "success"); + } - private Result deleteCourseware4Chapter(String chapterId) { + private Result deleteCourseware4Chapter(String chapterId) { - this.bulkUpdate("update SubjectLecture set deleteFlag = true where chapterId = ?", new String[] { chapterId }); - return new Result(true); + this.bulkUpdate("update SubjectLecture set deleteFlag = true where chapterId = ?", new String[]{chapterId}); + return new Result(true); - } + } - @Override - public List<SubjectChapter> doGetListChapter(String subjectId, String parentChapterId) { + @Override + public List<SubjectChapter> doGetListChapter(String subjectId, String parentChapterId) { - List<SubjectChapter> result = getListChapter(subjectId, parentChapterId); + List<SubjectChapter> result = getListChapter(subjectId, parentChapterId); - if (result.isEmpty() && StringUtils.isEmpty(parentChapterId)) { - return CollectionUtils.newList(SubjectChapter.class, initLectureChapter(subjectId)); - } + if (result.isEmpty() && StringUtils.isEmpty(parentChapterId)) { + return CollectionUtils.newList(SubjectChapter.class, initLectureChapter(subjectId)); + } - return result; - } + return result; + } - @Override - public List<SubjectProgressTreeV> getChapterTreeVList(String subjectId, String parentChapterId) { + @Override + public List<SubjectProgressTreeV> getChapterTreeVList(String subjectId, String parentChapterId) { - if (parentChapterId == null) { - return progressService.getSubjectChapterTreeVList(subjectId, ClientUtils.getUserId()); - } + if (parentChapterId == null) { + return progressService.getSubjectChapterTreeVList(subjectId, ClientUtils.getUserId()); + } - return progressService.getSubjectChapterTreeVList(parentChapterId, ClientUtils.getUserId()); - } + return progressService.getSubjectChapterTreeVList(parentChapterId, ClientUtils.getUserId()); + } - /** - * 鍒濆鍖� - * - * @param subjectId - * @return - */ - private SubjectChapter initLectureChapter(String subjectId) { + /** + * 鍒濆鍖� + * + * @param subjectId + * @return + */ + private SubjectChapter initLectureChapter(String subjectId) { - SubjectChapter chapter = new SubjectChapter(); + SubjectChapter chapter = new SubjectChapter(); - TraceUtils.setCreateTrace(chapter); - chapter.setName("鏍硅妭鐐�"); - chapter.setSubjectId(subjectId); - chapter.setParentChapterId(SubjectChapter.ROOT_CHAPTER_ID); + TraceUtils.setCreateTrace(chapter); + chapter.setName("鏍硅妭鐐�"); + chapter.setSubjectId(subjectId); + chapter.setParentChapterId(SubjectChapter.ROOT_CHAPTER_ID); - save(chapter); + save(chapter); - return chapter; - } + return chapter; + } - @Override - public Result addLecture(String chapterId, String resId) { + @Override + public Result addLecture(String chapterId, String resId) { - SubjectChapter chapter = read(SubjectChapter.class, chapterId); + SubjectChapter chapter = read(SubjectChapter.class, chapterId); - Res res = resService.read(resId); + Res res = resService.read(resId); - SubjectLecture lecture = new SubjectLecture(); + SubjectLecture lecture = new SubjectLecture(); - TraceUtils.setCreateTrace(lecture); - lecture.setChapterId(chapterId); - lecture.setLectureType(res.getType()); - lecture.setName(res.getName()); - lecture.setStatus(res.getStatus()); - lecture.setRemark(res.getRemark()); - lecture.setSubjectId(chapter.getSubjectId()); - lecture.setResItemId(res.getResId()); - save(lecture); - subjectService.addLectureCount(lecture.getSubjectId(), 1); - return new Result(true, "success"); - } + TraceUtils.setCreateTrace(lecture); + lecture.setChapterId(chapterId); + lecture.setLectureType(res.getType()); + lecture.setName(res.getName()); + lecture.setStatus(res.getStatus()); + lecture.setRemark(res.getRemark()); + lecture.setSubjectId(chapter.getSubjectId()); + lecture.setResItemId(res.getResId()); + save(lecture); + subjectService.addLectureCount(lecture.getSubjectId(), 1); - @Override - public Result addLectureLoad(String sectionId){ - SubjectChapter chapter = read(SubjectChapter.class, sectionId); - String hql = "from Subject where subjectId = ? and deleteFlag is false"; - String subjectId = chapter.getSubjectId(); - Subject subjectOne = findUnique(hql,CollectionUtils.newList(subjectId),Subject.class); - String hqlOne = "from Subject where name = ? and deleteFlag is false"; - List<Subject> subjectTwo = find(hqlOne,CollectionUtils.newList(subjectOne.getName()),Subject.class); - for (Subject s : subjectTwo){ - String hqlTwo = "from ClsClassReSubject where subjectId = ? and deleteFlag is false"; - ClsClassReSubject subject = findUnique(hqlTwo,CollectionUtils.newList(s.getSubjectId()),ClsClassReSubject.class); - if(subject != null){ - subjectService.updateClsSubject(subject.getClassId(),s.getSubjectId(),s.getOrigSubjectId(),s.getTeacherId(),s.getSchoolYear(),s.getTerm()); - } - } - return new Result(true, "success"); - } + String hql = "from Subject where subjectId = ? and deleteFlag is false"; + Subject subject = findUnique(hql, CollectionUtils.newList(chapter.getSubjectId()), Subject.class); + String hql1 = "from Subject where name = ? and deleteFlag is false and type = 2"; + List<Subject> subjects = find(hql1, CollectionUtils.newList(subject.getName()), Subject.class); + for (Subject subjectv : subjects) { + + String hql2 = "from ClsSubjectChapter where subjectId = ? and deleteFlag is false and Name = ? "; + ClsSubjectChapter clsSubjectChapter = findUnique(hql2, CollectionUtils.newList(subjectv.getSubjectId(), chapter.getName()), ClsSubjectChapter.class); + String hql3 = "from ClsClassReSubject where subjectId = ? and deleteFlag is false"; + List<ClsClassReSubject> reSubject = find(hql3, CollectionUtils.newList(subjectv.getSubjectId()), ClsClassReSubject.class); + + for (ClsClassReSubject classReSubject : reSubject) { + ClsSubjectLecture clsLecture = new ClsSubjectLecture(); + TraceUtils.setCreateTrace(clsLecture); + clsLecture.setChapterId(clsSubjectChapter.getChapterId()); + clsLecture.setLectureType(res.getType()); + clsLecture.setName(res.getName()); + clsLecture.setStatus(res.getStatus()); + clsLecture.setRemark(res.getRemark()); + clsLecture.setSubjectId(clsSubjectChapter.getSubjectId()); + clsLecture.setResItemId(res.getResId()); + clsLecture.setClassId(classReSubject.getClassId()); + save(clsLecture); + } + } + + + return new Result(true, "success"); + } + +// @Override +// public Result addLectureLoad(String sectionId){ +// SubjectChapter chapter = read(SubjectChapter.class, sectionId); +// String hql = "from Subject where subjectId = ? and deleteFlag is false"; +// String subjectId = chapter.getSubjectId(); +// Subject subjectOne = findUnique(hql,CollectionUtils.newList(subjectId),Subject.class); +// String hqlOne = "from Subject where name = ? and deleteFlag is false"; +// List<Subject> subjectTwo = find(hqlOne,CollectionUtils.newList(subjectOne.getName()),Subject.class); +// for (Subject s : subjectTwo){ +// String hqlTwo = "from ClsClassReSubject where subjectId = ? and deleteFlag is false"; +// ClsClassReSubject subject2 = findUnique(hqlTwo,CollectionUtils.newList(s.getSubjectId()),ClsClassReSubject.class); +// if(subject2 != null){ +// subjectService.updateClsSubject(subject2.getClassId(),s.getSubjectId(),s.getOrigSubjectId(),s.getTeacherId(),s.getSchoolYear(),s.getTerm()); +// Subject subject = read(Subject.class,s.getSubjectId()); +// +// +// clsLectureService.doCopyLecturesToClass(s.getSubjectId(), subjectId, subject2.getClassId()); +// +// +// } +// } +// return new Result(true, "success"); +// } + + @Override + public Result updateLecture(String lectureId, String resId) { + + SubjectLecture lecture = read(SubjectLecture.class, lectureId); + + + Res res = resService.read(resId); + + TraceUtils.setUpdateTrace(lecture); + lecture.setLectureType(res.getType()); + lecture.setName(res.getName()); + lecture.setRemark(res.getRemark()); + lecture.setResItemId(res.getResId()); + + save(lecture); + + return new Result(true, "success"); + } + + @Override + public Result deleteLecture(String[] lectureIds) { + for (String lectureId : lectureIds) { + deleteLecture(lectureId); + } + return new Result(true, "success"); + } + +// @Override +// public Result deleteLectureLoad(String[] lectureIds){ +// SubjectLecture lecture = read(SubjectLecture.class, lectureIds[0]); +// String hql = "from Subject where subjectId = ? and deleteFlag is false"; +// String subjectId = lecture.getSubjectId(); +// Subject subjectOne = findUnique(hql,CollectionUtils.newList(subjectId),Subject.class); +// String hqlOne = "from Subject where name = ? and deleteFlag is false"; +// List<Subject> subjectTwo = find(hqlOne,CollectionUtils.newList(subjectOne.getName()),Subject.class); +// for (Subject s : subjectTwo){ +// String hqlTwo = "from ClsClassReSubject where subjectId = ? and deleteFlag is false"; +// ClsClassReSubject subject = findUnique(hqlTwo,CollectionUtils.newList(s.getSubjectId()),ClsClassReSubject.class); +// if(subject != null){ +// subjectService.updateClsSubject(subject.getClassId(),s.getSubjectId(),s.getOrigSubjectId(),s.getTeacherId(),s.getSchoolYear(),s.getTerm()); +// } +// } +// return new Result(true, "success"); +// } + + /** + * @param lectureId 璇句欢id + * @return + */ + private Result deleteLecture(String lectureId) { + + SubjectLecture lecture = read(SubjectLecture.class, lectureId); + TraceUtils.setUpdateTrace(lecture); + lecture.setDeleteFlag(true); + save(lecture); + + subjectService.addLectureCount(lecture.getSubjectId(), -1); + + String hql = "from Subject where subjectId = ? and deleteFlag is false"; + Subject subject = findUnique(hql, CollectionUtils.newList(lecture.getSubjectId()), Subject.class); + String hql1 = "from Subject where name = ? and deleteFlag is false and type = 2"; + List<Subject> subjects = find(hql1, CollectionUtils.newList(subject.getName()), Subject.class); + for (Subject subjectv : subjects) { + + String hql2 = "from ClsSubjectLecture where subjectId = ? and deleteFlag is false and Name = ? "; + ClsSubjectLecture clsSubjectLecture = findUnique(hql2, CollectionUtils.newList(subjectv.getSubjectId(), lecture.getName()), ClsSubjectLecture.class); + if(clsSubjectLecture != null){ + TraceUtils.setUpdateTrace(clsSubjectLecture); + clsSubjectLecture.setDeleteFlag(true); + save(clsSubjectLecture); + } + } + + return new Result(true, "success"); + } + + @Override + public Result doCopyLecture(String lectureId, String destChapterId, String name) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Result doMoveLecture(String lectureId, String destChapterId, String name) { + // TODO Auto-generated method stub + return null; + } - @Override - public Result updateLecture(String lectureId, String resId) { + @Override + public List<SubjectLecture> listLecture(String chapterId, String keyword, Integer pageSize, Integer pageNum, + String type) { - SubjectLecture lecture = read(SubjectLecture.class, lectureId); + StringBuffer hql = new StringBuffer("from SubjectLecture where chapterId=? and name like ? and deleteFlag is false"); + List<Object> args = CollectionUtils.newList(chapterId, '%' + keyword.trim() + '%'); - Res res = resService.read(resId); + if (StringUtils.isNotEmpty(type)) { + hql.append(" and lectureType=?"); + args.add(type); + } - TraceUtils.setUpdateTrace(lecture); - lecture.setLectureType(res.getType()); - lecture.setName(res.getName()); - lecture.setRemark(res.getRemark()); - lecture.setResItemId(res.getResId()); + List<SubjectLecture> result = findList(hql.toString(), new Pager(pageSize, pageNum), args, + SubjectLecture.class); - save(lecture); + return result; + } - return new Result(true, "success"); - } + @Override + public List<MyLectureV> listLectureV(String learnerId, String chapterId, String keyword, Integer pageSize, + Integer pageNum, String type) { + StringBuffer hql = new StringBuffer("from MyLectureV where chapterId=? and id.userId=?"); + List<Object> args = CollectionUtils.newList(chapterId, learnerId); - @Override - public Result deleteLecture(String[] lectureIds) { - for (String lectureId : lectureIds) { - deleteLecture(lectureId); - } - return new Result(true, "success"); - } - @Override - public Result deleteLectureLoad(String[] lectureIds){ - SubjectLecture lecture = read(SubjectLecture.class, lectureIds[0]); - String hql = "from Subject where subjectId = ? and deleteFlag is false"; - String subjectId = lecture.getSubjectId(); - Subject subjectOne = findUnique(hql,CollectionUtils.newList(subjectId),Subject.class); - String hqlOne = "from Subject where name = ? and deleteFlag is false"; - List<Subject> subjectTwo = find(hqlOne,CollectionUtils.newList(subjectOne.getName()),Subject.class); - for (Subject s : subjectTwo){ - String hqlTwo = "from ClsClassReSubject where subjectId = ? and deleteFlag is false"; - ClsClassReSubject subject = findUnique(hqlTwo,CollectionUtils.newList(s.getSubjectId()),ClsClassReSubject.class); - if(subject != null){ - subjectService.updateClsSubject(subject.getClassId(),s.getSubjectId(),s.getOrigSubjectId(),s.getTeacherId(),s.getSchoolYear(),s.getTerm()); - } - } - return new Result(true, "success"); - } + if (StringUtils.isNotEmpty(type)) { + hql.append(" and lectureType=?"); + args.add(type); + } - /** - * - * @param lectureId - * 璇句欢id - * @return - */ - private Result deleteLecture(String lectureId) { + List<MyLectureV> result = findList(hql.toString(), new Pager(pageSize, pageNum), args, MyLectureV.class); - SubjectLecture lecture = read(SubjectLecture.class, lectureId); + return result; + } - TraceUtils.setUpdateTrace(lecture); - lecture.setDeleteFlag(true); - save(lecture); + @Override + public List<MyLectureV> listLectureVBySubjectId(String learnerId, String subjectId, String keyword, Integer pageSize, + Integer pageNum, String type) { + StringBuffer hql = new StringBuffer("from MyLectureV where subjectId=? and id.userId=? order by lectureUpdateTime desc"); + List<Object> args = CollectionUtils.newList(subjectId, learnerId); - subjectService.addLectureCount(lecture.getSubjectId(), -1); + if (StringUtils.isNotEmpty(type)) { + hql.append(" and lectureType=?"); + args.add(type); + } - return new Result(true, "success"); - } + List<MyLectureV> result = findList(hql.toString(), new Pager(pageSize, pageNum), args, MyLectureV.class); - @Override - public Result doCopyLecture(String lectureId, String destChapterId, String name) { - // TODO Auto-generated method stub - return null; - } + return result; + } - @Override - public Result doMoveLecture(String lectureId, String destChapterId, String name) { - // TODO Auto-generated method stub - return null; - } + @Override + public List<MyOpenLectureV> listOpenLectureVBySubjectId(String learnerId, String subjectId, String keyword, Integer pageSize, + Integer pageNum, String type) { + StringBuffer hql = new StringBuffer("from MyOpenLectureV where subjectId=? and userId = ? order by lectureUpdateTime desc"); + List<Object> args = CollectionUtils.newList(subjectId, learnerId); - @Override - public List<SubjectLecture> listLecture(String chapterId, String keyword, Integer pageSize, Integer pageNum, - String type) { + if (StringUtils.isNotEmpty(type)) { + hql.append(" and lectureType=?"); + args.add(type); + } - StringBuffer hql = new StringBuffer("from SubjectLecture where chapterId=? and name like ? and deleteFlag is false"); - List<Object> args = CollectionUtils.newList(chapterId,'%' + keyword.trim() + '%'); + List<MyOpenLectureV> result = findList(hql.toString(), new Pager(pageSize, pageNum), args, MyOpenLectureV.class); - if (StringUtils.isNotEmpty(type)) { - hql.append(" and lectureType=?"); - args.add(type); - } + return result; + } - List<SubjectLecture> result = findList(hql.toString(), new Pager(pageSize, pageNum), args, - SubjectLecture.class); + @Override + public List<SubjectLecture> getSubjectLectureVByChapterId(String chapterId, String keyword, Integer limit, Integer pageNum) { + StringBuffer hql = new StringBuffer("from SubjectLecture where chapterId=? and deleteFlag is false"); + List<Object> args = CollectionUtils.newList(chapterId); - return result; - } + List<SubjectLecture> result = findList(hql.toString(), new Pager(limit, pageNum), args, SubjectLecture.class); + return result; + } - @Override - public List<MyLectureV> listLectureV(String learnerId, String chapterId, String keyword, Integer pageSize, - Integer pageNum, String type) { - StringBuffer hql = new StringBuffer("from MyLectureV where chapterId=? and id.userId=?"); - List<Object> args = CollectionUtils.newList(chapterId, learnerId); + @Override + public List<MyOpenLectureV> getMyOpenLectureVByChapterId(String userId, String chapterId, String keyword, Integer limit, Integer pageNum) { + StringBuffer hql = new StringBuffer("from MyOpenLectureV where userId=? and chapterId = ?"); + List<Object> args = CollectionUtils.newList(userId, chapterId); - if (StringUtils.isNotEmpty(type)) { - hql.append(" and lectureType=?"); - args.add(type); - } + List<MyOpenLectureV> result = findList(hql.toString(), new Pager(limit, pageNum), args, MyOpenLectureV.class); + return result; + } - List<MyLectureV> result = findList(hql.toString(), new Pager(pageSize, pageNum), args, MyLectureV.class); + @Override + public int listLectureCount(String chapterId, String keyword, String type) { + StringBuffer hql = new StringBuffer("from SubjectLecture where chapterId=? and name like ? and deleteFlag is false"); - return result; - } + List<Object> args = CollectionUtils.newList(chapterId, '%' + keyword.trim() + '%'); - @Override - public List<MyLectureV> listLectureVBySubjectId(String learnerId, String subjectId, String keyword, Integer pageSize, - Integer pageNum, String type) { - StringBuffer hql = new StringBuffer("from MyLectureV where subjectId=? and id.userId=? order by lectureUpdateTime desc"); - List<Object> args = CollectionUtils.newList(subjectId, learnerId); + if (StringUtils.isNotEmpty(type)) { + hql.append(" and lectureType=?"); + args.add(type); + } - if (StringUtils.isNotEmpty(type)) { - hql.append(" and lectureType=?"); - args.add(type); - } + return findCount(hql.toString(), args); - List<MyLectureV> result = findList(hql.toString(), new Pager(pageSize, pageNum), args, MyLectureV.class); + } - return result; - } + @Override + public Result readLectureAccessPath(String lectureId, String attribute) { + SubjectLecture lecture = read(SubjectLecture.class, lectureId); + String resItemId = null; + if (lecture == null) { + resItemId = read(ClsSubjectLecture.class, lectureId).getResItemId();//鐝骇璇句欢 + } else { + resItemId = lecture.getResItemId(); + } + return resService.readAccessPath(resItemId, attribute); + } - @Override - public int listLectureCount(String chapterId, String keyword, String type) { - StringBuffer hql = new StringBuffer("from SubjectLecture where chapterId=? and name like ? and deleteFlag is false"); + @Override + public SubjectLecture readLecture(String lectureId) { + return read(SubjectLecture.class, lectureId); + } - List<Object> args = CollectionUtils.newList(chapterId,'%' + keyword.trim() + '%'); + @Override + public SubjectChapter readChapter(String chapterId) { + return read(SubjectChapter.class, chapterId); + } - if (StringUtils.isNotEmpty(type)) { - hql.append(" and lectureType=?"); - args.add(type); - } + @Override + public List<SubjectChapter> getListChapter(String subjectId, String parentChapterId) { - return findCount(hql.toString(),args); + StringBuffer hql = new StringBuffer( + "from SubjectChapter where subjectId=? and deleteFlag is false and parentChapterId=?"); - } + List<Object> args = CollectionUtils.newList(subjectId); - @Override - public Result readLectureAccessPath(String lectureId, String attribute) { - SubjectLecture lecture = read(SubjectLecture.class, lectureId); - String resItemId = null; - if(lecture == null) { - resItemId = read(ClsSubjectLecture.class, lectureId).getResItemId();//鐝骇璇句欢 - }else { - resItemId = lecture.getResItemId(); - } - return resService.readAccessPath(resItemId, attribute); - } + if (StringUtils.isEmpty(parentChapterId)) { + args.add(SubjectChapter.ROOT_CHAPTER_ID); + } else { + args.add(parentChapterId); + } - @Override - public SubjectLecture readLecture(String lectureId) { - return read(SubjectLecture.class, lectureId); - } + List<SubjectChapter> result = find(hql.toString(), args, SubjectChapter.class); - @Override - public SubjectChapter readChapter(String chapterId) { - return read(SubjectChapter.class, chapterId); - } + return result; + } - @Override - public List<SubjectChapter> getListChapter(String subjectId, String parentChapterId) { + @Override + public List<SubjectLecture> listLectureBySubjectId(String subjectId) { + String hql = "from SubjectLecture where subjectId=? and deleteFlag is false"; - StringBuffer hql = new StringBuffer( - "from SubjectChapter where subjectId=? and deleteFlag is false and parentChapterId=?"); + List<SubjectLecture> result = find(hql, CollectionUtils.newList(subjectId), SubjectLecture.class); - List<Object> args = CollectionUtils.newList(subjectId); + return result; + } - if (StringUtils.isEmpty(parentChapterId)) { - args.add(SubjectChapter.ROOT_CHAPTER_ID); - } else { - args.add(parentChapterId); - } + /** + * 鐩戞帶resId杞爜鐘舵�佸悓姝ecture鐨勭姸鎬� + */ + @Scheduled(cron = "0/2 * * * * ?") // 姣�2绉掓墽琛屼竴娆� + public void doTimer() { + String resId = cacheService.lstLeftPop(RES_LECTURE_CONVER_LST); + if (StringUtils.isBlank(resId)) { + return; + } + Res res = read(Res.class, resId); + if (res.getStatus().equals(Res.STATUS_DRAFT)) { + String[] resIds = resId.split(","); + bulkUpdate( + "update SubjectLecture set status = 'draft' where deleteFlag is false and status = 'conver' and resItemId = ?", + resIds); + bulkUpdate( + "update ClsSubjectLecture set status = 'draft' where deleteFlag is false and status = 'conver' and resItemId = ?", + resIds); + return; + } + cacheService.lstRightPush(RES_LECTURE_CONVER_LST, resId); + } - List<SubjectChapter> result = find(hql.toString(), args, SubjectChapter.class); + @Override + public Result doStudy(String lectureId, Double from, Double to) { + String userId = null; + return progressService.addProgress(Progress.PROGRESS_TYPE_LECTURE, lectureId, from.intValue(), to.intValue(), + userId); + } - return result; - } + @Cacheable(value = "LectureVideoV", key = "#lectureId") + @Override + public LectureVideoV readVideoLecture(String lectureId) { + return read(LectureVideoV.class, lectureId); + } - @Override - public List<SubjectLecture> listLectureBySubjectId(String subjectId) { - String hql = "from SubjectLecture where subjectId=? and deleteFlag is false"; + @Cacheable(value = "LectureAudioV", key = "#lectureId") + @Override + public LectureAudioV readAudioLecture(String lectureId) { + return read(LectureAudioV.class, lectureId); + } - List<SubjectLecture> result = find(hql, CollectionUtils.newList(subjectId), SubjectLecture.class); + @Override + public List<SubjectChapter> getAllChapterBySubjectId(String subjectId) { - return result; - } + String hql = "from SubjectChapter where deleteFlag is false and subjectId = ? order by createTime"; + return find(hql, CollectionUtils.newList(subjectId), SubjectChapter.class); - /** - * 鐩戞帶resId杞爜鐘舵�佸悓姝ecture鐨勭姸鎬� - */ - @Scheduled(cron = "0/2 * * * * ?") // 姣�2绉掓墽琛屼竴娆� - public void doTimer() { - String resId = cacheService.lstLeftPop(RES_LECTURE_CONVER_LST); - if (StringUtils.isBlank(resId)) { - return; - } - Res res = read(Res.class, resId); - if (res.getStatus().equals(Res.STATUS_DRAFT)) { - String[] resIds = resId.split(","); - bulkUpdate( - "update SubjectLecture set status = 'draft' where deleteFlag is false and status = 'conver' and resItemId = ?", - resIds); - bulkUpdate( - "update ClsSubjectLecture set status = 'draft' where deleteFlag is false and status = 'conver' and resItemId = ?", - resIds); - return; - } - cacheService.lstRightPush(RES_LECTURE_CONVER_LST, resId); - } + } - @Override - public Result doStudy(String lectureId, Double from, Double to) { - String userId = null; - return progressService.addProgress(Progress.PROGRESS_TYPE_LECTURE, lectureId, from.intValue(), to.intValue(), - userId); - } + @Override + public LectureDocV readDocLecture(String lectureId) { - @Cacheable(value = "LectureVideoV", key = "#lectureId") - @Override - public LectureVideoV readVideoLecture(String lectureId) { - return read(LectureVideoV.class, lectureId); - } + return read(LectureDocV.class, lectureId); + } - @Cacheable(value = "LectureAudioV", key = "#lectureId") - @Override - public LectureAudioV readAudioLecture(String lectureId) { - return read(LectureAudioV.class, lectureId); - } + public Result updateLecturetime(String targetId) { - @Override - public List<SubjectChapter> getAllChapterBySubjectId(String subjectId) { + SubjectLecture lecture = read(SubjectLecture.class, targetId); - String hql = "from SubjectChapter where deleteFlag is false and subjectId = ? order by createTime"; - return find(hql, CollectionUtils.newList(subjectId), SubjectChapter.class); - } + TraceUtils.setUpdateTrace(lecture); - @Override - public LectureDocV readDocLecture(String lectureId) { + lecture.setUpdateTime(new Date()); + lecture.setUpdator(ClientUtils.getUserId()); + save(lecture); - return read(LectureDocV.class, lectureId); - } + return new Result(true, "success"); + } } diff --git a/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectService.java b/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectService.java index 66d943d..9d9036f 100644 --- a/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectService.java +++ b/src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectService.java @@ -419,6 +419,19 @@ } @Override + public List<OpenSubjectV> listOpenSubjectV() { + StringBuffer hql = new StringBuffer("from OpenSubjectV p where 1 = ?"); + int param = 1; + List<Object> args = CollectionUtils.newList(param); + + + List<OpenSubjectV> result = find(hql.toString(), args, OpenSubjectV.class); + + return result; + } + + + @Override public List<Map<String, Object>> listChapterStudyProgress(String subjectId) { QSubjectProgressTreeV qSubjectProgressTreeV = QSubjectProgressTreeV.subjectProgressTreeV; @@ -607,6 +620,48 @@ subject.put("toBeCommitExamCount", examService.getToBeCommitExamCount(classId, userId)); } + List<OpenSubjectV> subjects = listOpenSubjectV(); + for(OpenSubjectV subject : subjects){ + Map<String, Object> subjectMap = new HashMap<>(); + String classId = ClientUtils.getClassId(); + String subjectId = subject.getSubjectId(); + Map<String, Object> map = progressDao.getStudyById(userId, subjectId, null); + List<MyOpenLectureV> myLectureVList = lectureService.listOpenLectureVBySubjectId(userId, subjectId, "", 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 / myLectureVList.size(); + if (percentAvg.isNaN()) { + percentAvg = 0.0; + } + } + String className = "鍏紑璇�"; + subjectMap.put("subjectName",subject.getSubjectName()); + subjectMap.put("subjectId",subject.getSubjectId()); + + subjectMap.put("percent", new BigDecimal(percentAvg)); + subjectMap.put("progressValue", new BigDecimal(progressValue)); + subjectMap.put("className",className); + subjectMap.put("lectureParentId", map.get("lectureParentId")); + subjectMap.put("lectureId", map.get("lectureId")); + subjectMap.put("unCommitExerciseCount", exerciseInfoService.getUnCommitExerciseCount(classId, userId)); + subjectMap.put("toBeCommitExerciseCount", exerciseInfoService.getToBeCommitExerciseCount(classId, userId)); + subjectMap.put("CommitExerciseCount", exerciseInfoService.getCommitExerciseCount(classId, userId)); + subjectMap.put("exerciseCount", exerciseInfoService.getExerciseCount(classId, userId)); + subjectMap.put("examCount", examService.getExamCount(classId, userId)); + subjectMap.put("unCommitExamCount", examService.getUnCommitExamCount(classId, userId)); + subjectMap.put("commitExamCount", examService.getCommitExamCount(classId, userId)); + subjectMap.put("toBeCommitExamCount", examService.getToBeCommitExamCount(classId, userId)); + + subjectLstMap.add(subjectMap); + } return new Result(true, "success", subjectLstMap); } @@ -646,6 +701,8 @@ .and(qSubjectProgressTreeV.id.nodeId.eq(nodeId))).orderBy(order).fetch().stream().map(tuple -> { List<ClsClassReSubject> clsClassReSubjects = find("from ClsClassReSubject where classId = ?",CollectionUtils.newList(nodeId),ClsClassReSubject.class); + int type = 3; + List<Subject> subjects = find("from Subject where type = ?",CollectionUtils.newList(type),Subject.class); Double percent = 0.0; Double progressValue = 0.0; Double percentAvg = 0.0; @@ -665,6 +722,21 @@ } } } + for(Subject subject : subjects){ + List<MyOpenLectureV> myOpenLectureVList = lectureService.listOpenLectureVBySubjectId(tuple.get(qUser.userId), subject.getSubjectId(), "", 1000, 1, null); + if(!myOpenLectureVList.isEmpty()){ + for(MyOpenLectureV myOpenLecture : myOpenLectureVList){ + if (myOpenLecture.getPercent() != null && myOpenLecture.getProgressValue() != null) { + percent += myOpenLecture.getPercent(); + progressValue += myOpenLecture.getProgressValue().intValue(); + } + } + size += myOpenLectureVList.size(); + if (percentAvg.isNaN()) { + percentAvg += 0.0; + } + } + } percentAvg += percent / size; if(percentAvg.isNaN()){ percentAvg = 0.0; -- Gitblit v1.8.0