2026-09-25 · 波波
义父连问三句:「事一这跟小程序有关吗」「事二小程序只有福钥系统,工分任务其实就是福钥任务」「事三你也没说是什么呀,只说删除」。
这三句我一并查完了。结论是:我上一版方案里错了一半,尤其事三差点砍掉两个不该砍的东西。
| 你问的 | 我的回答 |
|---|---|
| 事一跟小程序有关吗 | 无关。documents 是内部协作文档柜,装的是 16 篇给李总汇报的方案稿,三端(小程序/A端/B端)零入口、零调用。搬它不碰小程序一根汗毛。 |
| 事二工分任务是不是福钥任务 | 是,你说得对,我错了。「工分」这个词在五个前端里出现 0 次——是我从别的项目串台过来的词,神山只有「福钥」(前端出现 150 多次)。而且福钥现在不是"在用",是"接了但 URL 写错了":C端 6 个福钥接口全写成了商户前缀,游客一点就是 403/404/422。 |
| 事三那三个是什么 | 补在下表。而且我的"可砍三条"里只有 1 条站得住,另外两条是我判据错了——真砍下去会砍掉 B端 正在用的功能。 |
一个内部协作文档柜(后端 /api/miniapp/docs),带版本号、成员、评论三件套:
21 个版本、64 条成员关系、51 条审计日志。
里面装的是 16 篇内部方案稿,不是给游客看的内容:
「阿里目的地平台分析与落地计划」「套餐产品模型说明书 v2.0」「定位与功能布局研究」
「四入口系统分析(运营五维)」「淡季新业态盈利研究」「预售券锚点设计」等。
零关系。 12 个接口,小程序 / A端 / B端 都没人调。
创建时间集中在 2026-08-28 ~ 08-29 两天,之后没再新增——像是给李总汇报前集中写的方案集。
| 步骤 | 动作 | 风险 |
|---|---|---|
| 1 | 16 篇导出成 md,放进 docs/archive/2026-08-方案集/ | 零(纯新增) |
| 2 | 推到文档站,李总可直接看链接 | 零 |
| 3 | 后端接口保留代码不删,文件头标注「历史存档,内容已迁文档站」 | 零 |
错一:「工分」是我串台的词。
我把五个前端全扫了一遍:
| 词 | 小程序 v1 | v2 | v3 | A端 | B端 |
|---|---|---|---|---|---|
| 福钥 | 19 | 45 | 42 | 72 | 5 |
| 工分 | 0 | 0 | 0 | 0 | 0 |
「工分」在神山这个项目里根本不存在。是我把别处项目的词汇带过来了,先认账。
错二:我说「福钥任务在用 ✅」——实际是接了但接错了。
C端 v2/v3 的福钥接口文件(services/api/keyTasks.ts)里,6 个函数全部写成了商户前缀
/api/miniapp/workbench/key-tasks/*,正确的是游客前缀 /api/miniapp/key-tasks/*。
后端只注册了两种前缀,我拿脚本逐条比过(脚本已做反证,见文末):
| 前端调用 | 后端实际 | 游客点下去会怎样 |
|---|---|---|
任务列表 GET /workbench/key-tasks | 存在,但是商户端点 | 403 无权访问 |
领取任务 POST /workbench/key-tasks/{id}/claim | 不存在 | 404 |
我的任务 GET /workbench/key-tasks/mine | 不存在(会被 {id} 截胡) | 422 参数错误 |
完成任务 POST /workbench/key-tasks/claims/{id}/complete | 不存在 | 404 |
福钥余额 GET /workbench/key-tasks/balance | 不存在 | 404 |
福钥流水 GET /workbench/key-tasks/ledger | 不存在 | 404 |
⇒ 游客端的福钥,现在一个功能都跑不通。
错三:不是两套任务,是三套,而且我把 B端 正在用的那套当成了"没启用"。
| # | 系统 | 表 | 数据落在哪 | 谁在用 |
|---|---|---|---|---|
| 1 | 点位任务 | task_templates | 挂物理点位 + 码牌,五族(引流/到店/口碑/等待/推荐)× 三种判定(核销/城门/内容) | ✅ B端 商户在用(PointTasks 页,走 /merchant/point-tasks) |
| 2 | 福钥任务 | key_tasks | 发福钥(1 把 = 1 元),有库存/有效期 | ❌ C端 想用但 URL 全错 |
| 3 | 任务全生命周期 | credit_tasks | 发到通用钱包,流程是「提交证据→审核 30%→到店核销→发 70%」 | ❌ 三端零消费(就是我上一版叫"工分任务"的那 17 条) |
第 1 套(点位任务)正是我上一版要下线的 task_templates——
我当时的理由是"这张表 0 行,模板层没启用"。
真相是:0 行只是商户还没建过任务,B端 的页面一直在调它。 差一点就把在用的功能砍了。
您说「工分任务其实就是福钥任务」——业务上完全成立:
credit_tasks 那套干的事就是"游客做任务(发小红书/写评价/拍素材)拿奖励",
跟福钥任务是同一件事的老实现。区别只在钱的落点:
所以答案不是"要不要保留",而是二选一:
| 选项 | 做法 | 后果 |
|---|---|---|
| A(我推荐) | 17 条整块标注存档(不删数据),其业务内容如需复用,由运营在福钥任务里重新建一遍 | 前端永远只认福钥一套,账只有一本 |
| B | 给 credit_tasks 单独补 A端 入口 | 两套账并存,游客拿的奖励分两个钱包,将来对账要人命 |
上一版我只写了"可砍"和理由,没说它们是什么。这是我的问题,现在补上:
列出商户员工里身份是 owner / manager / promoter 的人,连着他们能提供的服务项一起展示,
游客可以浏览"本地有哪些向导、能带我玩什么"。
我上一版说它"关联表根本不存在"——这句是错的。
它查的是 merchant_staff / users / merchants / service_items 四张真实存在的核心表,
只是没有一张表恰好叫 promoters。我按"表名不存在"判死代码,判据本身就错了。
改判:不砍。 要不要留是产品决策(游客端有没有向导展示位),不是"死代码清理"。
团队游 / 包车的成团报价系统,功能相当完整:
我上一版说它"两个表都 0 行 = 空 = 可砍"。
但 0 行只说明还没灌过数据,不代表这套东西是空壳——它是按手册 §4.2/§5 写完整的功能。
改判:不砍,也不删。 它是"已建成、未启用",不是"没用"。
早期做的一套改文案的通道,0 行。
后来被 content_items 取代了——现在改小程序上的白标文案走 content_items,改完立刻生效。
改判:这一条站得住,可以下线。
但它是阿仁做的(WIP-289),我会在注释里写"已被 content_items 取代"而不是"废弃",
并知会相关人,两周无异议再摘路由。
| 顺序 | 事项 | 风险 | 动数据吗 |
|---|---|---|---|
| 1 | documents 16 篇导出到文档站 + 后端标注存档 | 零 | 否 |
| 2 | 修福钥 5 条断链(C端 v2/v3 的 URL 前缀写错) | 低 | 否 |
| 3 | task_templates 从"下线清单"里撤掉(B端 在用) | 零 | 否 |
| 4 | site_texts 注释下线(唯一站得住的一条) | 低 | 否 |
| 5 | credit_tasks 17 条标注存档(不删) | 低 | 否 |
| 6 | 福钥商户侧入口:后端 6 个端点都在,B端 和 A端 零调用 ⇒ 商户现在建不了福钥任务 —— 这是福钥系统真正的缺口,需要单独排期 | 中 | 是(要新增页面) |
第 1~5 项我现在就能做,全是低风险、不动数据。第 6 项要新写页面,等您点头。
scripts/check_api_url_wiring.py——扫后端真实注册的路由 vs 前端写死的 URL,
抓「前端调了后端根本没有的地址」这类断链。编译期(tsc / vite build)全程不吭声,只有真机点开才炸。
已知边界(不吹牛):
BASE + path 这种)反证脚本 scripts/_revproof_url_wiring.py:
故意把一条错误 URL 改对 → 判据必须变绿;还原 → 必须变回红的。
中间踩到两个自己写的 bug(${id} 归一化顺序反了、拼接链被截断),都已修掉并留下注释。
全量结果:43 条断链,按端分布 ——
| 端 | 断链引用点 | 说明 |
|---|---|---|
| miniprogram(v1) | 41 | v1 已停更(末次提交 09-17),当前低优先级 |
| miniprogram-v2 | 7 | 其中 5 条是福钥 |
| miniprogram-v3 | 6 | 其中 5 条是福钥 |
| admin-console | 2 | |
| b-workbench | 1 |
⇒ 当前活跃端(v2/v3,今天都还在改)的断链,恰好就是福钥那 5 条。
修掉这 5 条,C端 福钥就能全通。