From da26806f0fbc78b501d58976092cc681f786c35b Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 22 七月 2024 14:42:05 +0800
Subject: [PATCH] 添加学习配置 优化

---
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java |   50 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 35 insertions(+), 15 deletions(-)

diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java
index f79a4a3..933a84b 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java
@@ -278,6 +278,21 @@
                     .eq("studyId", one.getId())
                     .eq("week", week));
             if (studyId != null) {
+                // 判断当前周目配置的题目数量
+                List<String> subjectId = getSubjectId(week);
+                List<String> newSubjectId = subjectId.stream().map(data -> {
+                    if (data.startsWith(Constants.REDUCE)) {
+                        data = data.replace(Constants.REDUCE, Constants.EMPTY_STR);
+                    }
+                    return data;
+                }).distinct().collect(Collectors.toList());
+                // 判断周目下题目是否足够
+                if (newSubjectId.size() < game.getCount()) {
+                    return R.fail("超级听力:当前周目下day1 - day5题目不足!");
+                }
+                if (newSubjectId.size() < game.getAnswerCount()) {
+                    return R.fail("超级记忆:当前周目下day1 - day5题目不足!");
+                }
                 studyId.setWeek(dto.getWeek());
                 studyId.setStudyId(one.getId());
                 studyId.setCount(game.getCount());
@@ -290,6 +305,21 @@
                 studyId.setAnswerRate(game.getAnswerRate());
                 gameService.updateById(studyId);
             } else {
+                // 判断当前周目配置的题目数量
+                List<String> subjectId = getSubjectId(week);
+                List<String> newSubjectId = subjectId.stream().map(data -> {
+                    if (data.startsWith(Constants.REDUCE)) {
+                        data = data.replace(Constants.REDUCE, Constants.EMPTY_STR);
+                    }
+                    return data;
+                }).distinct().collect(Collectors.toList());
+                // 判断周目下题目是否足够
+                if (newSubjectId.size() < game.getCount()) {
+                    return R.fail("超级听力:当前周目下day1 - day5题目不足!");
+                }
+                if (newSubjectId.size() < game.getAnswerCount()) {
+                    return R.fail("超级记忆:当前周目下day1 - day5题目不足!");
+                }
                 TGame tGame = new TGame();
                 tGame.setWeek(dto.getWeek());
                 tGame.setAnswerRate(game.getAnswerRate());
@@ -1022,9 +1052,7 @@
                             item += studyListen.getSubject().split(",").length;
                         }
                         int i = (int) (((double) schedule / item) * 100);
-                        if (i > userStudy.getListen()) {
-                            userStudy.setListen(i);
-                        }
+                        userStudy.setListen(i);
                     }
                 }
             } else if (Constants.TWO.equals(type)) {
@@ -1037,9 +1065,7 @@
                         if (!lookList.isEmpty()) {
                             int item = lookList.size();
                             int i = (int) (((double) schedule / item) * 100);
-                            if (i > userStudy.getLook()) {
-                                userStudy.setLook(i);
-                            }
+                            userStudy.setLook(i);
                         }
                     }
                 }
@@ -1053,9 +1079,7 @@
                         if (!inductionList.isEmpty()) {
                             int item = inductionList.size();
                             int i = (int) (((double) schedule / item) * 100);
-                            if (i > userStudy.getInduction()) {
-                                userStudy.setInduction(i);
-                            }
+                            userStudy.setInduction(i);
                         }
                     }
                 }
@@ -1068,9 +1092,7 @@
                         List<TStudyAnswer> answerList = studyAnswerService.questionsAndAnswers(quarter, week, day);
                         if (answerList.size() % Constants.TWO == Constants.ZERO) {
                             int i = (int) (((double) schedule / (answerList.size() / 2)) * 100);
-                            if (i > userStudy.getAnswer()) {
-                                userStudy.setAnswer(i);
-                            }
+                            userStudy.setAnswer(i);
                         }
                     }
                 }
@@ -1084,9 +1106,7 @@
                         if (!pairList.isEmpty()) {
                             int item = pairList.size();
                             int i = (int) (((double) schedule / item) * 100);
-                            if (i > userStudy.getPair()) {
-                                userStudy.setPair(i);
-                            }
+                            userStudy.setPair(i);
                         }
                     }
                 }

--
Gitblit v1.7.1