From 91b6802e76773abbba1c41476a3482c4c4f549fe Mon Sep 17 00:00:00 2001
From: zjk <852185829@qq.com>
Date: 星期一, 12 十月 2026 16:20:30 +0800
Subject: [PATCH] fix(ruoyi-study): 修复学习进度推进异常及前端展示错误
---
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java | 66 +++++++++++----------------------
1 files changed, 22 insertions(+), 44 deletions(-)
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java
index de6e73a..b2fc8d4 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java
@@ -104,51 +104,29 @@
} else if (Constants.FIVE.equals(type)) {
userStudyRecord.setPair(Constants.ONE_HUNDRED);
}
- if (userStudyRecord.getListen().equals(Constants.ONE_HUNDRED)){
- userStudyRecord.setDay(2);
-
+ // STEP 1: 当天五项自主学习全部完成(均为100)后,才推进到下一个学习day
+ boolean allLearningFinished = Constants.ONE_HUNDRED.equals(userStudyRecord.getListen())
+ && Constants.ONE_HUNDRED.equals(userStudyRecord.getLook())
+ && Constants.ONE_HUNDRED.equals(userStudyRecord.getInduction())
+ && Constants.ONE_HUNDRED.equals(userStudyRecord.getAnswer())
+ && Constants.ONE_HUNDRED.equals(userStudyRecord.getPair());
+ // 仅自主学习日(day 1~5)允许推进,避免 day=6(游戏日)被 DAY_MAP 回绕成 1
+ if (allLearningFinished && userStudyRecord.getDay() < Constants.SIX) {
+ // 按 DAY_MAP 推进:1→2→3→4→5→6(自主游戏日)
+ Integer nextDay = DAY_MAP.get(String.valueOf(userStudyRecord.getDay()));
+ userStudyRecord.setDay(nextDay);
+ if (Constants.SIX.equals(nextDay)) {
+ // 进入自主游戏日,游戏难度初始化 0(入门难度)
+ userStudyRecord.setGameDifficulty(Constants.ZERO);
+ } else {
+ // 进入新学习日,重置五项自主学习进度为未开始(-1)
+ userStudyRecord.setListen(Constants.BURDEN_ONE);
+ userStudyRecord.setLook(Constants.BURDEN_ONE);
+ userStudyRecord.setInduction(Constants.BURDEN_ONE);
+ userStudyRecord.setAnswer(Constants.BURDEN_ONE);
+ userStudyRecord.setPair(Constants.BURDEN_ONE);
+ }
}
- if (userStudyRecord.getLook().equals(Constants.ONE_HUNDRED)){
- userStudyRecord.setDay(3);
-
- }
- if (userStudyRecord.getInduction().equals(Constants.ONE_HUNDRED)){
- userStudyRecord.setDay(4);
-
- }
- if (userStudyRecord.getAnswer().equals(Constants.ONE_HUNDRED)){
- userStudyRecord.setDay(5);
-
- }
- if (userStudyRecord.getPair().equals(Constants.ONE_HUNDRED)){
- userStudyRecord.setDay(6);
-
- }
- if (userStudyRecord.getDay().equals(Constants.SIX)) {
- // 游戏难度初始化 0(入门难度)
- userStudyRecord.setGameDifficulty(Constants.ZERO);
- }
-// if (userStudyRecord.getLook().equals(Constants.ONE_HUNDRED) &&
-// userStudyRecord.getAnswer().equals(Constants.ONE_HUNDRED) &&
-// userStudyRecord.getPair().equals(Constants.ONE_HUNDRED) &&
-// userStudyRecord.getInduction().equals(Constants.ONE_HUNDRED) &&
-// userStudyRecord.getListen().equals(Constants.ONE_HUNDRED)) {
-// // 学习完成,进入下一学习day
-// Integer nextDay = DAY_MAP.get(String.valueOf(userStudyRecord.getDay()));
-// userStudyRecord.setDay(nextDay);
-// // 下一day为 6,进入游戏日
-// if (nextDay.equals(Constants.SIX)) {
-// // 游戏难度初始化 0(入门难度)
-// userStudyRecord.setGameDifficulty(Constants.ZERO);
-// } else {
-// // 重置学习进度
-// userStudyRecord.setListen(Constants.BURDEN_ONE);
-// userStudyRecord.setLook(Constants.BURDEN_ONE);
-// userStudyRecord.setInduction(Constants.BURDEN_ONE);
-// userStudyRecord.setAnswer(Constants.BURDEN_ONE);
-// userStudyRecord.setPair(Constants.BURDEN_ONE);
-// }
-// }
}
// 更新学习时长
userStudyRecord.setTotalStudy(userStudyRecord.getTotalStudy() + studyTime);
--
Gitblit v1.7.1