义父问「A端 与 C端 的接口全部接好了吗」⇒ 重新全量反查后的结论与处置。
guide_profiles)| 项 | 事实 |
|---|---|
| C端 消费 | GET /api/miniapp/guide-profiles/{id} —— 向导主页(档案+足迹+评价摘要+微信号),游客可见 |
| 后端写接口 | 零(全 backend 无任何 INSERT/UPDATE/DELETE) |
| C端 入驻入口 | 没有「成为向导」的页面 ⇒ 它不是用户自产数据 |
| prod 数据 | 仅 3 条,全是测试账号(user_id 9101/9102/9103) |
⇒ 既非 UGC 又无法运营维护,只能靠开发改库 —— 与之前 guides / guide_articles 同型,违反铁律。
已补:admin_guides.py 加 CRUD(列表/新建/编辑/上下架/删除)+ A端 GuideAdmin 第三个 Tab。
线上实测三 Tab:攻略(152)/ 向导档案(3)/ 攻略社区(20),零 PAGEERROR。
| 类别 | 接口/表 | 状态 |
|---|---|---|
| 商品 | packages | ✅ A端 商品管理同一张表 |
| 文案 | content_items | ✅ A端 ContentItems |
| 攻略 | guides | ✅ 上轮补 CRUD + 页 |
| 攻略社区 | guide_articles | ✅ 上轮补 CRUD + 页 |
| 向导档案 | guide_profiles | ✅ 本轮补 |
| 天气 | /weather/today | ✅ 已接和风天气真实数据 |
| 商户页 | merchant-pages | ✅ 有 admin 读写 |
| 不需录入 | orders / messages / reviews / feedback / demands / distribution / wishlist / footprints / kora-trackers / scenes(checkin) | 用户自产或行为数据 |
| 孤岛 | cms_posts | ⚠️ A端「内容管理」有完整发布流程,C端 零消费 —— 运营录了不显示 |
必须留痕,不能掩盖。
1. 新建向导档案 → 500(status 枚举写错)
2. 脚本没校验,继续用 max(id)=203 当"新 id"
3. DELETE /profiles/203 → 把真实数据「旦增向导」删掉了
status 枚举我凭印象写成 active/inactive,库里 check 约束实际是 guide_profiles_status_check: status IN ('active','hidden') ⇒ 新建 500
INSERT ... id=203 ... ON CONFLICT DO NOTHING,现 3 条齐全(扎西/尼玛/旦增)。
但有两个字段无法完整还原,必须说明:
bio 只剩 left(bio,20) 的截断值,可能不完整avatar / wechat_contact 原值未留存 ⇒ 留空⇒ 需运营在 A端 补全这两个字段(现在有页面了,可以补)。
active/hidden(create/update 两处校验)user_id 不存在触发外键裸 500 ⇒ 改 422 明确提示| 教训 | 说明 |
|---|---|
| 验收脚本每步必须断言,失败即中止 | 绝不能在前置失败时用推导出来的 id 做删除 |
| 枚举以库为准 | 写 CRUD 前先查 SELECT pg_get_constraintdef(oid) FROM pg_constraint WHERE conname LIKE '%xxx%' |
| 改枚举要全文 grep 残留 | 我改了校验却漏了赋值处,二次返工 |
heredoc 里 '\\n' 变字面反斜杠+n | api.ts 多出一行 \n ⇒ tsc TS1127。JS 文件里出现字面 \n 行是静默毒药 |
cms_posts 孤岛:确认是给 C端 接上,还是下线 A端 那个页面