earthworm
earthworm copied to clipboard
[功能] - 将课程进度存储至 DB 中(数据库)
Description
很多用户有跨设备的需求
因为每一节课的内容太多了 他们都是分开完成的
比如在公司刷了 100 道题, 还剩下 50 道 想着回家刷 结果这个进度不同步
然后又需要重新刷前 100 道题 就感觉非常的烦 不想继续了
针对于这个场景有两个解决方案
- 课程进度保存在 db 中
- 前端支持可以选择进度
而这个 issue 先重点实现方案1
#180 是否和这个删除的逻辑类似
问题:
- 图中说的“计算的逻辑放到后端是更优的选择”, 这个课程完成次数CompletionCount和当前课题进度progress是两个不同的概念,那么现在最新版代码中,存储的逻辑是完成课程时自动完成次数+1,progress进度存储时机是需要页面轮询存储还是用户手动点击上报当前进度。
- 放到db中存储,是否可以取消当前localstorage存储的进度。
实现思路:
- course-history 中新增 progress字段。
- 修改create逻辑, 区分是由 progress 创建还是由 CompletionCount 创建。 progress创建时需要将完成次数设置为0。
- 新增初始化进度方法。
- 完成页面逻辑修改。
还是有一个保存时机的问题,目前是每次切换题目都会掉接口存储。 增加服务器压力, 是不是可以有更好的缓存方案。
关于课程题目列表切换,也就是第二个解决方案已经实现,参见:#404
所以此 issue 后续主要是讨论如何将课程进度存储到 DB 中,设计 + 寻找更有的解决方案~
done 新的方案是一个课程包只存一个课程的进度