b2t.md 14 KB

B2T 协作清单

文档版本:v1.47 最后更新:2026-04-07 18:15:01

说明:

  • 本文件由 backend 维护,写给总控
  • 只保留当前主线、有效结论和压缩归档
  • 已完成历史项不再逐条保留长记录

待确认

B2T-044

  • 时间:2026-04-07 17:23:15
  • 谁提的:backend
  • 当前事实:
    • backend 建议把活动模型先收成最小可玩单元:
    • 单地图
    • 单路线组
    • 单玩法
    • 当前不建议第一阶段直接支持:
    • 一个活动多地图
    • 一个活动多路线组
    • 一个活动多玩法
    • 复杂需求优先通过“活动实例化”解决,而不是把单个活动扩成多对多容器。
    • 多地图 / 多玩法的前台需求,建议通过“组合卡片 / 组合入口层”承接:
    • 组合入口可以指向多个活动实例
    • 单个活动实例仍保持最小可玩单元
    • 这样可以同时简化:
    • 前台活动卡片逻辑
    • 发布语义
    • 结果追溯
    • 运维后台第一期流程
  • 需要对方确认什么:
    • 运维后台与活动编排后续按“单地图 + 单路线组 + 单玩法”继续推进。
    • 多地图 / 多路线组 / 多玩法先作为后续模板化实例生成能力与组合入口能力,不在第一阶段直接进入活动主模型。
  • 是否已解决:否

B2T-045

  • 时间:2026-04-07 17:52:18
  • 谁提的:backend
  • 当前事实:
    • 运维后台已继续从“对象平铺页”往“主流程后台”收。
    • 当前左侧导航改成:
    • 资源总览
    • 地图 / 地点管理
    • 路线资源管理
    • 活动管理
    • 活动编排
    • 发布中心
    • 资源录入 作为辅助入口保留
    • 资源总览 已提升为运行时信息面板,优先展示关键统计与当前活动的 release / runtime / presentation / content bundle
    • 地图页已不再平铺关联活动详情,只保留:
    • 关联活动数量
    • 默认体验活动数量
    • 关联活动摘要
    • 跳转到活动管理
  • 需要对方确认什么:
    • 运维后台继续按“总览优先 + 单主视图 + 地图页只看地图本身、活动详情去活动管理”这条交互结构推进。
  • 是否已解决:否

B2T-046

  • 时间:2026-04-07 18:03:42
  • 谁提的:backend
  • 当前事实:
    • 地图 / 地点管理 已继续从“按钮 + 手填 ID”收成“列表 -> 详情”流程。
    • 当前已支持:
    • 地点列表
    • 地图列表
    • 地点关键字筛选
    • 地图关键字筛选
    • 点地点自动读取地点详情与该地点下地图
    • 点地图自动读取地图详情、当前瓦片版本、默认活动概况
    • 地图页继续只保留关联活动数量与摘要,不在地图页平铺活动详情。
  • 需要对方确认什么:
    • 地图 / 地点管理继续按“列表-详情主流程”推进,活动详情统一留在活动管理 / 活动编排。
  • 是否已解决:否

B2T-045

  • 时间:2026-04-07 17:30:06
  • 谁提的:backend
  • 当前事实:
    • 运维后台当前已继续从“功能平铺页”收成“导航驱动的流程页”:
    • 左侧导航
    • 中间单主视图
    • 右侧常驻状态栏
    • 当前不再把地图管理、资源录入、KML 管理、活动管理、发布中心同时平铺在一个长页面里。
    • 主区当前也已改成宽屏自适应,不再使用固定窄宽度。
  • 需要对方确认什么:
    • 运维后台后续继续按“符合人使用习惯的流程导航页”推进,不再回退到功能平铺式工作台。
  • 是否已解决:是

