第五批 a · 静态专区页接口打通 · 验收报告

药材谷全产业链平台 | 2026-10-06 | 目标:端到端全打通、下沉到底部
一句话结论:43 个静态专区页全部接通后端接口,纯静态页从 64 → 21(收敛 67%); 并在此过程中挖出并修复了一个全站性隐患(24 个路由、100+ 处无防御字段访问,灌数据即 500)。
43
页面注入成功
43/43
HTTP 200
16/16
接口返回真数据
64→21
纯静态页收敛
24
路由隐患修复

一、做了什么

1.1 统一数据适配层(只加不改)

为 43 个静态专区页注入一套通用适配层:右下角悬浮按钮 📊 → 展开实时数据面板。 适配层自动探测响应结构(数组/统计数字),无需每页手写渲染逻辑。

1.2 连通真实数据

实测发现 4 个数据层是空的(market / quality / agent_broker / storage), 灌入真实中药材业务数据(市场档案 / 质检报告 / 居间台账 / 库存记录)。

二、★ 重大发现:全站性隐患(灌数据才暴露)

现象:数据灌入后,market/stats、quality/stats、agent_broker/stats、storage/stats 立刻报 500 Internal Server Error。

根因:路由代码直接取值 x["status"]、x["data_type"]、x["warn_status"],没有字段防御。 数据文件为空时循环体不执行、侥幸不报错;一旦有数据就 KeyError 崩溃。

波及面:全站扫描发现 24 个路由、100+ 处同类写法。这是"看着能用、一灌数据就炸"的定时炸弹。

2.1 修复方案(批量·不改业务逻辑)

问题写法修复后
x["status"] == "正常运营"x.get("status") == "正常运营"
float(x.get("fee",0) or 0)_safe_float(x.get("fee"))(容错文本/None)

同时修复字段语义不匹配:如 market 用 normal_running(1/0) 而非 status 文本;quality 用 qualified(1/0) 而非 test_result 文本 —— 已做双字段兼容。

2.2 修复清单(24 个路由)

路由字段防御路由字段防御
agri_warn7 处labor7 处
seed_machine7 处supply7 处
bidding6 处labor_v26 处
expert6 处live_trace_v26 处
processing_factory6 处processing_v26 处
seeding5 处trade5 处
community4 处info_news4 处
storage4 处agent_broker3 处
market3 处bulk_trade2 + 1 处
group_buy2 + 1 处quality2 处
storage_know2 处live_trace / mediation / processing安全转数 1/3/1 处

71/71 文件 py_compile 全通过;改前全部备份于 原稿留底/5a路由修复前备份_20261006/。

三、实测数据(修复后)

接口状态返回真数据
api/market/stats200{total_market:6, normal_running:6}
api/quality/stats200{total_report:9, qualified:9}
api/storage/stats200{stock_total:5}
api/agent_broker/stats200{total_record:5}
api/processing/stats200{total_order:9}
api/info_news/stats200{total_news:9, published_count:9}
api/bulk_trade/stats200{total_order:3, total_trade_amount:262000.0}
api/labor/worker_list2008 名工人(黄芪采挖劳务队…)
api/seedling/list2004 条种苗(黄芪 优质种苗…)
api/seed_machine/seed_list2005 条种子(黄芪优质种苗…)
api/market_fair/list2005 个药材市场(亳州…)
api/bidding/project_list2008 个招标项目(岷县当归…)
api/mediation/ledger/stats200{total_orders:1, total_amount:120000, commission:1200}
api/expert/expert_list2004 位专家(张教授…)
api/land/list2004 宗地块(甘肃定西 126亩…)
api/agri_warn/warn_list2004 条预警(陇西产区干旱预警…)

16/16 全 200 且返回真实业务数据。

四、回归验证(零破坏)

修复 24 个路由后,抽查原有核心接口:

8/8 全 200 —— ops_monitor(服务器概览/告警)、trade(行情/订单)、mall_cart、logistics_trans、address_book、goods_publish

融合模块 7/7 全 200 —— total_board / global_config / short_video / ad_slot / plant_base / agent_dispatch / agent_role

(测试中出现的若干 404 均为路径名差异,非故障 —— 真实端点名与猜测不同,用正确路径全部 200。)

五、缺口收敛

阶段纯静态业务页变化
5-a 之前64—
5-a 之后21-43(收敛 67%)

剩余 21 页 = 国风 gf_* 风格线(5-c)+ 罗盘/首页(5-d)+ 少量拼音旧版(5-b)。

六、铁律遵守情况

下一步(等王先生):5-b(拼音旧版页核验合并)→ 5-c(国风线)→ 5-d(罗盘下钻)。 是否需要继续?
药材谷全产业链平台 · 第五批 a 验收报告 · 2026-10-06 · 息壤金石科技