实现幂等答案自动保存与断网恢复 #7

Closed
opened 2026-07-27 07:48:11 +00:00 by wangziqi · 1 comment
Owner

Parent

#1

What to build

学生选择答案后,系统会自动且安全地保存答案。网络超时、重复点击、乱序请求或页面刷新不会丢失或覆盖更新的答案。

Acceptance criteria

  • 每次答案命令包含幂等键、客户端命令序号和服务端会话版本。
  • 相同幂等键和相同请求返回首次结果。
  • 相同幂等键但不同请求返回业务冲突。
  • 较旧序号或版本不能覆盖更新答案。
  • 只允许修改当前用户、当前租户且进行中的会话。
  • 已提交、已过期、已取消或他人会话拒绝写入。
  • 超时后的安全重试不会产生重复记录。
  • 刷新页面能够恢复服务端最后确认的答案。
  • 学生端显示保存中、已保存、重试中和保存失败状态。
  • 集成测试覆盖乱序、双击、超时重试和跨用户攻击。

Blocked by

  • #6 — 创建并恢复稳定的练习会话
## Parent https://git.gongxue100.com/wangziqi/ruoyi-vue-pro/issues/1 ## What to build 学生选择答案后,系统会自动且安全地保存答案。网络超时、重复点击、乱序请求或页面刷新不会丢失或覆盖更新的答案。 ## Acceptance criteria - [ ] 每次答案命令包含幂等键、客户端命令序号和服务端会话版本。 - [ ] 相同幂等键和相同请求返回首次结果。 - [ ] 相同幂等键但不同请求返回业务冲突。 - [ ] 较旧序号或版本不能覆盖更新答案。 - [ ] 只允许修改当前用户、当前租户且进行中的会话。 - [ ] 已提交、已过期、已取消或他人会话拒绝写入。 - [ ] 超时后的安全重试不会产生重复记录。 - [ ] 刷新页面能够恢复服务端最后确认的答案。 - [ ] 学生端显示保存中、已保存、重试中和保存失败状态。 - [ ] 集成测试覆盖乱序、双击、超时重试和跨用户攻击。 ## Blocked by - #6 — 创建并恢复稳定的练习会话
wangziqi added the
ready-for-agent
label 2026-07-27 07:48:11 +00:00
Author
Owner

Issue #7:幂等答案自动保存与恢复

已完成

  • 每次命令包含 idempotency key、client sequence 和 expected session version。
  • 相同 key + 相同 payload 重放首次结果;payload 不同返回冲突。
  • 旧 session version / client sequence 被拒绝。
  • 已提交、过期、取消或他人 session 禁止写入。
  • session CAS 和题目答案更新均带 tenant / session 纵深边界。
  • 覆盖双击、乱序、超时重试、刷新恢复和跨用户攻击测试。

验证

Education 模块测试通过。

代码:ce02f8a

## Issue #7:幂等答案自动保存与恢复 ### 已完成 - 每次命令包含 idempotency key、client sequence 和 expected session version。 - 相同 key + 相同 payload 重放首次结果;payload 不同返回冲突。 - 旧 session version / client sequence 被拒绝。 - 已提交、过期、取消或他人 session 禁止写入。 - session CAS 和题目答案更新均带 tenant / session 纵深边界。 - 覆盖双击、乱序、超时重试、刷新恢复和跨用户攻击测试。 ### 验证 Education 模块测试通过。 代码:`ce02f8a`。
Sign in to join this conversation.
No description provided.