跳转到内容

backend-v0.9.0

← 返回更新日志


后端 · 2026-07-28

施工进度上报层补齐「加入施工」机制、玩家可见上报事件流水、按材料封顶,并修复一批上报健壮性问题。

  • 加入施工机制:玩家可显式加入某项目的施工(Web Me 页 + 游戏内 !!PCH construction join);备货/施工阶段认领与上交时自动加入该项目;同一 Web 账号同时最多活跃加入 1 个项目(admin 开关 enforce_single_construction,DB 部分唯一索引兜底;仅约束默认追踪器与 join 流程,/report API 仍允许多项目并发上报)。新增端点 GET /me/constructionPOST /me/joinPOST /me/switchPOST /me/leavePOST /active-by-uuids(迁移 0020 sheets.constructing_at + 0021 participants)。
  • 上报事件流水:新增 GET /me/report-events——玩家查看本人完整上报事件(accepted + 全部 skip 原因:无活跃源 / 其他源上报 / 不在清单 / 已达上限 / 未归因 等),让「为何我的上报被拒」可见(迁移 0023 report_events)。
  • 按材料封顶:每种材料跨账号合计净放置不得超过需求总量,满额后整条或超额部分 skip 并回执,避免超量计入(迁移 0022 回填历史超额)。
  • 批量提交端点POST /sheets/{id}/submit-batch——第三方集成方传材料清单,后端按行 mode 自动分发 delivery/contribute 并逐行回执(双鉴权,决策逻辑为后端单一权威实现)。
  • 施工进度上报层(迭代 1-3)POST /v1/construction/report 等 11 端点——施工方上报 constructing 期各方块净放置,按 (项目×账号×方块) 聚合,归档喂给积分层;严格单源、归因三分支、切源两端点、admin 5+1 开关、服务端 mod 白名单、时序快照、方块清单校验、材料完成度与休眠源查询。
  • 上报写入健壮性(CR):事件/时序快照写入包 SAVEPOINT,失败不再污染主事务致整次上报回滚;join_construction 并发兜底改有界重试(防无限递归);Participant.updated_at 退出/切换时显式刷新;/me/switch 并发冲突返回 409 而非 500。