Files
junhong_cmp_fiber/internal/domain/carrierthreshold/lock.go
break 15bbb953db
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 13m29s
fix(通道流量阈值): AUG26-011 修复失败/未知结果收敛、锁定 carrier 缺失出路与审计回归
2026-09-16 16:41:25 +08:00

51 lines
2.3 KiB
Go
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.
package carrierthreshold
// 周期锁整行生命周期取值,与 tb_carrier_traffic_threshold_lock.status 的 CHECK 一致。
const (
// LockStatusLocked 表示该卡在该计费周期内持有通道阈值停机锁,周期内拒绝一切复机。
LockStatusLocked = "locked"
// LockStatusUnlocked 表示已跨期解除通道阈值锁,锁行保留为历史事实。
LockStatusUnlocked = "unlocked"
)
// 停复机子任务状态取值,与 stop_status / resume_status 的 CHECK 一致。
const (
// TaskStatusPending 表示子任务待提交,达量判定写锁时停机子任务处于该状态。
TaskStatusPending = "pending"
// TaskStatusSubmitted 表示子任务已提交待确认,认领成功后处于该状态。
TaskStatusSubmitted = "submitted"
// TaskStatusConfirmed 表示运营商调用或状态查询已明确成功。
TaskStatusConfirmed = "confirmed"
// TaskStatusFailed 表示运营商明确失败。
TaskStatusFailed = "failed"
// TaskStatusUnknown 表示结果未知,交由恢复扫描查询收敛。
TaskStatusUnknown = "unknown"
)
// 异常标记取值,与 anomaly_flag 的 CHECK 一致。
const (
// AnomalyFlagNone 表示无需人工核对。
AnomalyFlagNone = 0
// AnomalyFlagManual 表示查询窗口超期或失败无法自动确认,已转人工核对并退出自动扫描。
AnomalyFlagManual = 1
)
// UnresolvedTaskStatuses 返回仍需由恢复扫描查询运营商状态收敛的子任务状态集合。
//
// 语义submitted 表示已提交待确认unknown 表示结果未知failed 表示调用明确失败但运营商侧
// 状态仍可能已生效(例如请求已到达而响应超时/异常)——三者都必须继续用只读状态查询确认,
// 因此恢复扫描的查询谓词与超期判定共用本集合,避免「失败或结果未知」的锁行退出收敛链路。
// pending 表示尚未对运营商发起过调用confirmed 是终态,都不属于本集合。
func UnresolvedTaskStatuses() []string {
return []string{TaskStatusSubmitted, TaskStatusUnknown, TaskStatusFailed}
}
// IsUnresolvedTaskStatus 判断子任务状态是否仍需恢复扫描收敛。
func IsUnresolvedTaskStatus(status string) bool {
switch status {
case TaskStatusSubmitted, TaskStatusUnknown, TaskStatusFailed:
return true
}
return false
}