审计人:小渔 | 时间:2026-09-12 23:5x | 环境:staging (100.64.1.230:8089) | 鉴权:is_test 用户 13020000001/test123456
| 页 | service 导入 | 裸请求 | 后端端点 | GET | POST | 判定 |
|---|---|---|---|---|---|---|
| demand-confirm | ✅ services/demand createDemand | 0 | /api/miniapp/demands | ✅ 12条 | ✅(字段校验) | ✅ 接真 |
| emergency-contacts | ✅ services/content-b | 0 | /api/miniapp/emergency-contacts | ✅ [] | ✅ id=12 | ✅ 接真 |
| health-check | ✅ services/safety submitDailyHealthCheck | 0 | /api/miniapp/safety/health | ✅ ok | ✅ record_id=4 | ✅ 接真 |
| homestay-apply | ❌ 仅 initNavTop | 0(注释) | /api/miniapp/homestay-apply | ✅ [] | ✅ id=2 | ⚠️ 前端未接线 |
| kora-checkin | ✅ services/scene-cards | 0 | /api/miniapp/scenes/checkin | POST-only | ✅(校验) | ✅ 接真 |
| safety-check | ✅ services/safety submitAssessment | 0 | /api/miniapp/safety/assessment | POST-only | ✅(校验) | ✅ 接真 |
| scene-checkin | ✅ services/scene-cards | 0 | /api/miniapp/scenes/checkin | POST-only | ✅(校验) | ✅ 接真 |
| sos | ✅ services/safety sendSos | 0 | /api/miniapp/safety/sos | POST-only | ✅ alert_id=2 | ✅ 接真 |
| subscription-page | ✅ services/distribution | 0 | /api/miniapp/distribution/subscription | ✅ isSubscribed=false | ✅ code=0 | ✅ 接真 |
| task-review | — | — | — | — | — | 死页(app.json未注册) |
GET /api/miniapp/reviews 返回 5 条(含 review 3001 回复链 2 条)✅p.reviewSummary.items 渲染GET /api/miniapp/guides?limit=2 返回的 guide 对象 reviewSummary=None → 评价在 guide 页不显示/api/miniapp/reviews 无前端 service 消费方(services/ 无 getReviews 列表函数)GET /api/miniapp/messages?limit=3 返回 3 条(order/system 类型)✅getMessages(type) → services/message.ts ✅GET /api/miniapp/stories?limit=2 返回 2 条(共 17 篇 published)✅getPilgrimageStories() 调用 URL /api/miniapp/pilgrimage/stories → 404 Not Found(后端 prefix 是 /api/miniapp/stories)getPilgrimageStories 在 pages/ 中零调用方 → 故事数据当前无 C端 页面渲染| 域 | 后端数据 | 前端 service | 页面渲染 | 状态 |
|---|---|---|---|---|
| 评价 | ✅ 5条 | ⚠️ 无独立列表service(依赖guide内嵌) | ❌ reviewSummary=None | 🔴 不渲染 |
| 消息 | ✅ 5条 | ✅ getMessages | ✅ messages页 | 🟢 正常 |
| 故事 | ✅ 17条 | ❌ URL错误(/pilgrimage/stories 404) | ❌ 无消费页 | 🔴 不渲染 |
#15 🔴 revoke 撤销时佣金未冲销:confirm 计佣创建 commission_entries(pending),revoke 只还福钥不调 void_records_on_refund → 佣金仍可被错误结算
miniapp_workbench_redeem.py L320 redeem_confirm → L460 调用 distribution_attribution.accrue_commission(...) 创建 commission_entries(pending) ✅miniapp_workbench_redeem.py L646 redeem_revoke 全函数(L646-812)未调用 void_records_on_refund ❌distribution_attribution.py L286 void_records_on_refund(conn, order_id) 已存在,可直接调用await distribution_attribution.void_records_on_refund(conn, event["order_id"])SELECT COUNT(*) FROM redemption_events WHERE order_id=$1 AND redeem_stage='arrival'AND status='redeemed' —— #16 查询本身未修(revoke 守卫兜底非法迁移,但查询语义不精确)void_records_on_refund 调用AND status='redeemed' 过滤| # | 域 | 问题 | 严重度 | 责任人 | 归属工单 |
|---|---|---|---|---|---|
| F1 | 故事 | getPilgrimageStories URL 错误(/pilgrimage/stories→/stories) + 无消费页 | 🟡 中 | 一号 | 待立单 |
| F2 | 评价 | guide 端点 reviewSummary=None → 评价不渲染;无独立 reviews 列表 service | 🟡 中 | 阿仁(后端)+一号(前端) | 待立单 |
| #15 | 核销 | revoke 未调 void_records_on_refund → 佣金未冲销 | 🔴 高 | 阿仁 | WIP-297 退款域 |
| #16 | 核销 | had_arrival 查询缺 status='redeemed' 过滤 | 🟡 中 | 阿仁 | WIP-297 |
WIP-298 完工:抽验报告 + 渲染证据 + #15 跟进确认 三项交付完成。