2026-11-07-admin-ops-contract.md 24 KB

平台运营批次 · 契约核对结论(25 SC · 防假 RED)

归属:契约补建计划 P0「平台运营(Web 管理端 / 运营治理)」· 核对时间 2026-11-07(EVD-11) 开工包:docs/tdd/orchestration/admin-ops-kickoff-20261107.md(origin/cfclub @ 802cbbce4) 核对对象:origin/cfclub cfc-backend controller 源码(工作树 HEAD = origin/cfclub) 核对方法:类级 @RequestMapping + 方法级 @PostMapping 逐一比对(grep -rn '@RequestMapping|@PostMapping' cfc-backend/src/main/java/com/etotem/cfc/controller/ 实测定位,不假定包路径),逐端点记录存在性;对字面路径缺失者定位等价实现(防假 RED:契约声明的接口范围必须能在真实源码中找到实现)

0. 结论摘要

  • 25 个 SC 中 21 个存在可用 HTTP 端点载体(其中 16 个端点齐全、5 个端点存在但控制器归属/路径与开工包初核不同,已完成实测回填)。
  • 4 个 SC 无完整 HTTP 端点载体:SC-A-04(关系类型 CRUD,relationship_types 表已废弃,无独立 admin 端点)、SC-A-14(系统监控/告警,仅 /api/system/health 状态探活,无告警管理端点)、SC-A-19(账号注销/数据导出工单处理,仅用户侧 /api/user/deactivate、/api/user/data-export,无运营工单处理端点)、SC-A-20(限流/熔断配置,RateLimitInterceptor 为代码内置,无 HTTP 配置端点)。以上 4 个按 O-7 标注「无端点载体,需产品侧确认验收方式」。
  • 端点核对范围内 无「假 RED」:凡开工包标注 ⚠ 待核实的 9 项(A-05/A-08/A-10/A-14/A-15/A-19/A-20/A-21/A-22),逐一实测回填,其中 5 项确认端点存在(A-05/A-08/A-10/A-15/A-22),4 项无完整载体(A-14/A-19/A-20/A-21 部分)。
  • 无新增 DB 迁移、未改动业务代码与测试文件(本批次仅新增本核对文档 + API_REFERENCE 增补段落)。

1. 端点存在性核对(按 SC 清单,25 个)

列:SC → 开工包候选载体 → 实测源码端点(@RequestMapping 类级 + @PostMapping 方法级)→ 结论。

1.1 SC-A-01 管理端登录 + 全局统计

