• Joined on 2026-05-02
wangdl opened issue wangdl/api-server#349 2026-06-24 20:48:27 +08:00
[M-MEMBER-01] 将 AI、Chat、OCR、Vision、存储和知识库接入统一额度
wangdl opened issue wangdl/api-server#348 2026-06-24 20:48:22 +08:00
[M-MEMBER-01] 实现 EffectiveQuota、额度预占返还与 Legacy/Shadow/Enforced
wangdl opened issue wangdl/api-server#347 2026-06-24 20:48:16 +08:00
[M-MEMBER-01] 实现 App Store Server Notifications V2 Durable Inbox 与生命周期投影
wangdl opened issue wangdl/api-server#346 2026-06-24 20:48:10 +08:00
[M-MEMBER-01] 实现 App Store JWS 交易验证与幂等会员发放
wangdl opened issue wangdl/api-server#345 2026-06-24 20:48:05 +08:00
[M-MEMBER-01] 实现 EffectiveMembership 与普通用户会员只读 API
wangdl opened issue wangdl/api-server#344 2026-06-24 20:48:00 +08:00
[M-MEMBER-01] 新增不可变 App Store 交易、通知 Inbox 与 Payload 审计模型
wangdl opened issue wangdl/api-server#343 2026-06-24 20:47:55 +08:00
[M-MEMBER-01] Expand 账号令牌、商品映射、会员 Grant 与 PlanQuota Schema
wangdl opened issue wangdl/api-server#342 2026-06-24 20:47:49 +08:00
[M-MEMBER-01] 冻结 App Store 商品、Premium 权益数值与额度窗口
wangdl pushed to main at wangdl/ios-projects 2026-06-24 20:11:38 +08:00
993a68759f chore: ignore Xcode user state files
wangdl pushed to main at wangdl/ios-projects 2026-06-24 20:11:29 +08:00
f445906fa7 feat(quiz): integrate QuizQuestionType enum into iOS quiz views
wangdl pushed to main at wangdl/api-server 2026-06-24 20:02:18 +08:00
5570c30e0e fix(quiz): skip legacy questions with missing type instead of throwing
wangdl pushed to main at wangdl/api-server 2026-06-24 19:59:43 +08:00
f1eb99b6fa fix(quiz): complete cross-platform attempt and question type contract
wangdl commented on issue wangdl/api-server#341 2026-06-23 22:04:42 +08:00
[M-QUIZ-01-GATE] Quiz 跨端答题闭环最终验收

GATE E2E 测试文件已创建

文件

test/m-quiz-01-gate.e2e-spec.ts — 17 场景 / 18 tests

场景覆盖

wangdl commented on issue wangdl/api-server#340 2026-06-23 21:58:27 +08:00
[M-QUIZ-01] 接入 Quiz 题型维度学习分析

开发完成评论

完成内容

aggregateByQuestionType 新增

  • QuizAnswer(已完成 Attempt)+ QuizQuestion.type 聚合题型维度正确率
  • 数据源:服务端写入…
wangdl commented on issue wangdl/api-server#339 2026-06-23 21:54:10 +08:00
[M-QUIZ-01] 冻结 choice、fill、judge 跨端契约并完善 fill 题型

开发完成评论

完成内容

1. 创建共享契约模块 quiz-type.contract.ts

  • TypeScript QuestionType union 类型(`"choice"
wangdl commented on issue wangdl/api-server#338 2026-06-23 21:41:40 +08:00
[M-QUIZ-01] iOS 题目加载与 Attempt 生命周期对接

N1 修复:choice 题型答案显示索引 → 选项文本

问题

choice 题型的 userAnsweranswer 存储的是索引字符串(如 "0"),结果页直接显示索引数字…

wangdl commented on issue wangdl/api-server#338 2026-06-23 21:38:06 +08:00
[M-QUIZ-01] iOS 题目加载与 Attempt 生命周期对接

开发完成评论

完成内容

QuizService — 新 Attempt API

  • createAttempt(quizId:)POST /quizzes/:id/attempts
  • getAttemptQuestions(attemptId:) → `GET /quizzes/attem…
wangdl commented on issue wangdl/api-server#337 2026-06-23 21:34:14 +08:00
[M-QUIZ-01] 提交原子性与幂等控制

N1 修复:updateMany 写锁替代 findUnique 快照读

问题

MySQL REPEATABLE READ 下,findUnique 读取的是事务开始时的快照。两个并发事务可能同时读到…

wangdl commented on issue wangdl/api-server#337 2026-06-23 21:28:18 +08:00
[M-QUIZ-01] 提交原子性与幂等控制

开发完成评论

完成内容

原子提交($transaction)

  • submit() 整体包裹在 prisma.$transaction
  • CAS:事务内重新读取 Attempt,finishedAt 作为乐观…
wangdl commented on issue wangdl/api-server#336 2026-06-23 21:19:28 +08:00
[M-QUIZ-01] Attempt 生命周期与答案可见性控制

N2/N3 修复:统一跨用户信息泄漏模式

修改

  • N2 getAttemptQuestionsuserId 进入 Prisma 查询条件,删除独立 ForbiddenException,跨用户统一 404 -…