56 lines
1.4 KiB
Markdown
56 lines
1.4 KiB
Markdown
|
|
# 课程完成标准调整说明
|
|||
|
|
|
|||
|
|
## 问题
|
|||
|
|
课程只看了几分钟还没看完,就在课程记录中更新了进度。
|
|||
|
|
|
|||
|
|
## 原因
|
|||
|
|
之前的完成标准过于宽松:
|
|||
|
|
- 短视频(≤10秒):看80%就算完成
|
|||
|
|
- 普通视频:看90%就算完成
|
|||
|
|
|
|||
|
|
导致用户只看了大部分就被标记为"已完成"。
|
|||
|
|
|
|||
|
|
## 解决方案
|
|||
|
|
|
|||
|
|
### 方案1:95%完成标准(已实施)
|
|||
|
|
```java
|
|||
|
|
// 短视频和普通视频都要求95%
|
|||
|
|
completionThreshold = 0.95;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**效果:**
|
|||
|
|
- 10分钟视频需要看到9.5分钟才算完成
|
|||
|
|
- 用户必须几乎看完才会更新进度
|
|||
|
|
|
|||
|
|
### 方案2:100%完成标准(更严格,可选)
|
|||
|
|
如果需要更严格,可以修改为:
|
|||
|
|
```java
|
|||
|
|
if (duration <= 10) {
|
|||
|
|
completionThreshold = 1.0; // 100%
|
|||
|
|
} else {
|
|||
|
|
completionThreshold = 1.0; // 100%
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**但不建议100%,因为:**
|
|||
|
|
1. 视频播放器可能有1-2秒的误差
|
|||
|
|
2. 用户可能提前几秒关闭
|
|||
|
|
3. 95%已经能保证用户真正看完了
|
|||
|
|
|
|||
|
|
## 推荐配置
|
|||
|
|
|
|||
|
|
| 课件类型 | 推荐完成标准 | 说明 |
|
|||
|
|
|---------|-------------|------|
|
|||
|
|
| 短视频(≤10秒) | 95% | 确保看完 |
|
|||
|
|
| 普通视频 | 95% | 几乎看到结尾 |
|
|||
|
|
| 长视频(>10分钟) | 95% | 避免误差导致无法完成 |
|
|||
|
|
| 图片/PDF | 查看即完成 | 保持不变 |
|
|||
|
|
|
|||
|
|
## 修改文件
|
|||
|
|
`StudyLearningRecordServiceImpl.java` 第432-437行
|
|||
|
|
|
|||
|
|
## 测试建议
|
|||
|
|
1. 重新编译后端
|
|||
|
|
2. 测试不同长度的视频
|
|||
|
|
3. 查看进度是否在95%时才更新
|