Files
cursor/plans/OTA admin logic split-921d6aef.plan.md
ray zhou 2dd9f17da9 ok
2026-06-29 14:51:55 +08:00

3.1 KiB
Raw Permalink Blame History


todos:

  • id: "move-logic" content: "将 FirmwareLogic、UpgradeRecordQueryLogic 迁到 app/admin/logicnamespace 改为 app\admin\logic" status: pending
  • id: "move-validate" content: "将 FirmwareCreateValidate、FirmwareListValidate、UpgradeRecordListValidate 迁到 app/admin/validatenamespace 改为 app\admin\validate" status: pending
  • id: "update-controllers" content: "更新 FirmwareController、UpgradeRecordController 的 use 语句指向新命名空间" status: pending
  • id: "update-doc" content: "同步 docs/requirements/OTA-admin.md §9 实现落点路径" status: pending
  • id: "verify" content: "跑 php -l 与后端门禁脚本校验迁移结果" status: pending isProject: false

OTA 后台专属 Logic/Validate 按应用拆分

背景与判断

这是 webman 多应用结构,控制器已按应用拆(app/admin/controller/app/internal/controller/),但 Logic/Validate 仍堆在共用目录。FirmwareLogic / UpgradeRecordQueryLogic 与 3 个 Validate 只被 app/admin/controller/* 使用,属后台专属,挪到 app/admin/ 下符合现有约定。app\ → ./app 的 PSR-4 映射使 app\admin\logic / app\admin\validate 自动加载,无需改 composer。

迁移清单(仅改 namespace + 路径,类体不动)

  • Logicnamespace app\logicapp\admin\logic
    • app/logic/FirmwareLogic.phpapp/admin/logic/FirmwareLogic.php
    • app/logic/UpgradeRecordQueryLogic.phpapp/admin/logic/UpgradeRecordQueryLogic.php
  • Validatenamespace app\validateapp\admin\validate
    • app/validate/FirmwareCreateValidate.phpapp/admin/validate/FirmwareCreateValidate.php
    • app/validate/FirmwareListValidate.phpapp/admin/validate/FirmwareListValidate.php
    • app/validate/UpgradeRecordListValidate.phpapp/admin/validate/UpgradeRecordListValidate.php

引用更新

  • app/admin/controller/FirmwareController.phpuse app\logic\FirmwareLogic;use app\admin\logic\FirmwareLogic;use app\validate\FirmwareCreateValidate; / FirmwareListValidate;app\admin\validate\...
  • app/admin/controller/UpgradeRecordController.phpuse app\logic\UpgradeRecordQueryLogic;app\admin\logic\...use app\validate\UpgradeRecordListValidate;app\admin\validate\...

不改动

  • 内部专属 OtaCheckLogicOtaReportLogic 与进程专属 OtaRecordExpireLogic 保留在 app/logic/(本次范围只动后台 CRUD
  • DTOOtaCheckDTO/OtaReportDTO、Model、tests 不涉及这些类,无需改。

文档同步

  • docs/requirements/OTA-admin.md §9 实现落点:把 app/logic/FirmwareLogic.phpapp/logic/UpgradeRecordQueryLogic.php 改为 app/admin/logic/...app/validate/* 改为 app/admin/validate/*

收尾校验

  • 迁移后对 5 个新文件与 2 个控制器跑容器内 php -l,并执行后端门禁脚本 ~/.cursor/skills/slot-backend-completion-report/scripts/report.sh,确认删除的旧类名不在其它已改文件中出现。