Files
hi-server/pr-body-hif-21.md
T
shanshanzhong147 c39bfd39dd 修复(#21): 禁止通用订单状态写入claimed (#20)
* 修复(#21): 禁止通用订单状态写入claimed

Co-authored-by: multica-agent <github@multica.ai>

* 文档(#21): 补充PR说明

Co-authored-by: multica-agent <github@multica.ai>

---------

Co-authored-by: multica-agent <github@multica.ai>
2026-06-11 02:47:48 -07:00

58 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 关联 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 双向验证
- [ ] (如涉及 APIcurl / Postman 验证命令贴在下面
<!-- 贴 curl 或测试输出 -->
```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 规范(`修复/新功能/重构/文档/配置(#<num>): ...`
- [x] 分支命名 `fix/<num>-…` / `feat/<num>-…` / `chore/…`
- [x] 目标分支 = `internal`
- [x] 改动 scope 与 Issue 描述一致,无 scope creep
- [x] **无无关代码改动**(架构师红线)
- [x] 无密钥/凭证泄露
- [ ] CI 全绿
- [ ] 测试工程师已验收(如涉及业务逻辑)