B2T-043

  • 时间:2026-04-07 16:45:40
  • 谁提的:backend
  • 当前事实:
    • 运维后台当前在开发环境里默认免登录。
    • 本轮已修复 dev-only 鉴权陷阱:
    • 浏览器残留旧的玩家 token、失效 token 或非 ops token 时
    • /ops/admin/* 之前会返回 401 invalid_token
    • 现在开发环境会自动回退到 dev ops 上下文
    • 生产环境不变,仍要求正式 ops token。
  • 需要对方确认什么:
  • 是否已解决:是

B2T-042

  • 时间:2026-04-07 16:29:08
  • 谁提的:backend
  • 当前事实:
    • frontend 反馈游客模式第一刀里:
    • GET /public/experience-maps 正常
    • GET /public/events/{eventPublicID}/play 正常
    • POST /public/events/{eventPublicID}/launch 返回 500 internal_error
    • backend 已定位根因:
    • 游客 launch 会创建 guest_device 身份
    • 旧库约束不允许 login_identities.identity_type = 'guest'
    • 已补 migration:
    • 0015_guest_identity.sql
    • 本次修复不改游客接口契约,只修数据库约束。
  • 需要对方确认什么:
    • 游客模式第一刀继续以:
    • evt_demo_001 作为基线回归。
  • 是否已解决:是

B2T-041

  • 时间:2026-04-07 16:08:37
  • 谁提的:backend
  • 当前事实:
    • 运维后台当前已从“底层对象调试台”继续往“主流程管理台”收口:
    • 地图管理
    • KML / 赛道管理
    • 活动管理
    • 发布中心
    • 当前已补运维地图主流程接口:
    • GET /admin/map-assets
    • PUT /admin/map-assets/{mapAssetPublicID}
    • GET /ops/admin/map-assets
    • PUT /ops/admin/map-assets/{mapAssetPublicID}
    • GET /ops/admin/course-sources
    • GET /ops/admin/course-sources/{sourcePublicID}
    • GET /ops/admin/course-sets/{courseSetPublicID}
    • 运维后台当前目标已明确:
    • 运维先看地图列表
    • KML / 赛道围绕地图管理
    • 活动围绕地图查看关联活动、默认体验活动和发布状态
    • 活动管理当前也已补成与地图同一套路:
    • 列表
    • 新建
    • 修改
    • 读取详情
    • 当前新增:
    • POST /ops/admin/events
    • PUT /ops/admin/events/{eventPublicID}
    • 当前 API 总数更新为:
    • 115
  • 需要对方确认什么:
    • 运维后台第一期继续按“地图列表 -> 地图详情 -> KML / 赛道 -> 活动绑定 -> 发布中心”这条主流程推进。
    • 不再把 Place / MapAsset / TileRelease / CourseSource / CourseSet 直接当首页认知入口。
  • 是否已解决:否

B2T-040

  • 时间:2026-04-07 20:12:00
  • 谁提的:backend
  • 当前事实:
    • backend 已补游客模式第一刀最小公开接口:
    • GET /public/experience-maps
    • GET /public/experience-maps/{mapAssetPublicID}
    • GET /public/events/{eventPublicID}
    • GET /public/events/{eventPublicID}/play
    • POST /public/events/{eventPublicID}/launch
    • 当前规则:
    • 只允许默认体验活动
    • 只允许基于已发布 release
    • guest launch 使用独立 guest_device 身份落到正常 session 模型
    • 返回 launch.business.isGuest = true
    • 当前 API 总数更新为:
    • 106
  • 需要对方确认什么:
    • 游客模式第一刀按这组公开接口继续前后端联调。
    • 若后续需要 guest 结果页或 guest 本地成绩迁移,再作为下一刀,不混入当前最小链。
  • 是否已解决:否

B2T-039

  • 时间:2026-04-07 16:42:15
  • 谁提的:backend
  • 当前事实:
    • 运维后台已开始落地“地图资源管理第一刀”:
    • GET /ops/admin/places
    • POST /ops/admin/places
    • GET /ops/admin/places/{placePublicID}
    • POST /ops/admin/places/{placePublicID}/map-assets
    • GET /ops/admin/map-assets/{mapAssetPublicID}
    • POST /ops/admin/map-assets/{mapAssetPublicID}/tile-releases
    • /admin/ops-workbench 当前已新增独立“地图资源管理”区,可直接:
    • 建地点
    • 建地图
    • 看当前瓦片版本
    • 看默认活动摘要
  • 需要对方确认什么:
    • 运维后台第一期按“地图资源管理 -> 资源录入 -> 赛道集管理 -> 活动绑定 -> 发布中心”这条顺序继续推进。
  • 是否已解决:否

B2T-038

  • 时间:2026-04-07 16:08:20
  • 谁提的:backend
  • 当前事实:
    • backend 已按“地图列表下的默认活动”补最小公开接口:
    • GET /experience-maps
    • GET /experience-maps/{mapAssetPublicID}
    • 默认活动关系当前统一收口到:
    • events.is_default_experience
    • events.show_in_event_list
    • 当前已发布 release 绑定到的 runtime.mapAsset
    • cards / home / me/entry-home 当前也已补:
    • showInEventList
  • 需要对方确认什么:
    • 后续活动列表与地图入口第一刀以这组字段为准继续联调。
    • 如需更复杂地图分组、排序、租户筛选,放到下一刀,不在这次最小实现里扩。
  • 是否已解决:否

B2T-034

  • 时间:2026-04-07 13:12:00
  • 谁提的:backend
  • 当前事实:
    • backend 已按“准备页地图预览 V1”预留最小字段到:
    • GET /events/{eventPublicID}
    • GET /events/{eventPublicID}/play
    • 当前 preview 仍保持:
    • 只读增强项
    • 不进入正式 launch 主链
    • 不单独造新地图资源体系
  • 需要对方确认什么:
    • backend 继续按“只读预览 V1”推进,不扩新对象层级。
  • 是否已解决:否

已确认

B2T-037

  • 时间:2026-04-07 14:45:37
  • 谁提的:backend
  • 当前事实:
    • 运维后台当前已开始与玩家链路分离:
    • 运维账号接口:/ops/auth/*
    • 运维管理接口:/ops/admin/*
    • /admin/ops-workbench 当前只服务运维录资源、活动绑定、发布中心。
    • 开发环境当前默认免登录放行,方便录资源和调发布;生产环境再收口到手机号验证码运维账号。
    • 运维总览统计当前已改为只读取服务端聚合摘要,不再用前端列表长度硬凑。
  • 需要对方确认什么:
  • 是否已解决:是

B2T-036

  • 时间:2026-04-07 13:51:50
  • 谁提的:backend
  • 当前事实:
    • backend 已开始落地运维入口第一期,不再只靠手工脚本或改代码上传资源。
    • 当前先开放两条最小录入链:
    • POST /admin/ops/tile-releases/import
    • POST /admin/ops/course-sets/import-kml-batch
    • 运维入口第二期也已起步,开始支持统一资源纳管:
    • GET /admin/assets
    • POST /admin/assets/register-link
    • POST /admin/assets/upload
    • GET /admin/assets/{assetPublicID}
    • 当前已新增独立运维工作台:
    • GET /admin/ops-workbench
    • 当前开始把:
    • /dev/workbench
    • /admin/ops-workbench 两套入口按“调试后台 / 运维后台”正式拆开
    • Import Tile Release / Import KML Batch 已从 /dev/workbench 主操作区迁到:
    • /admin/ops-workbench
    • /dev/workbench 当前只保留运维入口说明与跳转
    • /admin/ops-workbench 当前已收成第一版运维台结构:
    • 资源总览
    • 资源录入
    • 赛道集管理
    • 活动绑定
    • 发布中心
    • 当前 API 总数同步更新为:
    • 101
  • 需要对方确认什么:
  • 是否已解决:是

B2T-035

  • 时间:2026-04-07 12:38:13
  • 谁提的:backend
  • 当前事实:
    • 正式资源目录约束已收口:
    • 正式资源只认 OSS / CDN
    • 本地 tmp/ 只作为临时收件箱,不作为正式发布源
    • manual 多赛道 demo 当前已切到 4 条正式 OSS KML:
    • gotomars/kml/lxcb-001/2026-04-07/route01.kml
    • gotomars/kml/lxcb-001/2026-04-07/route02.kml
    • gotomars/kml/lxcb-001/2026-04-07/route03.kml
    • gotomars/kml/lxcb-001/2026-04-07/route04.kml
  • 需要对方确认什么:
  • 是否已解决:是

B2T-033

  • 时间:2026-04-07 10:55:40
  • 谁提的:backend
  • 当前事实:
    • Bootstrap Demo(只准备数据) 当前会准备三条标准 demo 的基础已发布态:
    • runtime
    • presentation
    • content bundle
    • 当前 release
    • frontend 从首页点三种玩法时,已可直接按“当前已发布 release”语义联调。
  • 需要对方确认什么:
  • 是否已解决:是

B2T-029

  • 时间:2026-04-03 22:34:08
  • 谁提的:backend
  • 当前事实:
    • backend 已完成活动卡片列表最小产品化第一刀:
    • GET /cards
    • GET /home
    • GET /me/entry-home
    • 已补齐最小摘要字段:
    • summary
    • status
    • statusCode
    • timeWindow
    • ctaText
    • isDefaultExperience
    • eventType
    • currentPresentation
    • currentContentBundle
  • 需要对方确认什么:
  • 是否已解决:是

B2T-028

  • 时间:2026-04-03 16:16:38
  • 谁提的:backend
  • 当前事实:
    • backend 已提供联调结构化日志通道:
    • POST /dev/client-logs
    • GET /dev/client-logs
    • DELETE /dev/client-logs
    • workbench 已有前端调试日志面板。
  • 需要对方确认什么:
  • 是否已解决:是

阻塞

  • 当前无 backend 主线阻塞。
  • 当前不建议开启:
    • 新对象扩张
    • 正式后台 UI
    • 与活动系统最小成品闭环无关的新玩家功能

已完成

归档摘要(保留必要结论)

  • 时间:2026-04-07 12:18:00
  • 谁提的:backend
  • 当前事实:
    • 联调标准化阶段已完成:
    • 一键测试链
    • 详细日志
    • 稳定 demo 数据
    • workbench 回归汇总
    • 真实输入替换第一刀已完成:
    • 真实 KML
    • 真实地图 URL
    • dev content/presentation 入口
    • 中文活动文案样例
    • 三条标准 demo 当前都可稳定联调:
    • 顺序赛
    • 积分赛
    • manual 多赛道
    • 历史 demo ongoing 残留已收口。
  • 需要对方确认什么:
  • 是否已解决:是

下一步

  • backend 当前继续围绕:
    • 活动系统最小成品闭环
    • 活动列表第一页联调小修
    • 运维后台第一期里的地图 / 地点管理
  • 运维后台当前新增已落地:
    • 地图 / 地点管理改成“地图列表优先”
    • 右上角入口:添加地图 / 添加地点
    • 地点编辑区接入省 / 市两级选择
    • backend 新增:GET /ops/admin/region-options
  • 不开新战线,只做收口、稳定、验证。