开工包候选 实测端点 结论
AdminAuthController /api/admin/auth/* 实际类级前缀 /api/admin-auth(非 /api/admin/auth):POST /api/admin-auth/login、/login-by-password、/send-code、/info、/change-password、/reset-password、/update-info、/account-roles、/wechat-scan-qr、/wechat-scan-poll ✅ 端点齐全(1 处前缀差异见 §3)
StatsController /api/stats/* /api/stats:dashboard、overview、trend、revenue、traffic、membership、family/summary、child/overview、child-completion、family-completion、points/ranking、product-view ✅ 端点齐全

1.2 SC-A-02 报告解析中台(类型/聚类)

开工包候选 实测端点 结论
AdminReportParseController /api/admin/report-parse/* 实际类名 ReportParseAdminController:/api/admin/report-parse:list、types、types/save、types/delete、types/toggle、unknown-clusters、unknown-uploads、generate-type、fingerprints/list、fingerprints/save、fingerprints/delete、imports、imports/import、imports/approve、imports/reject、retry、dan/reparse、backfill-food ✅ 端点齐全(类名差异,非能力缺口)

1.3 SC-A-03 文章发布-审核

开工包候选 实测端点 结论
AdminArticleController /api/admin/articles/* /api/admin/articles:list、detail、create、update、delete、publish、{id}/publish、submit-review、audit、withdraw、re-draft、move、toggle-featured、backfill-tags、categories/list、categories/create、categories/update、categories/delete、comments/list、reading-records、upload/image、upload/video ✅ 端点齐全

1.4 SC-A-04 关系类型 CRUD ⚠

开工包候选 实测结论 结论
AdminRelationshipTypeController /api/admin/relationship-types/* 无此 Controller、无 /api/admin/relationship-types 路由。relationship_types 表已在迁移中 DROP(DatabaseInitializer 迁移 169),关系语义改由 family_relationships 表(迁移 41)承载,成员关系编辑走 FamilyMembersController /api/family/member/{add,update} + FamilyRelationshipService,无独立运营 CRUD 端点 ⚠ 无端点载体,需产品侧确认验收方式(member add/update 可承载关系写入,但无类型字典 CRUD)

1.5 SC-A-05 勋章配置 CRUD ⚠(回填:已存在)

开工包候选 实测端点 结论
「勋章/成就 admin 端点(须实测定位)」 BadgeController /api/badges:create、update、delete、all、list、detail、member/list、ranking/family、grant、favorite、statistics/member;AdminChallengeScoreConfigController /api/admin/challenge-score-config:list、update ✅ 确认存在(勋章 CRUD + 挑战分配置,与任务-激励批 SC-A-05 核验一致)

1.6 SC-A-06 供应商管理

开工包候选 实测端点 结论
AdminSupplyManageController;/api/admin/supply-hierarchy/* SupplyManageController /api/admin/supply-manage:list、detail、create、update、delete、add-role、remove-role、adjust-tier;SupplyHierarchyController /api/admin/supply-hierarchy:tree、my、parent、parent-chain、direct-children、all-children、set、remove、change/apply、change-requests、change/review;另 AdminSupplierController /api/admin/supplier:list、save、update、delete ✅ 端点齐全

1.7 SC-A-07 活动配置

开工包候选 实测端点 结论
活动 admin 端点;/api/admin/activity-checkins AdminActivityController /api/admin/activity:list、detail、audit、review、submit-review、withdraw、re-draft、backfill-tags;AdminActivityCheckinController /api/admin/activity-checkins:list、add、review、export ✅ 端点齐全

1.8 SC-A-08 知识库管理 ⚠(回填:已存在,控制器名不同)

开工包候选 实测端点 结论
AdminKnowledgeController(维度知识库) 无 AdminKnowledgeController;实际载体:KnowledgeBaseController /api/admin/knowledge-base(list、get、save、delete、upload-file、fetch-url、backfill-tags、bind-tags、bind-dimensions)+ KnowledgeBaseVectorController /api/admin/knowledge-base/vector(documents、stats、sync、delete-source、update-document)+ KnowledgeTagController /api/admin/knowledge-tag(list、save、delete)+ AdminUnifiedKnowledgeController /api/admin/knowledge-base/unified(overview、section、update、reset) ✅ 确认存在(载体为 KnowledgeBaseController 系,非开工包猜测类名)

1.9 SC-A-09 维度配置与知识库管理

开工包候选 实测端点 结论
DimensionAdminController /api/admin/dimension/*;DimensionRegistryController /api/dimension-registry/* DimensionAdminController /api/admin/dimension:data-source/list、data-source/save、data-source/delete、data-source/detail、norm/list、norm/save、norm/delete;DimensionRegistryController /api/dimension-registry:注册表查询;DimensionConfigController /api/admin/dimension-config:list、get、save、delete、tree ✅ 端点齐全

1.10 SC-A-10 数据迁移 / 参数校验 ⚠(回填:已存在)

开工包候选 实测端点 结论
迁移类端点 + DatabaseInitializer(非 HTTP,判载体) DataMigrationController /api/migration:run;MigrationController /api:migrate/guide-packages、migrate/knowledge-base-to-articles;参数校验/动态配置载体 SysConfigController /api/admin/config:list、update、all ✅ 确认存在(HTTP 载体 = 两个迁移 Controller + SysConfig;DatabaseInitializer 为启动期自动迁移,非 HTTP,作为补充载体)

1.11 SC-A-11 用户/家庭查询治理

开工包候选 实测端点 结论
AdminFamilyOverviewController;/api/admin/org/member/* AdminFamilyOverviewController(类级 /api/admin):families/{id}/overview、families/{id}/tasks;AdminOrgMemberController /api/admin/org/member:list、add、remove、change-type;AdminController /api/admin:users、users/create、user/search、users/{id}、users/{id}/update、users/{id}/delete、users/{id}/reset-password、families、families/{id}、families/{id}/update、families/{id}/delete、families/{id}/members、families/{id}/members/set-admin、children、children/{id}、children/{id}/update、children/{id}/adjust-points、guide/applications 等 ✅ 端点齐全

1.12 SC-A-12 订单/退款人工处理

开工包候选 实测端点 结论
AdminProductOrderController /api/admin/product/order/* /api/admin/product/order:list、detail、ship、update-express、refund/approve、refund/reject、close ✅ 端点齐全

1.13 SC-A-13 内容安全审核

开工包候选 实测端点 结论
AdminReviewCenterController /api/admin/review-center/* 实际类名 ReviewCenterController:/api/admin/review-center/summary(聚合待审计数:article/product/guide/vendor/butler/package/activity/registration/withdraw/refund/hierarchyChange/nutritionist/knowledge);文章审核走 AdminArticleController.audit + comments/list;活动审核走 AdminActivityController.audit ✅ 端点齐全(类名差异,非能力缺口)

1.14 SC-A-14 系统监控/告警 ⚠

开工包候选 实测端点 结论
监控端点(可能无 HTTP 载体 → 记缺口) 唯一相关端点 AdminSystemController /api/system/health:JVM uptime / 内存 / CPU / OS 运行状态探活。无告警规则管理、无监控大盘查询端点 ⚠ 端点载体不完整:仅状态探活(health),缺「告警配置/告警记录」类端点,需产品侧确认验收方式(是否以 health + 运维侧监控替代)

1.15 SC-A-15 操作审计日志 ⚠(回填:已存在,控制器为两个)

开工包候选 实测端点 结论
审计端点(须实测) OperationLogController /api/admin/logs:operations(分页查询操作日志)、recent;AdminAuditController /api/admin/audit:list ✅ 确认存在

1.16 SC-A-16 报告解析自学习/未知类型标注

开工包候选 实测端点 结论
AdminReportParseController(标注/学习链) ReportParseAdminController /api/admin/report-parse:types、types/save、types/delete、types/toggle、unknown-clusters、unknown-uploads、generate-type、fingerprints/list、fingerprints/save、fingerprints/delete、imports/import、imports/approve、imports/reject、retry、backfill-food、dan/reparse ✅ 端点齐全

1.17 SC-A-17 优惠券/活动配置管理

开工包候选 实测端点 结论
AdminCouponController /api/admin/coupon/* /api/admin/coupon:list、create、update、delete、toggle-status、issue、issue-family、grant-log、grant-user、family-coupons、family-coupon-usage、gift-transfers ✅ 端点齐全

1.18 SC-A-18 内容安全审核队列

开工包候选 实测端点 结论
AdminReviewCenterController(队列) ReviewCenterController /api/admin/review-center/summary:待审计数队列(13 类待审聚合);具体队列列表由各业务 admin list 端点提供(articles/list、activity/list、product/order/list、coupon/list 等) ✅ 端点齐全(队列计数 + 业务列表)

1.19 SC-A-19 账号注销/数据导出工单处理 ⚠

开工包候选 实测端点 结论
工单端点(可能缺 → 记缺口) 无运营工单处理端点。仅有用户侧自助端点:UserController:/api/user/deactivate(注销账号,AccountCleanupService.deactivateAccount)、/api/user/data-export(数据导出,AccountCleanupService.exportUserData)。无 admin 侧工单受理/审批/处理队列端点 ⚠ 无端点载体,需产品侧确认验收方式(用户自助注销/导出已实现,运营受理工单端点缺)

1.20 SC-A-20 限流/熔断配置 ⚠

开工包候选 实测端点 结论
配置类端点(须实测) 无 HTTP 配置端点。限流为代码内置:RateLimitInterceptor(Redis 滑动窗口,高频 10 次/秒、验证码 1 次/60 秒)+ WebConfig 注册;熔断内置于 AiGateway(超时 + Fallback)。阈值不可通过管理端配置 ⚠ 无端点载体,需产品侧确认验收方式(限流/熔断已实现为代码内置,运营侧无可配置端点)

1.21 SC-A-21 舌诊/情绪模型管理 ⚠

开工包候选 实测端点 结论
AdminInnatePortraitConfigController;舌诊模型 admin InnatePortraitConfigController /api/admin/innate-portrait-config:list、update、invalidate(先天画像来源权重配置);情绪模型 EmotionRecognitionController /api/mind/emotion:analyze、analyze-url(情绪识别,C 端调用);舌诊 TongueDiagnosisService 挂在 HealthReportController(/api/health/report/* 报告上传链内),无独立舌诊模型管理端点 ⚠ 端点载体部分存在:先天画像配置/情绪识别端点有,但「舌诊模型管理」无独立 admin 端点(模型配置内联在报告解析链路),需产品侧确认验收方式(是否以 innate-portrait-config + 报告链替代)

1.22 SC-A-22 精准营养知识库管理 ⚠(回填:已存在,控制器归属不同)

开工包候选 实测端点 结论
营养知识库 admin 端点 知识库数据载体 HealthKnowledgeBaseController /api/health/knowledge(非 admin 前缀,含 C 端查询 + 管理方法):add、update、delete、list、import、unified/*(overview、section、bacteria/query、bacteria/batch-query、food/query、indicator/query、indicator/category、nutrient/query、nutrient-standard/get、species-info/query、species-desc/query、genus-food-mapping/list、health-score/get、unified/import)、v3/*;管理侧补充 AdminFoodController /api/admin/foods:list、create、update、delete、detail、saveMonths ✅ 确认存在(知识库本体 + 食物管理双载体;注意知识库写入端点未挂在 /api/admin 下,权限粒度需测试侧核验)

1.23 SC-A-25 维度/权重/每日上限配置 CRUD 与生效

开工包候选 实测端点 结论
DimensionWeightController /api/admin/dimension-weight/*;AdminEnergyConfigController /api/admin/energy-config/* DimensionWeightController /api/admin/dimension-weight:list、save;AdminEnergyConfigController /api/admin/energy-config:overview、daily-limits、daily-limit-save、source-list、source-save、source-delete ✅ 端点齐全

1.26 SC-A-26 能量来源比例与归因权重治理

开工包候选 实测端点 结论
AdminEnergyConfigController /source-*;AdminEnergyRuleController /api/admin/energy-rule/* AdminEnergyConfigController /api/admin/energy-config:source-list、source-save、source-delete、overview、daily-limits、daily-limit-save;AdminEnergyRuleController /api/admin/energy-rule:list、dimensions、create、update、delete、toggle ✅ 端点齐全

1.27 SC-A-27 后台维护睡眠选项并同步小程序端(状态机内,仅登记映射)

开工包候选 实测端点 结论
sleep.config.tags(YELLOW,实现已在 origin/cfclub) 配置载体 SysConfigController /api/admin/config:list、update、all(管理端维护 sleep.config.tags);分发载体 PublicConfigController /api/config/public/value(小程序端拉取 sleep.quality.tags);HealthSleepController /api/health/sleep:list、create ✅ 已在状态机(YELLOW),本批只登记 SC↔键映射,不新建任务

2. 建议能力键映射(SC → 能力键,按 O-2 方案 A)

SC 场景标题 建议能力键 端点核验结论 备注
SC-A-01 管理端登录 + 全局统计 admin.auth.login ✅ 端点存在 登记映射,不新建任务(已在状态机)
SC-A-02 报告解析中台(类型/聚类) admin.reportParse.manage ✅ 端点存在 类名 ReportParseAdminController
SC-A-03 文章发布-审核 admin.article.review ✅ 端点存在
SC-A-04 关系类型 CRUD admin.relationshipType.crud ⚠ 无端点载体 需产品侧确认验收方式
SC-A-05 勋章配置 CRUD admin.medal.config ✅ 端点存在 勋章 CRUD + 挑战分配置
SC-A-06 供应商管理 admin.supplier.manage ✅ 端点存在 三 Controller 载体
SC-A-07 活动配置 admin.activity.config ✅ 端点存在
SC-A-08 知识库管理 admin.knowledge.manage ✅ 端点存在 载体 KnowledgeBaseController 系
SC-A-09 维度配置与知识库管理 admin.dimension.config ✅ 端点存在
SC-A-10 数据迁移 / 参数校验 admin.data.migrate ✅ 端点存在 迁移 + SysConfig 双载体
SC-A-11 用户/家庭查询治理 admin.userGovernance ✅ 端点存在
SC-A-12 订单/退款人工处理 admin.order.manual ✅ 端点存在
SC-A-13 内容安全审核 admin.content.audit ✅ 端点存在 ReviewCenter + 业务 audit
SC-A-14 系统监控/告警 admin.monitor.alarm ⚠ 端点载体不完整 仅 health 探活,无告警管理端点
SC-A-15 操作审计日志 admin.auditLog.view ✅ 端点存在 logs/operations + audit/list
SC-A-16 报告解析自学习/未知类型标注 admin.parse.label ✅ 端点存在
SC-A-17 优惠券/活动配置管理 admin.coupon.config ✅ 端点存在
SC-A-18 内容安全审核队列 admin.content.audit(复用 A-13 键) ✅ 端点存在 建议与 A-13 同键或建 admin.content.auditQueue,定稿时取舍
SC-A-19 账号注销/数据导出工单处理 admin.ticket.handle ⚠ 无端点载体 用户侧端点存在,运营工单端点缺
SC-A-20 限流/熔断配置 admin.ratelimit.config ⚠ 无端点载体 代码内置拦截器
SC-A-21 舌诊/情绪模型管理 admin.mind.model ⚠ 端点载体部分存在 先天画像配置/js识别有,舌诊模型独立端点缺
SC-A-22 精准营养知识库管理 admin.nutrition.kb ✅ 端点存在 知识库 + Foods 双载体
SC-A-25 维度/权重/每日上限配置 CRUD 与生效 energy.viewConfig ✅ 端点存在 同键勿重复(与 EVD-5 五维能量批同键)
SC-A-26 能量来源比例与归因权重治理 energy.viewConfig(或 energy.ruleConfig,定稿时取舍) ✅ 端点存在 与 A-25 同源配置面
SC-A-27 后台维护睡眠选项并同步小程序端 sleep.config.tags ✅ 已在状态机 登记映射,不新建任务(已在状态机 YELLOW)

⚠ 键去重提示:admin.auth.login、sleep.config.tags 已在状态机,本批只登记映射不新建任务;admin.content.audit 若 A-13/A-18 合并用一键,则只建一个任务(建议 A-18 复用 A-13 键,审核队列为同一能力的视图)。


3. 字面路径/控制器归属差异清单(非能力缺口,实操对齐项)

# 开工包声明 实际实现 影响 SC 处置建议
1 AdminAuthController /api/admin/auth/* 类级前缀 /api/admin-auth/*(AdminAuthController) SC-A-01 契约接口范围改用 /api/admin-auth/*(前端已按此调用,勿按开工包路径断言)
2 AdminReportParseController 实际类名 ReportParseAdminController(/api/admin/report-parse) SC-A-02/A-16 --design 标注真实类名
3 AdminKnowledgeController 不存在;实际 KnowledgeBaseController + KnowledgeBaseVectorController + KnowledgeTagController + AdminUnifiedKnowledgeController SC-A-08 契约接口范围对齐到 /api/admin/knowledge-base/**
4 AdminReviewCenterController 实际类名 ReviewCenterController SC-A-13/A-18 --design 标注真实类名
5 营养知识库「admin 端点」 知识库本体在 /api/health/knowledge(非 admin 前缀);admin 侧仅 AdminFoodController /api/admin/foods SC-A-22 契约接口范围明确双载体;知识库写入端点的权限粒度留待测试侧补权限流核验

4. 实现缺口清单(无端点载体 / 载体不完整,需产品侧确认)

# SC 场景标题 建议能力键 缺口描述 处置建议
1 SC-A-04 关系类型 CRUD admin.relationshipType.crud relationship_types 表已废弃 DROP;无独立字典 CRUD 端点;关系语义由 family_relationships + FamilyMembersController.update/add 承载 无端点载体,需产品侧确认验收方式:若需字典管理,新增 AdminRelationshipTypeController(先产品确认);或改以成员关系编辑验证
2 SC-A-14 系统监控/告警 admin.monitor.alarm 仅 /api/system/health(JVM/内存/CPU 探活),无告警规则/告警记录/监控大盘端点 无端点载体,需产品侧确认验收方式:若仅需探活,health 可验收;若需告警治理,待实现
3 SC-A-19 账号注销/数据导出工单处理 admin.ticket.handle 用户侧自助注销/导出已有(/api/user/deactivate、/api/user/data-export),但无运营工单受理/审批/处理队列 admin 端点 无端点载体,需产品侧确认验收方式:先产品确认工单流程是否必须,若必须则新增 admin 工单端点
4 SC-A-20 限流/熔断配置 admin.ratelimit.config 限流为代码内置 RateLimitInterceptor(常量阈值),熔断内置于 AiGateway,均无可配置端点 无端点载体,需产品侧确认验收方式:若阈值可接受硬编码则测试侧以现状验收;若需运营可调,待实现配置端点
5 SC-A-21 舌诊/情绪模型管理 admin.mind.model 先天画像配置 /api/admin/innate-portrait-config(list/update/invalidate)存在;情绪识别 /api/mind/emotion 存在;舌诊模型无独立 admin 管理端点(模型配置内联在报告解析链) 端点载体部分存在:产品侧确认验收方式——以先天画像配置 + 报告链验收,或补舌诊模型管理端点

缺口统计:5 个(完整无载体 3 个:A-04/A-19/A-20;载体不完整 2 个:A-14/A-21;A-21 部分载体可议)。


5. 核对结论与后续动作

  1. 防假 RED 结论:25 个 SC 中 21 个端点存在(16 齐全 + 5 归属/路径差异已回填),4 个无完整端点载体(A-04/A-14/A-19/A-20;A-21 部分)。全部 ⚠ 待核实项已实测回填,无假定包路径结论。
  2. 定稿前置:§3 的 5 处归属/路径差异,契约编写时直接采用真实端点;§4 的 5 个缺口按 O-7 标注「无端点载体,需产品侧确认验收方式」,不先行补实现。
  3. 能力键映射:25 个 SC 建议键见 §2;admin.auth.login、sleep.config.tags 已在状态机,本批仅登记映射不新建任务;energy.viewConfig 与 EVD-5 批同键不重复;admin.content.audit A-13/A-18 建议同键合一。
  4. 台账回填:本契约核对文档 + API_REFERENCE 增补段落合入 origin/cfclub 后,研发负责人登记 TR-13 转测试侧(补 admin 端点 MockMvc 契约 JUnit + 非 admin token → 403 权限流)。

核对依据:origin/cfclub @ 802cbbce4(开工包 admin-ops-kickoff-20261107.md)+ 各 Controller 源码 @ 同 sha;核对人:TDD 契约核对会话 EVD-11(OpenCode)。本批仅新增契约文档(spec + API_REFERENCE 增补),未修改业务代码、测试文件、DB 迁移。