同城统一后台多业务扩展时,前台入口应由 feature flag 控制。未开通 business_line 不应返回可点击路由,否则用户进入空页面或 404,损伤信任。
结论
config service 下发 enabled_lines;BFF 过滤 home modules;后台 audit 开关变更。
# tenant feature snapshotenabled_business_lines:-food_delivery# errand: false → 不渲染入口feature manifest version 驱动 App 刷新;deeplink fallback。
实施时建议固定 golden 样本单号,在预发与生产各留用户端、后台、导出三处截图;列名或状态枚举变更走书面版本号,避免财务周结时才发现对不上历史单。
一、后台与前台一致
运营关闭 errand 模块后,CDN 配置与 App 拉取的 manifest 应在分钟级一致,宜 version 号强制刷新。
关闭 module 后 manifest bump。
实施时建议固定 golden 样本单号,在预发与生产各留用户端、后台、导出三处截图;列名或状态枚举变更走书面版本号,避免财务周结时才发现对不上历史单。
二、深链处理
用户收藏旧 deeplink 到未开通业务,应跳转说明页而非 crash。
{"module":"errand","visible":false,"fallback":"service_not_available"}deeplink 未开通跳说明页。
实施时建议固定 golden 样本单号,在预发与生产各留用户端、后台、导出三处截图;列名或状态枚举变更走书面版本号,避免财务周结时才发现对不上历史单。
三、统一登录 SSO
运营后台一次 OAuth token,scope 含 allowed_lines。API 403 时提示无权限而非空数据。
token scope allowed_lines。
实施时建议固定 golden 样本单号,在预发与生产各留用户端、后台、导出三处截图;列名或状态枚举变更走书面版本号,避免财务周结时才发现对不上历史单。
四、订单列表聚合
单表 orders + business_line 索引,后台 UI tab 只是 filter,不是第二套库。
orders 单表 filter tab。
实施时建议固定 golden 样本单号,在预发与生产各留用户端、后台、导出三处截图;列名或状态枚举变更走书面版本号,避免财务周结时才发现对不上历史单。
五、预配置未上线
后台可预填 errand 运费模板但 front 不可见,避免半成品暴露。
预配置不可 front 可见。
实施时建议固定 golden 样本单号,在预发与生产各留用户端、后台、导出三处截图;列名或状态枚举变更走书面版本号,避免财务周结时才发现对不上历史单。
六、光合同城边界
国内综合版含模块开关与多业务扩展;深度定制路由单列。
实施时建议固定 golden 样本单号,在预发与生产各留用户端、后台、导出三处截图;列名或状态枚举变更走书面版本号,避免财务周结时才发现对不上历史单。
七、feature flag 与灰度
module 开关变更写入 audit:operator、old_enabled_lines、new_enabled_lines、timestamp。灰度可按 user_id hash 百分比开启 errand module,观察错误率后再全量。BFF 聚合接口在 module 关闭时不应返回空数组误导前端渲染占位图标。
统一登录 token 解析 allowed_lines,API 403 与空数据区分。订单列表 tab 只是 filter,禁止为每业务单独建库导致汇总导出困难。预配置 errand 运费但不 front 展示,宜在后台标记 pre_release=true。
八、小结
统一后台 = 单登录 + 可筛订单 + 开关控入口。试跑关闭 errand 后 App 无入口,deeplink 友好降级。
开关 audit 谁何时改了什么,便于排查「用户说昨天还能点」。灰度可按 user_id 百分比开新 module,降低全量风险。
开关 audit + 灰度 percent。
实施时建议固定 golden 样本单号,在预发与生产各留用户端、后台、导出三处截图;列名或状态枚举变更走书面版本号,避免财务周结时才发现对不上历史单。