Files
yinjianm e847252e12 fix(api): 修复节点流量限额共享统计与父子显隐联动
统一节点流量统计与限额展示口径,节点详情新增昨日流量,
并让今日、昨日和本月使用清晰的半开时间窗口聚合

同 machine_id 或同 host 的节点现在共享当前账期已用流量,
管理端优先使用后端 traffic_limit_snapshot 展示月额度状态,
mi-node 下发的 current_used 也改为共享账期统计

新增 parent_auto_hidden 标记与父节点显隐联动服务,父节点
因自动上线或流量限额变为不可展示时会隐藏当前显示的子节点,
恢复时只恢复这批自动隐藏的子节点,避免覆盖手动操作
2026-04-29 02:24:57 +08:00

3.7 KiB

任务清单: shared-node-traffic-limit

@status: completed | 2026-04-29 01:56

@feature: shared-node-traffic-limit
@created: 2026-04-29
@status: completed
@mode: R2

LIVE_STATUS

{"status":"completed","completed":5,"failed":0,"pending":0,"total":5,"percent":100,"current":"开发实施、验证和知识库同步完成","updated_at":"2026-04-29 02:08:00"}

进度概览

完成 失败 跳过 总数
5 0 0 5

任务列表

1. 后端共享限额口径

  • [√] 1.1 修改 app/Services/ServerTrafficLimitService.php

    • 预期变更: 新增共享范围解析、当前账期起点计算、共享账期用量聚合和批量快照输出;buildNodeConfig()current_used 使用共享账期口径。
    • 完成标准: 同 machine_id 或同 host 节点可得到一致 used;不同范围节点互不累加;未启用限额仍返回 disabled。
    • 验证方式: vendor/bin/phpunit tests/Unit/ServerTrafficLimitServiceTest.php,并执行 php -l app/Services/ServerTrafficLimitService.php
    • depends_on: []
  • [√] 1.2 修改 app/Http/Controllers/V2/Admin/Server/ManageController.php

    • 预期变更: getNodes 批量生成并返回 traffic_limit_snapshot;保留 traffic_stats 现有自然日/自然月统计。
    • 完成标准: 响应中每个节点包含可选快照字段;没有快照时不影响原节点列表返回。
    • 验证方式: php -l app/Http/Controllers/V2/Admin/Server/ManageController.php,并用相关单元测试覆盖窗口不回归。
    • depends_on: [1.1]

2. 管理端展示兼容

  • [√] 2.1 修改 admin-frontend/src/types/api.d.ts

    • 预期变更: 为节点接口补充 AdminNodeTrafficLimitSnapshottraffic_limit_snapshot 类型。
    • 完成标准: TypeScript 能识别新字段,旧字段类型不被破坏。
    • 验证方式: 运行可用的前端类型检查或构建命令;不可用时至少静态检查引用。
    • depends_on: [1.2]
  • [√] 2.2 修改 admin-frontend/src/utils/nodes.ts

    • 预期变更: getNodeTrafficLimitDetail() 优先使用 traffic_limit_snapshot 的 limit、used、status 和 reset 时间,缺失时回退到 metrics / u + d
    • 完成标准: 有快照时展示共享账期用量;无快照时展示行为与旧版一致。
    • 验证方式: 前端类型检查或构建;人工核对逻辑分支。
    • depends_on: [2.1]

3. 测试与知识库

  • [√] 3.1 修改 tests/Unit/ServerTrafficLimitServiceTest.php.helloagents/modules/node-traffic-limit.md.helloagents/modules/admin-frontend.md
    • 预期变更: 增加共享 host / machine 账期用量测试;更新知识库记录共享限额口径和管理端快照字段。
    • 完成标准: 测试覆盖同范围聚合、不同范围隔离、账期起点;知识库与代码行为一致。
    • 验证方式: 运行后端测试和语法检查;检查知识库描述不再声称限额只按单节点 u/d
    • depends_on: [1.1, 1.2, 2.2]

执行日志

时间 任务 状态 备注
2026-04-29 02:08 3.1 completed 已补充共享 host / machine / 账期起点 / runtime suspended 测试,并完成知识库同步
2026-04-29 02:06 验证 completed PHPUnit 10 tests / 44 assertions 通过;admin-frontend 构建通过
2026-04-29 02:03 2.1-2.2 completed 管理端类型与月额度展示已优先消费 traffic_limit_snapshot
2026-04-29 01:58 1.1-1.2 completed 后端已生成共享账期快照并接入 server/manage/getNodes
2026-04-29 01:32 DESIGN in_progress 已完成方案设计与任务拆分

执行备注

  • 当前执行模式: INTERACTIVE。
  • 不新增数据库字段,不执行生产数据操作。