188 lines
3.9 KiB
Markdown
188 lines
3.9 KiB
Markdown
|
|
# 试卷答案问题修复说明
|
|||
|
|
|
|||
|
|
## 已修复的问题
|
|||
|
|
|
|||
|
|
### 1. 答案判断逻辑错误
|
|||
|
|
|
|||
|
|
#### 问题描述
|
|||
|
|
- 所有题目都显示做错(红色标记)
|
|||
|
|
- 实际有些题目做对了但系统判断为错误
|
|||
|
|
|
|||
|
|
#### 原因分析
|
|||
|
|
单选题答案判断时,没有处理"A. 选项内容"这种格式:
|
|||
|
|
- 学生答案:`"A. 选项内容"`
|
|||
|
|
- 正确答案:`"A"`
|
|||
|
|
- 导致匹配失败
|
|||
|
|
|
|||
|
|
#### 修复方案
|
|||
|
|
修改 `StudyScoreController.java` 的 `normalizeSingleAnswer` 方法:
|
|||
|
|
- 自动去除"A. "、"B. "等前缀
|
|||
|
|
- 只比较选项字母(A、B、C等)
|
|||
|
|
- 支持格式:
|
|||
|
|
- "A. 选项内容" → "A"
|
|||
|
|
- "A.选项内容" → "A"
|
|||
|
|
- "A" → "A"
|
|||
|
|
|
|||
|
|
#### 修复文件
|
|||
|
|
`Study-Vue-redis/ry-study-admin/src/main/java/com/ddnai/web/controller/study/StudyScoreController.java`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2. 不显示正确答案
|
|||
|
|
|
|||
|
|
#### 问题描述
|
|||
|
|
- 做完试卷后只显示学生的答案
|
|||
|
|
- 正确答案不显示
|
|||
|
|
|
|||
|
|
#### 原因分析
|
|||
|
|
前端只在答错时显示正确答案:
|
|||
|
|
```vue
|
|||
|
|
<view v-if="detail.isCorrect === '0'">
|
|||
|
|
正确答案:{{ detail.correctAnswer }}
|
|||
|
|
</view>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 修复方案
|
|||
|
|
修改前端代码,始终显示正确答案(无论答对答错)
|
|||
|
|
|
|||
|
|
#### 修复文件
|
|||
|
|
`fronted_uniapp/pages/score/detail.vue`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 浏览器端成绩不显示问题
|
|||
|
|
|
|||
|
|
### 问题描述
|
|||
|
|
- 做完试卷后,在后台管理系统中看不到成绩
|
|||
|
|
- 刚做完的试卷找不到
|
|||
|
|
|
|||
|
|
### 可能原因
|
|||
|
|
|
|||
|
|
#### 原因1:页面没有刷新
|
|||
|
|
**解决方案**:
|
|||
|
|
1. 在后台管理系统点击"成绩管理"菜单
|
|||
|
|
2. 点击"查询"按钮刷新列表
|
|||
|
|
3. 或按F5刷新整个页面
|
|||
|
|
|
|||
|
|
#### 原因2:权限问题
|
|||
|
|
**检查方法**:
|
|||
|
|
1. 打开浏览器控制台(F12)
|
|||
|
|
2. 查看Network标签
|
|||
|
|
3. 看是否有401或403错误
|
|||
|
|
|
|||
|
|
#### 原因3:查询条件过滤
|
|||
|
|
**检查方法**:
|
|||
|
|
1. 检查页面上的筛选条件
|
|||
|
|
2. 清空所有筛选条件
|
|||
|
|
3. 重新查询
|
|||
|
|
|
|||
|
|
#### 原因4:数据实际没有保存
|
|||
|
|
**检查方法**:
|
|||
|
|
执行SQL查询:
|
|||
|
|
```sql
|
|||
|
|
-- 查看最新的成绩记录
|
|||
|
|
SELECT
|
|||
|
|
id,
|
|||
|
|
student_id,
|
|||
|
|
exam_id,
|
|||
|
|
obtained_score,
|
|||
|
|
total_score,
|
|||
|
|
submit_time
|
|||
|
|
FROM study_score
|
|||
|
|
ORDER BY submit_time DESC
|
|||
|
|
LIMIT 10;
|
|||
|
|
|
|||
|
|
-- 查看学生答案详情
|
|||
|
|
SELECT
|
|||
|
|
id,
|
|||
|
|
student_id,
|
|||
|
|
exam_id,
|
|||
|
|
question_id,
|
|||
|
|
student_answer,
|
|||
|
|
is_correct,
|
|||
|
|
score
|
|||
|
|
FROM study_student_answer
|
|||
|
|
WHERE student_id = {你的学生ID}
|
|||
|
|
ORDER BY create_time DESC
|
|||
|
|
LIMIT 20;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 重新编译和测试
|
|||
|
|
|
|||
|
|
### 步骤1:重新编译后端
|
|||
|
|
```bash
|
|||
|
|
cd C:\Users\Administrator\Desktop\Project\ry_study-v_03\Study-Vue-redis
|
|||
|
|
mvn clean package -DskipTests
|
|||
|
|
# 重启后端服务
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤2:重新编译前端App
|
|||
|
|
```bash
|
|||
|
|
cd C:\Users\Administrator\Desktop\Project\ry_study-v_03\fronted_uniapp
|
|||
|
|
# 停止当前服务(Ctrl+C)
|
|||
|
|
npm run dev:app
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤3:清除缓存
|
|||
|
|
- 完全关闭App
|
|||
|
|
- 卸载后重新安装
|
|||
|
|
- 或清除数据
|
|||
|
|
|
|||
|
|
### 步骤4:测试
|
|||
|
|
1. 登录App
|
|||
|
|
2. 做一份试卷
|
|||
|
|
3. 提交试卷
|
|||
|
|
4. 查看成绩详情
|
|||
|
|
5. 检查:
|
|||
|
|
- ✅ 答对的题目显示绿色
|
|||
|
|
- ✅ 答错的题目显示红色
|
|||
|
|
- ✅ 所有题目都显示正确答案
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 验证答案判断是否正确
|
|||
|
|
|
|||
|
|
### 测试用例
|
|||
|
|
|
|||
|
|
#### 单选题
|
|||
|
|
- 正确答案:`A`
|
|||
|
|
- 学生答案可能的格式:
|
|||
|
|
- `"A"` → 应该判断为正确 ✅
|
|||
|
|
- `"A. 选项内容"` → 应该判断为正确 ✅
|
|||
|
|
- `"B"` → 应该判断为错误 ❌
|
|||
|
|
|
|||
|
|
#### 判断题
|
|||
|
|
- 正确答案:`正确`
|
|||
|
|
- 学生答案:
|
|||
|
|
- `"正确"` → 应该判断为正确 ✅
|
|||
|
|
- `"错误"` → 应该判断为错误 ❌
|
|||
|
|
|
|||
|
|
#### 多选题
|
|||
|
|
- 正确答案:`A,B,C`
|
|||
|
|
- 学生答案:
|
|||
|
|
- `"A,B,C"` → 应该判断为正确 ✅
|
|||
|
|
- `"A,B"` → 应该判断为错误 ❌
|
|||
|
|
- `"B,A,C"` → 应该判断为正确 ✅(顺序不影响)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 如果还有问题
|
|||
|
|
|
|||
|
|
### 1. 检查后端日志
|
|||
|
|
查看后端控制台,看是否有错误信息
|
|||
|
|
|
|||
|
|
### 2. 检查前端日志
|
|||
|
|
打开App的调试控制台,查看是否有错误
|
|||
|
|
|
|||
|
|
### 3. 执行SQL检查数据
|
|||
|
|
使用上面的SQL脚本检查数据是否正确保存
|
|||
|
|
|
|||
|
|
### 4. 提供以下信息
|
|||
|
|
- 答题时选择的答案
|
|||
|
|
- 题目的正确答案
|
|||
|
|
- 判断结果(对/错)
|
|||
|
|
- 后端日志
|
|||
|
|
- 前端日志
|