From 94bd823e3dbba696cff47b937165b3f86875fc4c Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 28 十一月 2025 13:55:47 +0800
Subject: [PATCH] update

---
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java |  174 +++++++++++++++++++++++++++------------------------------
 1 files changed, 82 insertions(+), 92 deletions(-)

diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java
index a136e8b..6f2513f 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java
@@ -450,20 +450,20 @@
         List<TSubjectRecordDetail> listenList = subjectRecordDetails.stream().filter(e -> e.getType() == 1).collect(Collectors.toList());
         int listenPass = (int) listenList.stream().filter(e -> e.getStatus() == 2).count();
         int listenSize = listenList.size();
-        if (listenSize!=0){
+        if (listenSize != 0) {
             // 计算当前通关率
-            double listenRate = (double) listenPass /listenSize;
+            double listenRate = (double) listenPass / listenSize;
             TStudyListen one = studyListenService.lambdaQuery().eq(TStudyListen::getWeek, week)
                     .eq(TStudyListen::getDay, 1).last("limit 1").one();
-            if (one!=null){
-                if (listenRate<(Double.parseDouble(one.getRate())/100)){
+            if (one != null) {
+                if (listenRate < (Double.parseDouble(one.getRate()) / 100)) {
                     // 清空答题记录
                     subjectRecordDetailService.remove(new LambdaQueryWrapper<TSubjectRecordDetail>()
                             .eq(TSubjectRecordDetail::getUserId, userid)
                             .eq(TSubjectRecordDetail::getWeek, week)
-                            .eq(TSubjectRecordDetail::getDay,day)
+                            .eq(TSubjectRecordDetail::getDay, day)
                             .eq(TSubjectRecordDetail::getType
-                            ,1));
+                                    , 1));
                 }
             }
         }
@@ -477,11 +477,11 @@
                 List<String> subjectIds = Arrays.stream(studyListen.getSubject().split(",")).collect(Collectors.toList());
                 List<TSubject> subs = new ArrayList<>();
                 // 图片及语音集合
-                int i=0;
-                for (String id : studyListen.getSubject().split( ",")) {
+                int i = 0;
+                for (String id : studyListen.getSubject().split(",")) {
                     TSubject data = subjectService.lambdaQuery().eq(TSubject::getId, id)
                             .eq(TSubject::getDisabled, 0).one();
-                    if(studyListen.getType()!=null && studyListen.getType()==2 && i<2){
+                    if (studyListen.getType() != null && studyListen.getType() == 2 && i < 2) {
                         data.setStudyType(2);
                     }
 
@@ -499,14 +499,10 @@
                     data.setTSubjectRecordDetail(tSubjectRecordDetail);
                     subs.add(data);
                 }
-                if(studyListen.getSubject().equals("10325,10327,10326,10328")){
-                    System.out.println("数据3331"+subs);
-                }
+                System.out.println(studyListen.getId() + "数据3331" + subs);
                 subjectList.add(subs);
 
-                if(studyListen.getSubject().equals("10325,10327,10326,10328")){
-                    System.out.println("数据4441"+subjectList);
-                }
+                System.out.println(studyListen.getId() + "数据4441" + subjectList);
             }
 //            subjectRecordDetailService.saveBatch(tSubjectRecordDetails);
             studyListenResultVO.setList(tSubjectRecordDetails);
@@ -520,24 +516,22 @@
                 List<TSubject> subs = new ArrayList<>();
                 List<TSubject> subsTemp = new ArrayList<>();
                 // 图片及语音集合
-                int temp=0;
-                for (String id : studyListen.getSubject().split( ",")) {
+                int temp = 0;
+                for (String id : studyListen.getSubject().split(",")) {
                     TSubject data = subjectService.lambdaQuery().eq(TSubject::getId, id)
                             .eq(TSubject::getDisabled, 0).one();
-                    if(studyListen.getType()!=null && studyListen.getType()==2 && temp<2){
+                    if (studyListen.getType() != null && studyListen.getType() == 2 && temp < 2) {
                         data.setStudyType(2);
                     }
                     temp++;
                     subs.add(data);
                 }
-                if(studyListen.getSubject().equals("10325,10327,10326,10328")){
-                    System.out.println("数据3332"+subs);
-                }
+                System.out.println(studyListen.getId() + "数据3332" + subs);
 
                 List<TSubjectRecordDetail> tSubjectRecordDetail1 = list.stream()
                         .filter(e -> e.getObjectId().equals(studyListen.getId())).collect(Collectors.toList());
 
-                if (tSubjectRecordDetail1.isEmpty()){
+                if (tSubjectRecordDetail1.isEmpty()) {
                     for (int i = 0; i < 4; i++) {
                         TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
                         tSubjectRecordDetail.setUserId(userid);
@@ -553,15 +547,15 @@
                         tSubject.setTSubjectRecordDetail(tSubjectRecordDetail);
                         subsTemp.add(tSubject);
                     }
-                }else{
+                } else {
                     for (int i = 0; i < 4; i++) {
-                        TSubjectRecordDetail tSubjectRecordDetail = tSubjectRecordDetail1.get( i);
+                        TSubjectRecordDetail tSubjectRecordDetail = tSubjectRecordDetail1.get(i);
                         Integer subjectId = tSubjectRecordDetail.getSubjectId();
                         TSubject tSubject = subs.stream().filter(e -> e.getId().equals(subjectId)).findFirst().orElse(null);
-                        if(tSubject!=null){
+                        if (tSubject != null) {
                             tSubject.setTSubjectRecordDetail(tSubjectRecordDetail);
                             subsTemp.add(tSubject);
-                        }else {
+                        } else {
                             TSubject tSubject1 = subs.get(i);
                             tSubjectRecordDetail.setSubjectId(tSubject1.getId());
 
@@ -572,9 +566,7 @@
                         tSubjectRecordDetails.add(tSubjectRecordDetail);
                     }
                 }
-                if(studyListen.getSubject().equals("10325,10327,10326,10328")){
-                    System.out.println("数据55552"+subsTemp);
-                }
+                System.out.println(studyListen.getStudyId() + "数据55552" + subsTemp);
 
                 // 单独处理排序问题
                 String subject = studyListen.getSubject();
@@ -584,9 +576,7 @@
                     TSubject tSubject = subsTemp.stream().filter(e -> e.getId().equals(s)).findFirst().orElse(null);
                     subsTempNext.add(tSubject);
                 }
-                if(studyListen.getSubject().equals("10325,10327,10326,10328")){
-                    System.out.println("数据4442"+subsTempNext);
-                }
+                System.out.println(studyListen.getId() + "数据4442" + subsTempNext);
 
                 subjectList.add(subsTemp);
             }
@@ -598,7 +588,7 @@
             studyListenResultVO.setAccuracy(accuracy);
         }
         studyListenResultVO.setSubjectList(subjectList);
-        System.out.println("数据!!!"+subjectList);
+        System.out.println("数据!!!" + subjectList);
         return studyListenResultVO;
     }
 
@@ -628,36 +618,36 @@
         List<TSubjectRecordDetail> listenList = subjectRecordDetails.stream().filter(e -> e.getType() == 1).collect(Collectors.toList());
         int listenPass = (int) listenList.stream().filter(e -> e.getStatus() == 2).count();
         int listenSize = listenList.size();
-        if (listenSize!=0){
+        if (listenSize != 0) {
             // 先计算上一天的通关率 设置为两位小数
-            double listenRate = (double) listenPass /listenSize;
+            double listenRate = (double) listenPass / listenSize;
             BigDecimal divide = new BigDecimal(listenPass).divide(new BigDecimal(listenSize), 2, RoundingMode.HALF_UP);
             TStudyListen one = studyListenService.lambdaQuery().eq(TStudyListen::getWeek, week)
                     .eq(TStudyListen::getDay, 1).last("limit 1").one();
-            if (one!=null){
-                if (listenRate<(Double.parseDouble(one.getRate())/100)){
-                    return R.fail("听音选图未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide.multiply(new BigDecimal(100))+"%");
+            if (one != null) {
+                if (listenRate < (Double.parseDouble(one.getRate()) / 100)) {
+                    return R.fail("听音选图未达到通关率" + one.getRate() + "%," + "当前通关率:" + divide.multiply(new BigDecimal(100)) + "%");
                 }
             }
         }
         List<TSubjectRecordDetail> lookList1 = subjectRecordDetails.stream().filter(e -> e.getType() == 2).collect(Collectors.toList());
         int lookPass = (int) lookList1.stream().filter(e -> e.getStatus() == 2).count();
         int lookSize = lookList1.size();
-        if (lookSize!=0){
+        if (lookSize != 0) {
             // 计算当前通关率
-            double listenRate = (double) lookPass /lookSize;
+            double listenRate = (double) lookPass / lookSize;
             TStudyLook one = studyLookService.lambdaQuery().eq(TStudyLook::getWeek, week)
                     .eq(TStudyLook::getDay, 2).last("limit 1").one();
-            if (one!=null){
+            if (one != null) {
                 // 通关率未达标
-                if (listenRate<(Double.parseDouble(one.getRate())/100)){
+                if (listenRate < (Double.parseDouble(one.getRate()) / 100)) {
                     // 清空答题记录
                     subjectRecordDetailService.remove(new LambdaQueryWrapper<TSubjectRecordDetail>()
                             .eq(TSubjectRecordDetail::getUserId, userid)
                             .eq(TSubjectRecordDetail::getWeek, week)
-                            .eq(TSubjectRecordDetail::getDay,day)
+                            .eq(TSubjectRecordDetail::getDay, day)
                             .eq(TSubjectRecordDetail::getType
-                                    ,2));
+                                    , 2));
                 }
             }
         }
@@ -716,7 +706,7 @@
                 subjects.sort(Comparator.comparingInt(TSubject::getSort));
                 subjectList.add(subjects);
                 List<TSubjectRecordDetail> tSubjectRecordDetail1 = list.stream().filter(e -> e.getObjectId().equals(studyLook.getId())).collect(Collectors.toList());
-                if (tSubjectRecordDetail1.isEmpty()){
+                if (tSubjectRecordDetail1.isEmpty()) {
                     TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
                     tSubjectRecordDetail.setUserId(userid);
                     tSubjectRecordDetail.setWeek(week);
@@ -726,7 +716,7 @@
                     tSubjectRecordDetail.setObjectId(studyLook.getId());
                     tSubjectRecordDetails.add(tSubjectRecordDetail);
                     subjectRecordDetailService.save(tSubjectRecordDetail);
-                }else{
+                } else {
                     tSubjectRecordDetails.addAll(tSubjectRecordDetail1);
                 }
 
@@ -772,36 +762,36 @@
         List<TSubjectRecordDetail> listenList = subjectRecordDetails.stream().filter(e -> e.getType() == 2).collect(Collectors.toList());
         int listenPass = (int) listenList.stream().filter(e -> e.getStatus() == 2).count();
         int listenSize = listenList.size();
-        if (listenSize!=0){
+        if (listenSize != 0) {
             // 先计算上一天的通关率 设置为两位小数
-            double listenRate = (double) listenPass /listenSize;
+            double listenRate = (double) listenPass / listenSize;
             BigDecimal divide = new BigDecimal(listenPass).divide(new BigDecimal(listenSize), 2, RoundingMode.HALF_UP);
             TStudyLook one = studyLookService.lambdaQuery().eq(TStudyLook::getWeek, week)
                     .eq(TStudyLook::getDay, 2).last("limit 1").one();
-            if (one!=null){
-                if (listenRate<(Double.parseDouble(one.getRate())/100)){
-                    return R.fail("看图选音未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide.multiply(new BigDecimal(100))+"%");
+            if (one != null) {
+                if (listenRate < (Double.parseDouble(one.getRate()) / 100)) {
+                    return R.fail("看图选音未达到通关率" + one.getRate() + "%," + "当前通关率:" + divide.multiply(new BigDecimal(100)) + "%");
                 }
             }
         }
         List<TSubjectRecordDetail> lookList1 = subjectRecordDetails.stream().filter(e -> e.getType() == 3).collect(Collectors.toList());
         int lookPass = (int) lookList1.stream().filter(e -> e.getStatus() == 2).count();
         int lookSize = lookList1.size();
-        if (lookSize!=0){
+        if (lookSize != 0) {
             // 计算当前通关率
-            double listenRate = (double) lookPass /lookSize;
+            double listenRate = (double) lookPass / lookSize;
             TStudyInduction one = studyInductionService.lambdaQuery().eq(TStudyInduction::getWeek, week)
                     .eq(TStudyInduction::getDay, 3).last("limit 1").one();
-            if (one!=null){
+            if (one != null) {
                 // 通关率未达标
-                if (listenRate<(Double.parseDouble(one.getRate())/100)){
+                if (listenRate < (Double.parseDouble(one.getRate()) / 100)) {
                     // 清空答题记录
                     subjectRecordDetailService.remove(new LambdaQueryWrapper<TSubjectRecordDetail>()
                             .eq(TSubjectRecordDetail::getUserId, userid)
                             .eq(TSubjectRecordDetail::getWeek, week)
-                            .eq(TSubjectRecordDetail::getDay,day)
+                            .eq(TSubjectRecordDetail::getDay, day)
                             .eq(TSubjectRecordDetail::getType
-                                    ,3));
+                                    , 3));
                 }
             }
         }
@@ -895,7 +885,7 @@
                 subjectList.add(subjectLists);
 
                 TSubjectRecordDetail tSubjectRecordDetail1 = list.stream().filter(e -> e.getObjectId().equals(data.getId())).findFirst().orElse(null);
-                if (tSubjectRecordDetail1==null){
+                if (tSubjectRecordDetail1 == null) {
                     TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
                     tSubjectRecordDetail.setUserId(userid);
                     tSubjectRecordDetail.setWeek(week);
@@ -906,7 +896,7 @@
                     subjectRecordDetailService.save(tSubjectRecordDetail);
 
                     tSubjectRecordDetails.add(tSubjectRecordDetail);
-                }else{
+                } else {
                     tSubjectRecordDetails.add(tSubjectRecordDetail1);
                 }
             }
@@ -915,7 +905,7 @@
                     .divide(new BigDecimal(tSubjectRecordDetails.size()), 2, RoundingMode.HALF_UP));
         }
         studyListenResultVO.setSubjectList(subjectList);
-        System.err.println("归纳排除题目"+subjectList);
+        System.err.println("归纳排除题目" + subjectList);
         return R.ok(studyListenResultVO);
     }
 
@@ -924,10 +914,10 @@
         if (answerList.isEmpty()) {
             throw new GlobalException("当前学习周目题目数量不足!");
         }
-        if (answerList.size()<4){
+        if (answerList.size() < 4) {
             throw new GlobalException("当前学习周目题目数量不足!");
         }
-        if (answerList.size()%4!=0){
+        if (answerList.size() % 4 != 0) {
             throw new GlobalException("当前学习周目题目数量不足");
         }
         // 题组信息
@@ -956,36 +946,36 @@
         List<TSubjectRecordDetail> listenList = subjectRecordDetails.stream().filter(e -> e.getType() == 3).collect(Collectors.toList());
         int listenPass = (int) listenList.stream().filter(e -> e.getStatus() == 2).count();
         int listenSize = listenList.size();
-        if (listenSize!=0){
+        if (listenSize != 0) {
             // 先计算上一天的通关率 设置为两位小数
-            double listenRate = (double) listenPass /listenSize;
+            double listenRate = (double) listenPass / listenSize;
             BigDecimal divide = new BigDecimal(listenPass).divide(new BigDecimal(listenSize), 2, RoundingMode.HALF_UP);
             TStudyInduction one = studyInductionService.lambdaQuery().eq(TStudyInduction::getWeek, week)
                     .eq(TStudyInduction::getDay, 3).last("limit 1").one();
-            if (one!=null){
-                if (listenRate<(Double.parseDouble(one.getRate())/100)){
-                    return R.fail("归纳排除未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide.multiply(new BigDecimal(100))+"%");
+            if (one != null) {
+                if (listenRate < (Double.parseDouble(one.getRate()) / 100)) {
+                    return R.fail("归纳排除未达到通关率" + one.getRate() + "%," + "当前通关率:" + divide.multiply(new BigDecimal(100)) + "%");
                 }
             }
         }
         List<TSubjectRecordDetail> lookList1 = subjectRecordDetails.stream().filter(e -> e.getType() == 4).collect(Collectors.toList());
         int lookPass = (int) lookList1.stream().filter(e -> e.getStatus() == 2).count();
         int lookSize = lookList1.size();
-        if (lookSize!=0){
+        if (lookSize != 0) {
             // 计算当前通关率
-            double listenRate = (double) lookPass /lookSize;
+            double listenRate = (double) lookPass / lookSize;
             TStudyAnswer one = studyAnswerService.lambdaQuery().eq(TStudyAnswer::getWeek, week)
                     .eq(TStudyAnswer::getDay, 4).last("limit 1").one();
-            if (one!=null){
+            if (one != null) {
                 // 通关率未达标
-                if (listenRate<(Double.parseDouble(one.getRate())/100)){
+                if (listenRate < (Double.parseDouble(one.getRate()) / 100)) {
                     // 清空答题记录
                     subjectRecordDetailService.remove(new LambdaQueryWrapper<TSubjectRecordDetail>()
                             .eq(TSubjectRecordDetail::getUserId, userid)
                             .eq(TSubjectRecordDetail::getWeek, week)
-                            .eq(TSubjectRecordDetail::getDay,day)
+                            .eq(TSubjectRecordDetail::getDay, day)
                             .eq(TSubjectRecordDetail::getType
-                                    ,4));
+                                    , 4));
                 }
             }
         }
@@ -1117,36 +1107,36 @@
         List<TSubjectRecordDetail> listenList = subjectRecordDetails.stream().filter(e -> e.getType() == 4).collect(Collectors.toList());
         int listenPass = (int) listenList.stream().filter(e -> e.getStatus() == 2).count();
         int listenSize = listenList.size();
-        if (listenSize!=0){
+        if (listenSize != 0) {
             // 先计算上一天的通关率 设置为两位小数
-            double listenRate = (double) listenPass /listenSize;
+            double listenRate = (double) listenPass / listenSize;
             BigDecimal divide = new BigDecimal(listenPass).divide(new BigDecimal(listenSize), 2, RoundingMode.HALF_UP);
             TStudyAnswer one = studyAnswerService.lambdaQuery().eq(TStudyAnswer::getWeek, week)
                     .eq(TStudyAnswer::getDay, 4).last("limit 1").one();
-            if (one!=null){
-                if (listenRate<(Double.parseDouble(one.getRate())/100)){
-                    return R.fail("归纳排除未达到通关率"+one.getRate()+"%,"+"当前通关率:"+divide.multiply(new BigDecimal(100))+"%");
+            if (one != null) {
+                if (listenRate < (Double.parseDouble(one.getRate()) / 100)) {
+                    return R.fail("归纳排除未达到通关率" + one.getRate() + "%," + "当前通关率:" + divide.multiply(new BigDecimal(100)) + "%");
                 }
             }
         }
         List<TSubjectRecordDetail> lookList1 = subjectRecordDetails.stream().filter(e -> e.getType() == 5).collect(Collectors.toList());
         int lookPass = (int) lookList1.stream().filter(e -> e.getStatus() == 2).count();
         int lookSize = lookList1.size();
-        if (lookSize!=0){
+        if (lookSize != 0) {
             // 计算当前通关率
-            double listenRate = (double) lookPass /lookSize;
+            double listenRate = (double) lookPass / lookSize;
             TStudyPair one = studyPairService.lambdaQuery().eq(TStudyPair::getWeek, week)
                     .eq(TStudyPair::getDay, 5).last("limit 1").one();
-            if (one!=null){
+            if (one != null) {
                 // 通关率未达标
-                if (listenRate<(Double.parseDouble(one.getRate())/100)){
+                if (listenRate < (Double.parseDouble(one.getRate()) / 100)) {
                     // 清空答题记录
                     subjectRecordDetailService.remove(new LambdaQueryWrapper<TSubjectRecordDetail>()
                             .eq(TSubjectRecordDetail::getUserId, userid)
                             .eq(TSubjectRecordDetail::getWeek, week)
-                            .eq(TSubjectRecordDetail::getDay,day)
+                            .eq(TSubjectRecordDetail::getDay, day)
                             .eq(TSubjectRecordDetail::getType
-                                    ,5));
+                                    , 5));
                 }
             }
         }
@@ -1164,7 +1154,7 @@
 
                 List<String> subjectIds = Arrays.stream(data.getSubject().split(",")).collect(Collectors.toList());
                 List<TSubject> subjectLists = new ArrayList<>();
-                for (String id : data.getSubject().split( ",")) {
+                for (String id : data.getSubject().split(",")) {
                     if (id.startsWith("-")) {
                         id = id.replace("-", "");
                     }
@@ -1194,7 +1184,7 @@
                 subjectList.add(subjectLists);
                 List<TSubjectRecordDetail> tSubjectRecordDetail1 = list.stream().filter(e -> e.getObjectId().equals(data.getId())).collect(Collectors.toList());
 
-                if (tSubjectRecordDetail1.isEmpty()){
+                if (tSubjectRecordDetail1.isEmpty()) {
                     TSubjectRecordDetail tSubjectRecordDetail = new TSubjectRecordDetail();
                     tSubjectRecordDetail.setUserId(userid);
                     tSubjectRecordDetail.setWeek(week);
@@ -1204,7 +1194,7 @@
                     tSubjectRecordDetail.setObjectId(data.getId());
                     subjectRecordDetailService.save(tSubjectRecordDetail);
                     tSubjectRecordDetails.add(tSubjectRecordDetail);
-                }else{
+                } else {
                     tSubjectRecordDetails.addAll(tSubjectRecordDetail1);
                 }
             }
@@ -1213,13 +1203,13 @@
             studyListenResultVO.setAccuracy(new BigDecimal(tSubjectRecordDetails.stream().filter(tSubjectRecordDetail -> tSubjectRecordDetail.getStatus().equals(2)).count())
                     .divide(new BigDecimal(tSubjectRecordDetails.size()), 2, RoundingMode.HALF_UP));
         }
-        System.err.println("音图相配返回VO"+studyListenResultVO.getList());
+        System.err.println("音图相配返回VO" + studyListenResultVO.getList());
         return R.ok(studyListenResultVO);
     }
 
     @Override
     public int computeSchedule(TUserStudy result, Integer week) {
-        System.err.println("用户学习进度"+result);
+        System.err.println("用户学习进度" + result);
         List<TStudy> studyList = this.lambdaQuery().eq(TStudy::getDisabled, 0)
                 .orderByAsc(TStudy::getWeek).list();
         // 基础学习进度
@@ -1250,8 +1240,8 @@
                 thisQuarter = key;
             }
         }
-        System.err.println("当前进入周目所属季度"+studyQuarter);
-        System.err.println("进入周目所属季度"+thisQuarter);
+        System.err.println("当前进入周目所属季度" + studyQuarter);
+        System.err.println("进入周目所属季度" + thisQuarter);
         // 默认进度为 0
         int defaultSchedule;
         // 季度判断
@@ -1269,7 +1259,7 @@
             } else if (studyIndex < weekIndex) {
                 defaultSchedule = 0;
             } else {
-                System.err.println("学习到Day"+day);
+                System.err.println("学习到Day" + day);
                 // 根据day初始化学习进度
                 if (Constants.ONE.equals(day)) {
                     defaultSchedule = 0;

--
Gitblit v1.7.1