fix: 修复轮询停机连坐、实名逆转防抖及carrier_stopped原因写入缺失三个逻辑缺陷
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m37s
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m37s
This commit is contained in:
@@ -78,7 +78,7 @@ func (s *StopResumeService) EvaluateAndAct(ctx context.Context, card *model.IotC
|
||||
}
|
||||
// 取最高优先级原因(第一个)
|
||||
primaryReason := reasons[0]
|
||||
if !card.IsStandalone {
|
||||
if !card.IsStandalone && isDeviceScopeReason(primaryReason) {
|
||||
deviceID, bound, lookupErr := s.getCardDeviceID(ctx, card)
|
||||
if lookupErr != nil {
|
||||
s.logger.Error("查询设备绑定关系失败,降级为单卡停机",
|
||||
@@ -132,6 +132,13 @@ func isPollingStopReason(reason string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// isDeviceScopeReason 判断停机原因是否应扩散到设备维度
|
||||
// 套餐/流量是设备共享资源,需整体停机;实名是单卡属性,只停该卡
|
||||
func isDeviceScopeReason(reason string) bool {
|
||||
return reason == constants.StopReasonNoPackage ||
|
||||
reason == constants.StopReasonTrafficExhausted
|
||||
}
|
||||
|
||||
// getCardDeviceID 获取卡所属设备ID(非独立卡时有效)
|
||||
// 返回:deviceID, isDeviceBound, error
|
||||
func (s *StopResumeService) getCardDeviceID(ctx context.Context, card *model.IotCard) (uint, bool, error) {
|
||||
|
||||
Reference in New Issue
Block a user