Files
junhong_cmp_fiber/pkg/constants/polling_pause.go
邹进 7ddb9312e3
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m35s
feat: 不轮询清单与批量开关轮询
- 新增不轮询清单 tb_card_polling_pause(迁移 000256 补写存量),所有改 enable_polling 的入口同事务写清单
- 卡、设备勾选批量开关轮询(单次 500,逐项结果,开启跳过风险停机与已销户)与 CSV 文件导入
- 订单套餐生效、改有效期后自动恢复轮询并按规则评估复机
- 不轮询清单查询与导出;卡、设备列表与导出增加是否轮询
- 失败告警停机被拒视图、导出与批量关闭轮询;开关轮询影响说明

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 03:07:20 +09:00

133 lines
4.9 KiB
Go
Raw Permalink 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 constants
// 不轮询清单(tb_card_polling_pause,add-polling-pause-list-and-batch-toggle)。
// 不轮询清单状态。
const (
PollingPauseStatusClosed = 1 // 已关闭
PollingPauseStatusRestored = 2 // 已恢复
)
// PollingPauseStatusName 返回不轮询清单状态名称。
func PollingPauseStatusName(status int) string {
switch status {
case PollingPauseStatusClosed:
return "已关闭"
case PollingPauseStatusRestored:
return "已恢复"
default:
return ""
}
}
// 轮询开关来源(关闭来源与恢复来源共用)。
const (
PollingToggleSourceSingle = "single" // 单资产接口
PollingToggleSourceBatch = "batch" // 勾选批量
PollingToggleSourceImport = "import" // 文件导入
PollingToggleSourceRiskAuto = "risk_auto" // 风险停机或已销户自动关闭
PollingToggleSourceCascade = "cascade" // 设备级联
PollingToggleSourceOrder = "order" // 支付或下单生效
PollingToggleSourceExpiryChange = "expiry_change" // 改有效期
PollingToggleSourceAlert = "alert" // 停机被拒告警处理
PollingToggleSourceHistory = "history" // 历史数据(上线时补写)
)
// PollingToggleSources 返回全部轮询开关来源(筛选校验用)。返回新切片。
func PollingToggleSources() []string {
return []string{PollingToggleSourceSingle, PollingToggleSourceBatch, PollingToggleSourceImport, PollingToggleSourceRiskAuto,
PollingToggleSourceCascade, PollingToggleSourceOrder, PollingToggleSourceExpiryChange, PollingToggleSourceAlert, PollingToggleSourceHistory}
}
// PollingToggleSourceName 返回轮询开关来源名称。
func PollingToggleSourceName(source string) string {
switch source {
case PollingToggleSourceSingle:
return "单资产接口"
case PollingToggleSourceBatch:
return "勾选批量"
case PollingToggleSourceImport:
return "文件导入"
case PollingToggleSourceRiskAuto:
return "风险停机或已销户自动关闭"
case PollingToggleSourceCascade:
return "设备级联"
case PollingToggleSourceOrder:
return "支付或下单生效"
case PollingToggleSourceExpiryChange:
return "改有效期"
case PollingToggleSourceAlert:
return "停机被拒告警处理"
case PollingToggleSourceHistory:
return "历史数据"
default:
return ""
}
}
// PollingBatchMaxSize 是勾选批量开关轮询的单次上限。
const PollingBatchMaxSize = 500
// 批量与导入逐项结果状态。
const (
PollingToggleItemSuccess = 1 // 成功
PollingToggleItemSkipped = 2 // 跳过(已是目标状态、风险停机或已销户不能开启)
PollingToggleItemFailed = 3 // 失败
PollingToggleItemForbidden = 4 // 无权限或资产不存在
)
// PollingToggleItemStatusName 返回逐项结果状态名称。
func PollingToggleItemStatusName(status int) string {
switch status {
case PollingToggleItemSuccess:
return "成功"
case PollingToggleItemSkipped:
return "跳过"
case PollingToggleItemFailed:
return "失败"
case PollingToggleItemForbidden:
return "无权限或资产不存在"
default:
return ""
}
}
// PollingToggleImpactDisable 关闭轮询的影响说明(供前端确认框展示)。
var PollingToggleImpactDisable = []string{
"关闭后不再查询上游卡状态、流量与实名",
"流量用完、实名不满足时不自动停机;套餐激活、流量重置后不自动复机",
"套餐到期、退款后无可用套餐时仍会自动停机",
"订单套餐生效、后台修改有效期后资产有生效套餐时,会自动恢复轮询并按规则复机",
"人工停机与人工复机照常可用",
"设备关闭时,设备下所有卡同样适用",
}
// PollingToggleImpactEnable 开启轮询的影响说明。
var PollingToggleImpactEnable = []string{
"开启后按轮询配置查询上游卡状态、流量与实名",
"满足停机或复机条件时按规则自动停复机,人工停机不享有豁免",
"网关扩展状态为风险停机或已销户的卡不能开启轮询",
"设备开启时,设备下非风险停机、非已销户的卡同样开启",
}
// 轮询开关文件导入。
const (
// StoragePurposePollingStatusImport 轮询开关导入 CSV 上传用途。
StoragePurposePollingStatusImport = "polling_status_import"
// PollingStatusImportStoragePrefix 导入文件对象存储 Key 前缀。
PollingStatusImportStoragePrefix = "polling-status-imports"
// TaskTypePollingStatusImport 轮询开关文件导入 Worker 任务类型。
TaskTypePollingStatusImport = "polling:status_import"
// PollingStatusImportMaxRows 单个导入文件最大数据行数。
PollingStatusImportMaxRows = 50000
)
// 导出场景。
const (
ExportTaskScenePollingPause = "polling_pause"
ExportTaskScenePollingStopRefusedAlert = "polling_stop_refused_alert"
)
// PollingAlertViewStopRefused 是失败告警列表的"停机被拒"视图。
const PollingAlertViewStopRefused = "stop_refused"