## 关联 Issue Closes HIF-21 ## 改动摘要 禁止 `PUT /v1/admin/order/status` 通过通用改状态入口把订单写成 `status=6`(claimed)或 `status=7`(refunded)。 这两个状态分别保留给激活 worker 临时 claim 流程和专用退款流程,避免后台或旧前端绕过退款副作用只改订单状态。 ## 改动细节 - `internal/logic/admin/order/updateOrderStatusLogic.go`:在入口校验中同时拒绝 `status=6` 和 `status=7`,统一返回 `OrderStatusError`。 - `internal/logic/admin/order/updateOrderStatusLogic_test.go`:扩充单测,覆盖通用改状态接口对 `claimed` / `refunded` 两个保留状态的拒绝行为。 ## 测试计划 - [x] `go build ./...` 通过 - [x] `go vet ./...` 通过 - [ ] `go test -race ./... -count=1` 通过 - [ ] golangci-lint 通过 - [x] 新增/修改的逻辑有对应单测覆盖 - [ ] (如涉及 DB 变更)migration up/down 双向验证 - [ ] (如涉及 API)curl / Postman 验证命令贴在下面 ```bash go test ./internal/logic/admin/order/... ok github.com/perfect-panel/server/internal/logic/admin/order 4.224s go test ./... # 业务相关包通过;tests/acceptance 因 staging https://tapi.hifast.biz 请求超时失败 # FAIL: TestPublicSmoke/error_path_missing_auth # GET https://tapi.hifast.biz/v1/public/user/info: context deadline exceeded golangci-lint run # 当前基线存在与本次改动无关的历史问题,例如: # pkg/updater/updater.go:301 errcheck # internal/logic/admin/group/exportGroupResultLogic.go:110 errcheck # pkg/proc/shutdown.go:19 unused ``` ## 风险 / 回滚 - 风险较低:仅收紧 admin 通用改状态接口的允许输入,不改退款逻辑、不改队列状态流转。 - 若需回滚,直接回退本 PR 即可;不会涉及数据迁移或额外清理。 ## Reviewer 自检清单 - [x] PR 标题符合 commitlint 规范(`修复/新功能/重构/文档/配置(#): ...`) - [x] 分支命名 `fix/-…` / `feat/-…` / `chore/…` - [x] 目标分支 = `internal` - [x] 改动 scope 与 Issue 描述一致,无 scope creep - [x] **无无关代码改动**(架构师红线) - [x] 无密钥/凭证泄露 - [ ] CI 全绿 - [ ] 测试工程师已验收(如涉及业务逻辑)