All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m26s
161 lines
7.3 KiB
Go
161 lines
7.3 KiB
Go
package constants
|
|
|
|
import "time"
|
|
|
|
// 卡实名观测来源
|
|
const (
|
|
CardObservationSourcePolling = "polling" // 周期轮询
|
|
CardObservationSourceManualSync = "manual_sync" // 手动同步
|
|
CardObservationSourceManualOverride = "manual_override" // 人工纠偏
|
|
CardObservationSourceCarrierCallback = "carrier_callback" // 运营商回调
|
|
CardObservationSourceBusinessEvent = "business_event" // 业务成功后的观测
|
|
)
|
|
|
|
// 卡观测事件序列同步类型。
|
|
const (
|
|
CardObservationSyncTypeRealname = "realname" // 实名状态
|
|
CardObservationSyncTypeTraffic = "traffic" // 流量读数
|
|
CardObservationSyncTypeNetwork = "network" // 网络状态
|
|
CardObservationSyncTypeDeviceInfo = "device_info" // 设备信息
|
|
)
|
|
|
|
// 卡观测事件序列资源类型。
|
|
const (
|
|
CardObservationResourceTypeCard = "iot_card" // IoT 卡
|
|
CardObservationResourceTypeDevice = "device" // 设备
|
|
)
|
|
|
|
// 卡观测事件序列执行参数。
|
|
const (
|
|
CardObservationSeriesAttemptCount = 3 // 每个序列固定尝试次数
|
|
CardObservationSeriesTTL = 7 * time.Minute // 活跃序列覆盖最后一次任务及缓冲
|
|
CardObservationSeriesResultTTL = 24 * time.Hour // 尝试幂等与提前完成结果保留时间
|
|
CardObservationGatewayLockTTL = 16 * time.Minute // 覆盖 300 秒超时、两次网络重试及安全余量
|
|
CardObservationGatewayMinInterval = 10 * time.Second // 未配置时的运营商最小请求间隔
|
|
)
|
|
|
|
// CardObservationAttemptDelay 返回固定的立即、3 分钟、5 分钟阶梯延迟。
|
|
func CardObservationAttemptDelay(attempt int) time.Duration {
|
|
switch attempt {
|
|
case 1:
|
|
return 0
|
|
case 2:
|
|
return 3 * time.Minute
|
|
case 3:
|
|
return 5 * time.Minute
|
|
default:
|
|
return 0
|
|
}
|
|
}
|
|
|
|
// 卡观测副作用消费状态
|
|
const (
|
|
CardObservationEffectStatusPending = 0 // 等待处理
|
|
CardObservationEffectStatusProcessing = 1 // 正在处理或结果未知
|
|
CardObservationEffectStatusDailySaved = 2 // 日流量缓冲已记录
|
|
CardObservationEffectStatusDeducted = 3 // 套餐流量已扣减
|
|
CardObservationEffectStatusCompleted = 4 // 全部副作用已完成
|
|
)
|
|
|
|
// 卡观测副作用类型
|
|
const (
|
|
CardObservationEffectTypeTrafficIncrement = "traffic_increment" // 流量正增量副作用
|
|
)
|
|
|
|
// Gateway 轮询 Integration Log 操作编码。
|
|
const (
|
|
IntegrationProviderGateway = "gateway" // Gateway 外部系统
|
|
IntegrationOperationGatewayRealname = "query_realname_status" // 查询实名状态
|
|
IntegrationOperationGatewayTraffic = "query_flow" // 查询流量
|
|
IntegrationOperationGatewayNetwork = "query_card_status" // 查询网络状态
|
|
IntegrationOperationGatewayDeviceInfo = "query_device_info" // 查询设备信息
|
|
IntegrationOperationGatewaySpeedTier = "set_speed_tier" // 设置或恢复固定限速档位
|
|
)
|
|
|
|
// Gateway 固定限速档位编码。
|
|
const (
|
|
GatewaySpeedTierRestore = -1 // 恢复不限速
|
|
GatewaySpeedTierZero = 0 // 限速为 0kbps
|
|
GatewaySpeedTier128K = 1 // 限速为 128Kbps
|
|
GatewaySpeedTier512K = 2 // 限速为 512Kbps
|
|
GatewaySpeedTier1M = 3 // 限速为 1Mbps
|
|
GatewaySpeedTier2M = 4 // 限速为 2Mbps
|
|
GatewaySpeedTier10M = 5 // 限速为 10Mbps
|
|
GatewaySpeedTier20M = 6 // 限速为 20Mbps
|
|
GatewaySpeedTier50M = 7 // 限速为 50Mbps
|
|
GatewaySpeedTier100M = 8 // 限速为 100Mbps
|
|
)
|
|
|
|
// IsGatewaySpeedTier 判断编码是否为系统允许的固定限速档位。
|
|
func IsGatewaySpeedTier(code int) bool {
|
|
return code >= GatewaySpeedTierRestore && code <= GatewaySpeedTier100M
|
|
}
|
|
|
|
// GetGatewaySpeedTierName 返回固定限速档位中文名称。
|
|
func GetGatewaySpeedTierName(code int) string {
|
|
switch code {
|
|
case GatewaySpeedTierRestore:
|
|
return "恢复不限速"
|
|
case GatewaySpeedTierZero:
|
|
return "0kbps"
|
|
case GatewaySpeedTier128K:
|
|
return "128Kbps"
|
|
case GatewaySpeedTier512K:
|
|
return "512Kbps"
|
|
case GatewaySpeedTier1M:
|
|
return "1Mbps"
|
|
case GatewaySpeedTier2M:
|
|
return "2Mbps"
|
|
case GatewaySpeedTier10M:
|
|
return "10Mbps"
|
|
case GatewaySpeedTier20M:
|
|
return "20Mbps"
|
|
case GatewaySpeedTier50M:
|
|
return "50Mbps"
|
|
case GatewaySpeedTier100M:
|
|
return "100Mbps"
|
|
default:
|
|
return "未知"
|
|
}
|
|
}
|
|
|
|
// GatewaySpeedTierUnknownRecoveryStrategy 表示限速超时后的人工核对策略。
|
|
const GatewaySpeedTierUnknownRecoveryStrategy = "通过 Gateway 运维侧按 ICCID 核对当前限速档位后,再决定是否重试"
|
|
|
|
// 卡实名观测场景
|
|
const (
|
|
CardObservationSceneRealnamePolling = "realname_polling" // 实名轮询
|
|
CardObservationSceneTrafficPolling = "traffic_polling" // 流量轮询
|
|
CardObservationSceneNetworkPolling = "network_polling" // 网络状态轮询
|
|
CardObservationSceneManualRefresh = "manual_refresh" // 手动刷新
|
|
CardObservationSceneCarrierCallback = "carrier_realname_callback" // 运营商实名回调
|
|
CardObservationSceneClientAssetRead = "client_asset_read" // C 端资产详情读取
|
|
CardObservationSceneAdminAssetRead = "admin_asset_realtime" // 后台资产实时状态读取
|
|
CardObservationSceneOpenCardTraffic = "openapi_card_traffic" // OpenAPI 卡流量读取
|
|
CardObservationSceneOpenCardNetwork = "openapi_card_network" // OpenAPI 卡网络读取
|
|
CardObservationSceneOpenCardRealname = "openapi_card_realname" // OpenAPI 卡实名读取
|
|
CardObservationSceneOpenDeviceTraffic = "openapi_device_traffic" // OpenAPI 设备流量读取
|
|
CardObservationSceneClientRealnameLink = "client_realname_link" // C 端获取实名链接
|
|
CardObservationSceneAdminRealnameLink = "admin_realname_link" // 后台获取实名链接
|
|
CardObservationSceneBusinessStop = "business_stop" // 业务停机成功
|
|
CardObservationSceneBusinessResume = "business_resume" // 业务复机成功
|
|
CardObservationScenePackageChanged = "package_changed" // 购包或套餐激活成功
|
|
CardObservationSceneDeviceSwitchCard = "device_switch_card" // 设备切卡成功
|
|
CardObservationSceneDeviceSwitchMode = "device_switch_mode" // 设备切卡模式成功
|
|
CardObservationSceneDeviceReboot = "device_reboot" // 设备重启成功
|
|
CardObservationSceneDeviceReset = "device_reset" // 设备恢复出厂成功
|
|
CardObservationSceneDeviceSetWiFi = "device_set_wifi" // 设备 WiFi 设置成功
|
|
)
|
|
|
|
// 卡实名状态变更 Outbox 事件
|
|
const (
|
|
OutboxEventTypeCardRealnameChanged = "card.realname.changed" // 卡实名状态变化
|
|
CardRealnameChangedPayloadVersionV1 = 1 // 卡实名状态变化载荷版本
|
|
OutboxEventTypeCardTrafficIncremented = "card.traffic.incremented" // 卡流量正增量
|
|
CardTrafficIncrementedPayloadVersionV1 = 1 // 卡流量正增量载荷版本
|
|
OutboxEventTypeCardNetworkChanged = "card.network.changed" // 卡网络状态变化
|
|
CardNetworkChangedPayloadVersionV1 = 1 // 卡网络状态变化载荷版本
|
|
OutboxEventTypeCardSeriesRequested = "card.observation.series.requested" // 业务成功请求卡观测序列
|
|
CardSeriesRequestedPayloadVersionV1 = 1 // 业务成功观测序列载荷版本
|
|
)
|