From 26780c533f2c2af6b9216306f649c1bcede94e4a Mon Sep 17 00:00:00 2001 From: yn147 <2270338776@qq.com> Date: 星期五, 24 十一月 2023 16:43:37 +0800 Subject: [PATCH] 学生、课程 --- src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectService.java | 330 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 207 insertions(+), 123 deletions(-) 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 d5f818c..bd4ffc1 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 @@ -2,10 +2,7 @@ import java.lang.reflect.InvocationTargetException; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import com.qxueyou.scc.base.model.UserInfoWrapper; @@ -107,7 +104,7 @@ @Override - public Result add(String subjectName, String coverPageFileId, String contentFileId, int type) { + public Result add(String subjectName, String coverPageFileId, String contentFileId, int type, Date startTime, Date endTime) { Subject subject = new Subject(); if (StringUtils.isNotEmpty(coverPageFileId)) { @@ -122,14 +119,17 @@ subject.setStatus(Subject.STATUS_DRAFT); subject.setLectureCount(0); subject.setType(type); + //绛惧埌鏃堕棿 + subject.setStartTime(startTime); + subject.setEndTime(endTime); subject.setOrgId(ClientUtils.getOrgId()); save(subject); - //初始化创建 根节点 + //鍒濆鍖栧垱寤� 鏍硅妭鐐� SubjectChapter chapter = new SubjectChapter(); TraceUtils.setCreateTrace(chapter); - chapter.setName("根节点"); + chapter.setName("鏍硅妭鐐�"); chapter.setSubjectId(subject.getSubjectId()); chapter.setParentChapterId(SubjectChapter.ROOT_CHAPTER_ID); save(chapter); @@ -156,7 +156,7 @@ save(subject); - //更新所有关联的课程 + //鏇存柊鎵�鏈夊叧鑱旂殑璇剧▼ if (subject.getType() == Subject.TYPE_ORG_SUBJECT) { this.bulkUpdate("update Subject t set t.name=?,t.contentFileId=?," + "t.coverPageFileId=?,t.coverPageUrl=? where t.deleteFlag is false and t.origSubjectId=? ", new Object[]{subject.getName(), @@ -171,7 +171,7 @@ for (String subjectId : subjectIds) { deleteSubject(subjectId); - //删除班级课程 + //鍒犻櫎鐝骇璇剧▼ List<Map<String, Object>> result = this.findListWithMapByHql( "select r.classId as classId,r.subjectId as subjectId from ClsClassReSubject r,Subject j " + "where r.subjectId = j.subjectId and j.origSubjectId=:origSubjectId and r.deleteFlag is false and j.deleteFlag is false", @@ -188,9 +188,9 @@ } /** - * 删除单个课程 + * 鍒犻櫎鍗曚釜璇剧▼ * - * @param chapterId 章节id + * @param chapterId 绔犺妭id * @return */ private Result deleteSubject(String subjectId) { @@ -207,8 +207,8 @@ @Override public List<Subject> list(String text, String teacherId, String status, Integer type, Integer pageSize, Integer pageNum) { - - StringBuffer hql = new StringBuffer("from Subject where name like ? and orgId=? and deleteFlag is false and origSubjectId is null "); + //and origSubjectId is null + StringBuffer hql = new StringBuffer("from Subject where name like ? and orgId=? and deleteFlag is false "); List<Object> args = CollectionUtils.newList(text + "%", ClientUtils.getOrgId()); @@ -222,8 +222,12 @@ args.add(status); } +// if (!StringUtils.isEmpty(teacherId)) { +// hql.append(" and createId=?"); +// args.add(teacherId); +// } if (!StringUtils.isEmpty(teacherId)) { - hql.append(" and createId=?"); + hql.append(" and teacherId=?"); args.add(teacherId); } hql.append(" order by createTime desc"); @@ -234,7 +238,7 @@ /** - * app教师端课程列表 + * app鏁欏笀绔绋嬪垪琛� * * @param text * @param status @@ -247,7 +251,7 @@ public Result teacherSubjectList(Pager pager, String keyword, String status, Integer type) { String teacherId = teacherService.getTeacherIdByUserId(ClientUtils.getUserId()); if (StringUtils.isEmpty(teacherId)) { - return new Result(false, "当前用户无老师角色"); + return new Result(false, "褰撳墠鐢ㄦ埛鏃犺�佸笀瑙掕壊"); } QSubject qSubject = QSubject.subject; @@ -327,7 +331,7 @@ Subject sub = read(subjectId); - //读取原课程 + //璇诲彇鍘熻绋� if (StringUtils.isNotBlank(sub.getOrigSubjectId())) { sub = read(sub.getOrigSubjectId()); } @@ -362,9 +366,9 @@ } /** - * 发布单个课程 + * 鍙戝竷鍗曚釜璇剧▼ * - * @param chapterId 章节id + * @param chapterId 绔犺妭id * @return */ private Result releaseSubject(String subjectId) { @@ -376,16 +380,16 @@ save(subject); - //更新所有关联的课程 + //鏇存柊鎵�鏈夊叧鑱旂殑璇剧▼ this.bulkUpdate("update Subject set status='" + Subject.STATUS_ISSUED + "' where origSubjectId=? and deleteFlag is false ", new Object[]{subjectId}); return new Result(true, "success"); } /** - * 发布单个课程 + * 鍙戝竷鍗曚釜璇剧▼ * - * @param chapterId 章节id + * @param chapterId 绔犺妭id * @return */ private Result cancelSubject(String subjectId) { @@ -397,7 +401,7 @@ save(subject); - //更新所有关联的课程 + //鏇存柊鎵�鏈夊叧鑱旂殑璇剧▼ this.bulkUpdate("update Subject set status='" + Subject.STATUS_OFFLINE + "' where origSubjectId=? and deleteFlag is false ", new Object[]{subjectId}); return new Result(true, "success"); @@ -417,6 +421,19 @@ return result; } + + @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) { @@ -462,29 +479,30 @@ @Override public Result addClsSubject(String classId, String origSubjectId, String teacherId, Integer schoolYear, Integer term) throws IllegalAccessException, InvocationTargetException { - //新增老师课程 - Subject newSubject = new Subject(); - Subject origSubject = this.read(origSubjectId); + //鏂板鑰佸笀璇剧▼ +// Subject newSubject = new Subject(); + Subject newSubject = this.read(origSubjectId); UserTeacher teacher = this.read(UserTeacher.class, teacherId); - BeanUtils.copyProperties(newSubject, origSubject); +// BeanUtils.copyProperties(newSubject, origSubject); TraceUtils.setCreateTrace(newSubject); - newSubject.setSubjectId(null); +// newSubject.setSubjectId(null); newSubject.setTeacherId(teacherId); newSubject.setSchoolYear(schoolYear); newSubject.setTerm(term); - newSubject.setStatus(origSubject.getStatus()); +// newSubject.setStatus(origSubject.getStatus()); newSubject.setOrigSubjectId(origSubjectId); newSubject.setOrigCopySubjectId(origSubjectId); - newSubject.setType(Subject.TYPE_CLS_SUBJECT); +// newSubject.setType(Subject.TYPE_CLS_SUBJECT); + newSubject.setType(Subject.TYPE_ORG_SUBJECT); newSubject.setTeacherName(teacher.getName()); newSubject.setOrgId(ClientUtils.getOrgId()); save(newSubject); - //添加班级课程关系 + //娣诲姞鐝骇璇剧▼鍏崇郴 addClassReSubject(newSubject.getSubjectId(), classId); - //复制课件 + //澶嶅埗璇句欢 clsLectureService.doCopyLecturesToClass(origSubjectId, newSubject.getSubjectId(), classId); return new Result(true, "success", CollectionUtils.newStringMap("subjectId", newSubject.getSubjectId())); @@ -504,7 +522,7 @@ Subject subject = this.read(subjectId); UserTeacher teacher = this.read(UserTeacher.class, teacherId); - //如果原课程做出了修改 + //濡傛灉鍘熻绋嬪仛鍑轰簡淇敼 if (!origSubjectId.equals(subject.getOrigSubjectId())) { subject.setContentFileId(origSubject.getCoverPageFileId()); subject.setCoverPageUrl(origSubject.getCoverPageUrl()); @@ -513,7 +531,7 @@ subject.setOrigSubjectId(origSubjectId); subject.setOrigCopySubjectId(origSubjectId); - //清理并复制原课程 + //娓呯悊骞跺鍒跺師璇剧▼ clsLectureService.doClearLecturesToClass(classId, subjectId); clsLectureService.doCopyLecturesToClass(origSubjectId, subjectId, classId); } else { @@ -539,7 +557,7 @@ List<String> reIdLst = this.findByComplexHql("select r.clsReSubjectId from ClsClassReSubject r where r.deleteFlag is false and r.classId=:classId and r.subjectId in (:subjectIds) ", paramMap, String.class); - //删除关联关系 + //鍒犻櫎鍏宠仈鍏崇郴 if (reIdLst != null && reIdLst.size() > 0) { this.bulkUpdateInLoop("update ClsClassReSubject set deleteFlag = true where clsReSubjectId=?", reIdLst.toArray()); } @@ -594,7 +612,6 @@ } subject.put("percent", new BigDecimal(percentAvg)); subject.put("progressValue", new BigDecimal(progressValue)); - subject.put("lectureParentId", map.get("lectureParentId")); subject.put("lectureId", map.get("lectureId")); subject.put("unCommitExerciseCount", exerciseInfoService.getUnCommitExerciseCount(classId, userId)); @@ -607,6 +624,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("coverPageUrl",subject.getCoverPageUrl()); + 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); } @@ -614,7 +673,7 @@ @Override public Result getDataDesc(String classId, String subjectId) { if (StringUtils.isEmpty(classId)) { - return new Result(false, "班级id参数错误"); + return new Result(false, "鐝骇id鍙傛暟閿欒"); } QSubjectProgressTreeV qSubjectProgressTreeV = QSubjectProgressTreeV.subjectProgressTreeV; @@ -631,7 +690,7 @@ } /** - * 获取班级对应的学员 按进度进行排序 + * 鑾峰彇鐝骇瀵瑰簲鐨勫鍛� 鎸夎繘搴﹁繘琛屾帓搴� */ private List<Map<String, Object>> percentDesc(String classId, String subjectId, @SuppressWarnings("rawtypes") OrderSpecifier order) { QSubjectProgressTreeV qSubjectProgressTreeV = QSubjectProgressTreeV.subjectProgressTreeV; @@ -645,30 +704,47 @@ where(qSubjectProgressTreeV.id.userId.eq(qUser.userId).and(qSubjectProgressTreeV.nodeType.eq(nodeType)) .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); - Double percent = 0.0; - Double progressValue = 0.0; - Double percentAvg = 0.0; - int size = 0; - for(ClsClassReSubject c : clsClassReSubjects) { - List<MyLectureV> myLectureVList = lectureService.listLectureVBySubjectId(tuple.get(qUser.userId), c.getSubjectId(), "", 1000, 1, null); - if (!myLectureVList.isEmpty()) { - for (MyLectureV myLectureV : myLectureVList) { - if (myLectureV.getPercent() != null && myLectureV.getProgressValue() != null) { - percent += myLectureV.getPercent(); - progressValue += myLectureV.getProgressValue().intValue(); - } - } - size += myLectureVList.size(); - if (percentAvg.isNaN()) { - percentAvg += 0.0; - } - } - } + 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; + int size = 0; + for(ClsClassReSubject c : clsClassReSubjects) { + List<MyLectureV> myLectureVList = lectureService.listLectureVBySubjectId(tuple.get(qUser.userId), c.getSubjectId(), "", 1000, 1, null); + if (!myLectureVList.isEmpty()) { + for (MyLectureV myLectureV : myLectureVList) { + if (myLectureV.getPercent() != null && myLectureV.getProgressValue() != null) { + percent += myLectureV.getPercent(); + progressValue += myLectureV.getProgressValue().intValue(); + } + } + size += myLectureVList.size(); + if (percentAvg.isNaN()) { + percentAvg += 0.0; + } + } + } + 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; - } + if(percentAvg.isNaN()){ + percentAvg = 0.0; + } Map<String, Object> map = new HashMap<>(); map.put("userName", tuple.get(qUser.name)); map.put("userId", tuple.get(qUser.userId)); @@ -683,20 +759,20 @@ } /** - * 通过作业完成个数排序 + * 閫氳繃浣滀笟瀹屾垚涓暟鎺掑簭 */ private List<Map<String, Object>> exerciseInfoDesc(String classId, String subjectId) { QExerciseResultV qExerciseResultV = QExerciseResultV.exerciseResultV; - //查询条件 + //鏌ヨ鏉′欢 Predicate predicate = StringUtils.isEmpty(subjectId) ? qExerciseResultV.id.classId.eq(classId) : qExerciseResultV.id.classId.eq(classId).and(qExerciseResultV.subjectId.eq(subjectId)); - //case数量判断 + //case鏁伴噺鍒ゆ柇 NumberExpression<BigDecimal> caseCount = new CaseBuilder() .when(qExerciseResultV.completeStatus.eq(ExerciseCompleteInfo.STATUS_CHECKED) .or(qExerciseResultV.completeStatus.eq(ExerciseCompleteInfo.STATUS_COMMIT))) .then(BigDecimal.ONE).otherwise(BigDecimal.ZERO).sum(); - //case分数 + //case鍒嗘暟 NumberExpression<BigDecimal> caseScoreSum = new CaseBuilder() .when(qExerciseResultV.completeStatus.eq(ExerciseCompleteInfo.STATUS_CHECKED) .or(qExerciseResultV.completeStatus.eq(ExerciseCompleteInfo.STATUS_COMMIT))) @@ -726,13 +802,13 @@ private List<Map<String, Object>> examInfoDesc(String classId, String subjectId) { QExamResultV qExamResultV = QExamResultV.examResultV; - //查询条件 + //鏌ヨ鏉′欢 Predicate predicate = StringUtils.isEmpty(subjectId) ? qExamResultV.id.classId.eq(classId) : qExamResultV.id.classId.eq(classId).and(qExamResultV.subjectId.eq(subjectId)); - //case判断 + //case鍒ゆ柇 NumberExpression<BigDecimal> caseCount = new CaseBuilder() .when(qExamResultV.status.eq("0")).then(BigDecimal.ZERO).otherwise(BigDecimal.ONE).sum(); - //case分数 + //case鍒嗘暟 NumberExpression<BigDecimal> caseScoreSum = new CaseBuilder() .when(qExamResultV.status.eq("0")).then(BigDecimal.ZERO).otherwise(qExamResultV.score).sum(); @@ -774,7 +850,9 @@ } else { if (StringUtils.isNotEmpty(teacherId)) { result = this.findListWithMapByHql( - "select distinct origSubjectId as subjectId ,name as subjectName from Subject where deleteFlag is false and type=" + Subject.TYPE_CLS_SUBJECT + " and teacherId='" + teacherId + "'", null); +// "select distinct origSubjectId as subjectId ,name as subjectName from Subject where deleteFlag is false and type=" + Subject.TYPE_CLS_SUBJECT + " and teacherId='" + teacherId + "'", null); + "select distinct origSubjectId as subjectId ,name as subjectName from Subject where deleteFlag is false and type=" + Subject.TYPE_ORG_SUBJECT + " and teacherId='" + teacherId + "'", null); + } else { result = this.findListWithMapByHql( "select subjectId as subjectId ,name as subjectName from Subject where deleteFlag is false and type=" + Subject.TYPE_ORG_SUBJECT + " and orgId='" + ClientUtils.getOrgId() + "'", null); @@ -816,10 +894,10 @@ .and(qClsClassReSubject.classId::eq, classId) .and(qClsClassReSubject.subjectId::eq, qSubject.subjectId) .and(qClsClassReSubject.deleteFlag::eq, false).and(qSubject.status::eq, Subject.STATUS_ISSUED); - if (schoolYear != null && schoolYear != 0) {//学年 + if (schoolYear != null && schoolYear != 0) {//瀛﹀勾 builder = builder.and(qSubject.schoolYear::eq, schoolYear); } - if (term != null && term != 0) {//学期 + if (term != null && term != 0) {//瀛︽湡 builder = builder.and(qSubject.term::eq, term); } @@ -865,7 +943,7 @@ } /** - * 我的班级信息 + * 鎴戠殑鐝骇淇℃伅 * * @param classId * @return @@ -876,7 +954,7 @@ List<Subject> lstSubject = objClsClass.getSubjects(); - //过滤掉状态为草稿的 + //杩囨护鎺夌姸鎬佷负鑽夌鐨� List<String> teachers = lstSubject.stream().filter(u -> u.getStatus().equals(Subject.STATUS_ISSUED)).map(tuple -> { return tuple.getTeacherName(); }).collect(Collectors.toList()); @@ -891,7 +969,7 @@ long lgCount = this.getQueryFactory().selectFrom(qSubjectProgressTreeV) .where(qSubjectProgressTreeV.id.nodeId.eq(classId).and(qSubjectProgressTreeV.percent.gt(objSubjectProgressTreeV.getPercent()))).fetchCount(); - //排行 + //鎺掕 float rank = (allCount - lgCount) / allCount; return CollectionUtils.newObjectMap("className", objClsClass.getName(), "progressPercent", @@ -903,7 +981,7 @@ } /** - * 获取我的课程进度 + * 鑾峰彇鎴戠殑璇剧▼杩涘害 * * @param classId * @return @@ -940,7 +1018,7 @@ } /** - * 获取我的课程数量 + * 鑾峰彇鎴戠殑璇剧▼鏁伴噺 * * @param classId * @return @@ -957,7 +1035,7 @@ } /** - * 获取学员的课程进度 + * 鑾峰彇瀛﹀憳鐨勮绋嬭繘搴� * * @param classId * @return @@ -996,7 +1074,7 @@ } /** - * 获取课件数量 + * 鑾峰彇璇句欢鏁伴噺 * * @param subjectId * @return @@ -1007,7 +1085,7 @@ if (subject == null) { return 0l; } - if (subject.getType() == Subject.TYPE_CLS_SUBJECT) {//班级课程 + if (subject.getType() == Subject.TYPE_CLS_SUBJECT) {//鐝骇璇剧▼ QClsSubjectLecture qSubjectLecture = QClsSubjectLecture.clsSubjectLecture; @@ -1022,9 +1100,15 @@ } } + @Override + public String findSubjectName(String subjectId) { + Subject subject = findUnique("from Subject where subjectId = ? ",CollectionUtils.newList(subjectId),Subject.class); + return subject.getName(); + } + /** - * 我的公开课列表 + * 鎴戠殑鍏紑璇惧垪琛� * * @param pageNum * @param pageSize @@ -1061,18 +1145,18 @@ Map<String, Object> openSubjectDetail = this.openSubjectDetail(subjectId); - // 直播数量 + // 鐩存挱鏁伴噺 map.put("mediaVideoLiveCount", openSubjectDetail.get("mediaVideoLiveCount")); - // 课件数量 + // 璇句欢鏁伴噺 map.put("subjectLectureCount", openSubjectDetail.get("subjectLectureCount")); - //学习人次 + //瀛︿範浜烘 map.put("studyCount", openSubjectDetail.get("studyCount")); map.put("content", openSubjectDetail.get("content")); - // 已观看完成课件数量 + // 宸茶鐪嬪畬鎴愯浠舵暟閲� map.put("subjectLectureDoCount", openSubjectDetail.get("subjectLectureDoCount")); return map; @@ -1082,7 +1166,7 @@ } /** - * 课程统计详情 + * 璇剧▼缁熻璇︽儏 * * @param subjectId * @return @@ -1093,7 +1177,7 @@ QSubjectLecture qSubjectLecture = QSubjectLecture.subjectLecture; QProgress qProgress = QProgress.progress; - // 直播数量 + // 鐩存挱鏁伴噺 map.put("mediaVideoLiveCount", this.getQueryFactory().select(qMediaVideoLive).from(qMediaVideoLive) .where(qMediaVideoLive.deleteFlag.isFalse() @@ -1101,14 +1185,14 @@ .and(qMediaVideoLive.subjectId.eq(subjectId))) .fetchCount()); - // 课件数量 + // 璇句欢鏁伴噺 map.put("subjectLectureCount", this.getQueryFactory().select(qSubjectLecture).from(qSubjectLecture) .where(qSubjectLecture.deleteFlag.isFalse() .and(qSubjectLecture.subjectId.eq(subjectId)).and(qSubjectLecture.status.eq(SubjectLecture.STATUS_DRAFT))) .fetchCount()); - //学习人次 + //瀛︿範浜烘 map.put("studyCount", this.getQueryFactory().selectDistinct(qProgress.learnerId).from(qProgress, qSubjectLecture) .where(qProgress.deleteFlag.isFalse().and(qSubjectLecture.deleteFlag.isFalse()).and(qSubjectLecture.subjectId.eq(subjectId)).and(qProgress.type.eq(Progress.PROGRESS_TYPE_LECTURE)) @@ -1117,7 +1201,7 @@ map.put("content", this.readSubjectContent(subjectId)); - // 已观看完成课件数量 + // 宸茶鐪嬪畬鎴愯浠舵暟閲� map.put("subjectLectureDoCount", this.getQueryFactory().select(qSubjectLecture).from(qSubjectLecture, qProgress) .where(qSubjectLecture.deleteFlag.isFalse().and(qProgress.deleteFlag.isFalse()) @@ -1130,7 +1214,7 @@ } /** - * 公开课详情 + * 鍏紑璇捐鎯� * * @param subjectId * @return @@ -1161,18 +1245,18 @@ Map<String, Object> map = new HashMap<String, Object>(7); - // 直播数量 + // 鐩存挱鏁伴噺 map.put("mediaVideoLiveCount", openSubjectDetail.get("mediaVideoLiveCount")); - // 课件数量 + // 璇句欢鏁伴噺 map.put("subjectLectureCount", openSubjectDetail.get("subjectLectureCount")); - //学习人次 + //瀛︿範浜烘 map.put("studyCount", openSubjectDetail.get("studyCount")); subjectInfo.put("content", openSubjectDetail.get("content")); - // 已观看完成课件数量 + // 宸茶鐪嬪畬鎴愯浠舵暟閲� map.put("subjectLectureDoCount", openSubjectDetail.get("subjectLectureDoCount")); map.put("subjectInfo", subjectInfo); @@ -1192,7 +1276,7 @@ QMySubjectV qMySubjectV = QMySubjectV.mySubjectV; QMyLectureV qMyLectureV = QMyLectureV.myLectureV; - // 课程 + // 璇剧▼ Tuple tuple = this.getQueryFactory() .select(qMySubjectV.id.subjectId, qMySubjectV.subjectName, qMySubjectV.term, qMySubjectV.schoolYear, qMySubjectV.origSubjectId, qMySubjectV.percent, qMySubjectV.coverPageUrl, qMySubjectV.progressValue) @@ -1222,15 +1306,15 @@ String origSubjectId = objSubject.getOrigSubjectId(); - // 考试统计 + // 鑰冭瘯缁熻 long examsCount = this.examService.listStudentExamCount("", new String[]{classId}, origSubjectId, null); - // 作业统计 + // 浣滀笟缁熻 long homeworksCount = exerciseInfoService.queryStuExerciseListCount("", null, ClientUtils.getUserId(), origSubjectId, null); - // 课件统计 + // 璇句欢缁熻 Tuple tupleLecture = this.getQueryFactory().select(qMyLectureV.count(), - new CaseBuilder().when(qMyLectureV.percent.gt(0.95)).then(1).otherwise(0).sum()).// 大于95%算完成 + new CaseBuilder().when(qMyLectureV.percent.gt(0.95)).then(1).otherwise(0).sum()).// 澶т簬95%绠楀畬鎴� from(qMyLectureV) .where(qMyLectureV.classId.eq(classId).and(qMyLectureV.id.userId.eq(ClientUtils.getUserId())) .and(qMyLectureV.subjectId.eq(subjectId))) @@ -1245,7 +1329,7 @@ } /** - * 公开课列表 + * 鍏紑璇惧垪琛� * * @param pageNum * @param pageSize @@ -1280,7 +1364,7 @@ } /** - * 班级学员课件总体进度 + * 鐝骇瀛﹀憳璇句欢鎬讳綋杩涘害 * * @param subjectId * @param classId @@ -1310,7 +1394,7 @@ } /** - * 学员课程作业进度 + * 瀛﹀憳璇剧▼浣滀笟杩涘害 * * @param classId * @param subjectId @@ -1356,7 +1440,7 @@ } /** - * 学员考试作业进度 + * 瀛﹀憳鑰冭瘯浣滀笟杩涘害 * * @param classId * @param subjectId @@ -1392,7 +1476,7 @@ } /** - * 我的课件情况 + * 鎴戠殑璇句欢鎯呭喌 * * @param classId * @return @@ -1403,7 +1487,7 @@ return this.getQueryFactory().select(qMyLectureV.subjectId, qMyLectureV.count(), new CaseBuilder() - .when(qMyLectureV.percent.gt(0.95)).then(1).otherwise(0).sum()).//大于95%算完成 + .when(qMyLectureV.percent.gt(0.95)).then(1).otherwise(0).sum()).//澶т簬95%绠楀畬鎴� from(qMyLectureV). where(qMyLectureV.classId.eq(classId).and(qMyLectureV.id.userId.eq(ClientUtils.getUserId()))). groupBy(qMyLectureV.subjectId).fetch().stream() @@ -1417,15 +1501,15 @@ } /** - * 我的课程,按时间排序 + * 鎴戠殑璇剧▼锛屾寜鏃堕棿鎺掑簭 * * @param classId * @return */ public List<Map<String, Object>> mySubjectList(String classId, Pager pager) { - //课程 + //璇剧▼ List<Map<String, Object>> clsSubjectlist = this.myClsSubjectlist(classId, ClientUtils.getUserId(), pager); - //课件统计 + //璇句欢缁熻 List<Map<String, Object>> lectures = this.myLectureList(classId); for (Map<String, Object> clsSubject : clsSubjectlist) { String origSubjectId = (String) clsSubject.get("origSubjectId"); @@ -1441,11 +1525,11 @@ } /** - * 统计课程的数据 + * 缁熻璇剧▼鐨勬暟鎹� * - * @param type 类型 - * @param clsSubject 课程 - * @param lstStatistics 统计信息 + * @param type 绫诲瀷 + * @param clsSubject 璇剧▼ + * @param lstStatistics 缁熻淇℃伅 */ private void setSubjectStatistics(String type, Map<String, Object> clsSubject, List<Map<String, Object>> lstStatistics) { if (lstStatistics != null && !lstStatistics.isEmpty()) { @@ -1459,7 +1543,7 @@ } /** - * 我的课程详情 + * 鎴戠殑璇剧▼璇︽儏 * * @param classId * @return @@ -1469,7 +1553,7 @@ QMySubjectV qMySubjectV = QMySubjectV.mySubjectV; QMyLectureV qMyLectureV = QMyLectureV.myLectureV; Object userId = request.getSession().getAttribute("userId"); - // 课程 + // 璇剧▼ Tuple tuple = this.getQueryFactory() .select(qMySubjectV.id.subjectId, qMySubjectV.subjectName, qMySubjectV.term, qMySubjectV.schoolYear, qMySubjectV.origSubjectId, qMySubjectV.percent, qMySubjectV.coverPageUrl, qMySubjectV.progressValue) @@ -1499,15 +1583,15 @@ String origSubjectId = objSubject.getOrigSubjectId(); - // 考试统计 + // 鑰冭瘯缁熻 long examsCount = this.examService.listStudentExamCount("", new String[]{classId}, origSubjectId, null); - // 作业统计 + // 浣滀笟缁熻 long homeworksCount = exerciseInfoService.queryStuExerciseListCount("", null, ClientUtils.getUserId(), origSubjectId, null); - // 课件统计 + // 璇句欢缁熻 Tuple tupleLecture = this.getQueryFactory().select(qMyLectureV.count(), - new CaseBuilder().when(qMyLectureV.percent.gt(0.95)).then(1).otherwise(0).sum()).// 大于95%算完成 + new CaseBuilder().when(qMyLectureV.percent.gt(0.95)).then(1).otherwise(0).sum()).// 澶т簬95%绠楀畬鎴� from(qMyLectureV) .where(qMyLectureV.classId.eq(classId).and(qMyLectureV.id.userId.eq(ClientUtils.getUserId())) .and(qMyLectureV.subjectId.eq(subjectId))) @@ -1522,14 +1606,14 @@ } /** - * 我的课程按学期分类 + * 鎴戠殑璇剧▼鎸夊鏈熷垎绫� * * @param classId * @return */ @Override public List<Map<String, Object>> myTermSubjectList(String classId) { - //课程 + //璇剧▼ List<Map<String, Object>> clsSubjectlist = this.mySubjectList(classId, new Pager()); System.out.println("clsSubjectlistaaaaaa" + clsSubjectlist); return this.termSubjectList(classId, clsSubjectlist); @@ -1537,14 +1621,14 @@ /** - * 课程按学期分类 + * 璇剧▼鎸夊鏈熷垎绫� * * @param classId * @return */ @Override public List<Map<String, Object>> termSubjectList(String classId, List<Map<String, Object>> clsSubjectlist) { - //学期 + //瀛︽湡 List<Map<String, Object>> termList = this.termList(classId); if (termList != null && !termList.isEmpty()) { @@ -1566,7 +1650,7 @@ /** - * 查询课程关联的班级课程信息 + * 鏌ヨ璇剧▼鍏宠仈鐨勭彮绾ц绋嬩俊鎭� * * @param classId * @return -- Gitblit v1.8.0