From 96286178ee1c257c130cb2ad964a781f36c4eee5 Mon Sep 17 00:00:00 2001
From: yn147 <2270338776@qq.com>
Date: 星期三, 10 五月 2023 16:23:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/qxueyou/scc/teach/subject/service/impl/SubjectService.java |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 1 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 66d943d..aa9121f 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;
@@ -594,7 +607,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));
@@ -606,6 +618,48 @@
             subject.put("commitExamCount", examService.getCommitExamCount(classId, userId));
             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);
     }
@@ -646,6 +700,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 +721,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