All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 49s
45 lines
1.9 KiB
Markdown
45 lines
1.9 KiB
Markdown
# 轮询触发日志状态常量规范
|
||
|
||
## ADDED Requirements
|
||
|
||
### Requirement: 轮询手动触发日志状态常量
|
||
|
||
系统应在 `pkg/constants/polling.go` 中定义轮询手动触发日志的四种状态常量,避免硬编码字符串。
|
||
|
||
**常量定义**:
|
||
- `PollingManualTriggerStatusPending = "pending"`
|
||
- `PollingManualTriggerStatusProcessing = "processing"`
|
||
- `PollingManualTriggerStatusCompleted = "completed"`
|
||
- `PollingManualTriggerStatusCancelled = "cancelled"`
|
||
|
||
#### Scenario: 轮询触发日志记录使用常量
|
||
|
||
- **WHEN** 系统记录轮询手动触发日志(插入、更新状态)
|
||
- **THEN** 系统使用 `constants.PollingManualTriggerStatusPending` 等常量,而不是直接写字符串 `"pending"`
|
||
|
||
#### Scenario: 轮询触发日志查询使用常量
|
||
|
||
- **WHEN** 系统查询轮询日志(按状态筛选、状态转移判断等)
|
||
- **THEN** 系统使用常量进行比较,而不是硬编码 `status == "pending"`
|
||
|
||
#### Scenario: 常量修改时自动重构
|
||
|
||
- **WHEN** 业务要求修改某个状态值(如 `"pending"` → `"awaiting"`)
|
||
- **THEN** 开发者修改 `pkg/constants/polling.go` 中的常量定义
|
||
- **THEN** IDE 自动检测所有使用该常量的代码,支持一键重构替换
|
||
- **THEN** 无需手动搜索和替换散落在各文件中的硬编码字符串
|
||
|
||
### Requirement: 轮询触发日志字段描述
|
||
|
||
轮询手动触发日志模型(`tb_polling_manual_trigger_log`)应包含 `status` 字段,并在 DTO 中加入 `status_name` 文字字段。
|
||
|
||
#### Scenario: 查询轮询触发日志返回状态文本
|
||
|
||
- **WHEN** API 返回轮询手动触发日志列表(`GET /api/admin/polling/manual-triggers`)
|
||
- **THEN** 响应中的 `status` 字段(int)对应状态常量值
|
||
- **THEN** 响应中的 `status_name` 字段(string)显示该状态的中文描述
|
||
- `"pending"` → `"待处理"`
|
||
- `"processing"` → `"处理中"`
|
||
- `"completed"` → `"已完成"`
|
||
- `"cancelled"` → `"已取消"`
|