12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package services
- import (
- "errors"
- "github.com/gogf/gf/util/guid"
- "sparrow/pkg/models"
- "sparrow/services/knowoapi/model"
- )
- // AlertService 业务接口
- type AlertService interface {
- Create(*models.AlarmRule) error
- Delete(*models.AlarmRule) error
- Update(string, *models.AlarmRule) (models.AlarmRule, error)
- // GetAlarmRules 获取告警列表
- // vendorid:厂商ID
- // proid:产品ID,可选
- // procalid:协议ID, 可选
- // name: 规则名称,可选,模糊搜索
- GetAlarmRules(vendorid string, pi, ps, proid, protocalid int, name string) ([]models.AlarmRule, int, error)
- GetRule(vendorid string, alertid string) (models.AlarmRule, error)
- // 设置禁用可用状态
- // 参数(vendorid, recordid, status)
- SetRuleStatus(string, string, int) (models.AlarmRule, error)
- }
- type alert struct {
- model *model.All
- }
- // NewAlertService create a alert back a AlertService interface
- func NewAlertService(model *model.All) AlertService {
- return alert{
- model: model,
- }
- }
- func (a alert) Create(alert *models.AlarmRule) error {
- alert.RecordId = guid.S()
- count, err := a.model.Alert.CheckProtocalRuleCount(alert.VendorID, alert.ProtocalID)
- if err != nil {
- return err
- }
- if count > 0 {
- return errors.New("此协议已经设置告警规则")
- }
- alert.Status = 1
- return a.model.Alert.Create(alert)
- }
- func (a alert) Delete(alert *models.AlarmRule) error {
- return a.model.Alert.Delete(alert)
- }
- func (a alert) Update(vendorid string, alert *models.AlarmRule) (models.AlarmRule, error) {
- return a.model.Alert.Update(vendorid, alert)
- }
- func (a alert) GetAlarmRules(vendorid string, pi, ps, proid, protocalid int, name string) ([]models.AlarmRule, int, error) {
- return a.model.Alert.GetRules(vendorid, pi, ps, proid, protocalid, name)
- }
- func (a alert) GetRule(vendorid string, alertid string) (models.AlarmRule, error) {
- return a.model.Alert.GetAlarmRule(vendorid, alertid)
- }
- func (a alert) SetRuleStatus(vendorid string, alertid string, status int) (models.AlarmRule, error) {
- return a.model.Alert.SetRuleState(vendorid, alertid, status)
- }
|