c39bfd39dd
* 修复(#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>
2.2 KiB
2.2 KiB
关联 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两个保留状态的拒绝行为。
测试计划
go build ./...通过go vet ./...通过go test -race ./... -count=1通过- golangci-lint 通过
- 新增/修改的逻辑有对应单测覆盖
- (如涉及 DB 变更)migration up/down 双向验证
- (如涉及 API)curl / Postman 验证命令贴在下面
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 自检清单
- PR 标题符合 commitlint 规范(
修复/新功能/重构/文档/配置(#<num>): ...) - 分支命名
fix/<num>-…/feat/<num>-…/chore/… - 目标分支 =
internal - 改动 scope 与 Issue 描述一致,无 scope creep
- 无无关代码改动(架构师红线)
- 无密钥/凭证泄露
- CI 全绿
- 测试工程师已验收(如涉及业务逻辑)