实现忽略告警和取消忽略告警接口及功能
This commit is contained in:
44
internal/app/service/threshold_alarm_service.go
Normal file
44
internal/app/service/threshold_alarm_service.go
Normal file
@@ -0,0 +1,44 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
domainAlarm "git.huangwc.com/pig/pig-farm-controller/internal/domain/alarm" // 引入领域层的 AlarmService
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
|
||||
)
|
||||
|
||||
// ThresholdAlarmService 定义了阈值告警配置服务的接口。
|
||||
// 该服务负责管理阈值告警任务的配置,并将其与计划进行联动。
|
||||
type ThresholdAlarmService interface {
|
||||
// SnoozeThresholdAlarm 忽略一个阈值告警,或更新其忽略时间。
|
||||
SnoozeThresholdAlarm(ctx context.Context, alarmID uint, durationMinutes uint) error
|
||||
// CancelSnoozeThresholdAlarm 取消对一个阈值告警的忽略状态。
|
||||
CancelSnoozeThresholdAlarm(ctx context.Context, alarmID uint) error
|
||||
}
|
||||
|
||||
// thresholdAlarmService 是 ThresholdAlarmService 接口的具体实现。
|
||||
type thresholdAlarmService struct {
|
||||
ctx context.Context
|
||||
alarmService domainAlarm.AlarmService // 注入领域层的 AlarmService
|
||||
}
|
||||
|
||||
// NewThresholdAlarmService 创建一个新的 ThresholdAlarmService 实例。
|
||||
func NewThresholdAlarmService(ctx context.Context, alarmService domainAlarm.AlarmService) ThresholdAlarmService {
|
||||
return &thresholdAlarmService{
|
||||
ctx: ctx,
|
||||
alarmService: alarmService,
|
||||
}
|
||||
}
|
||||
|
||||
// SnoozeThresholdAlarm 实现了忽略阈值告警的逻辑。
|
||||
func (s *thresholdAlarmService) SnoozeThresholdAlarm(ctx context.Context, alarmID uint, durationMinutes uint) error {
|
||||
serviceCtx := logs.AddFuncName(ctx, s.ctx, "SnoozeThresholdAlarm")
|
||||
return s.alarmService.SnoozeAlarm(serviceCtx, alarmID, time.Duration(durationMinutes)*time.Minute)
|
||||
}
|
||||
|
||||
// CancelSnoozeThresholdAlarm 实现了取消忽略阈值告警的逻辑。
|
||||
func (s *thresholdAlarmService) CancelSnoozeThresholdAlarm(ctx context.Context, alarmID uint) error {
|
||||
serviceCtx := logs.AddFuncName(ctx, s.ctx, "CancelSnoozeThresholdAlarm")
|
||||
return s.alarmService.CancelAlarmSnooze(serviceCtx, alarmID)
|
||||
}
|
||||
Reference in New Issue
Block a user