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/controller/TStudyController.java | 39 +++++++++++++++++++--------------------
1 files changed, 19 insertions(+), 20 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 e3c7e21..9bd5017 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
@@ -1118,31 +1118,30 @@
studyRecord.setTotalStudy(Math.round((float) (totalStudy + sum) / 3600));
studyRecord = studyService.studySchedule(studyRecord, week);
// 数据库保存的是已完成的学习进度,返回前端时需要转换为剩余学习进度
- Integer look = studyRecord.getLook();
- if (look != 100 && look != -1) {
- studyRecord.setLook(100 - look);
- }
- Integer pair = studyRecord.getPair();
- if (pair != 100 && pair != -1) {
- studyRecord.setPair(100 - pair);
- }
- Integer answer = studyRecord.getAnswer();
- if (answer != 100 && answer != -1) {
- studyRecord.setAnswer(100 - answer);
- }
- Integer induction = studyRecord.getInduction();
- if (induction != 100 && induction != -1) {
- studyRecord.setInduction(100 - induction);
- }
- Integer listen = studyRecord.getListen();
- if (listen != 100 && listen != -1) {
- studyRecord.setListen(100 - listen);
- }
+ // -1 表示未开始(中性值)原样返回;100 表示已完成,转换为 0(剩余0%)
+ studyRecord.setLook(convertToSurplus(studyRecord.getLook()));
+ studyRecord.setPair(convertToSurplus(studyRecord.getPair()));
+ studyRecord.setAnswer(convertToSurplus(studyRecord.getAnswer()));
+ studyRecord.setInduction(convertToSurplus(studyRecord.getInduction()));
+ studyRecord.setListen(convertToSurplus(studyRecord.getListen()));
}
return R.ok(studyRecord);
}
/**
+ * 将数据库中的「已完成学习进度」转换为前端展示的「剩余学习进度」
+ *
+ * @param completedProgress 已完成进度;-1 表示未开始,100 表示已完成
+ * @return 剩余进度;未开始(-1)原样返回
+ */
+ private Integer convertToSurplus(Integer completedProgress) {
+ if (null == completedProgress || Constants.BURDEN_ONE.equals(completedProgress)) {
+ return completedProgress;
+ }
+ return Constants.ONE_HUNDRED - completedProgress;
+ }
+
+ /**
* 查询周目列表
*
* @param type 所属类型
--
Gitblit v1.7.1