Commit 2c85d1e9 authored by 李科's avatar 李科

fix: 预警列表优化推送记录&处置记录

parent eb2db1eb
...@@ -10,28 +10,37 @@ type AlertList struct { ...@@ -10,28 +10,37 @@ type AlertList struct {
AlertRulesId string `json:"alert_rules_id"` // 告警规则id AlertRulesId string `json:"alert_rules_id"` // 告警规则id
RiskLevel int `json:"risk_level"` // 风险等级,1:低风险,2:一般风险,3:较大风险,4:重大风险 RiskLevel int `json:"risk_level"` // 风险等级,1:低风险,2:一般风险,3:较大风险,4:重大风险
AlertTime jsontime.Time `json:"alert_time"` // 预警时间 AlertTime jsontime.Time `json:"alert_time"` // 预警时间
ClassId int `json:"class_id" xorm:"'class_id'"` // 预警对象id(级联:预警分类/预警对象) ClassId int `json:"class_id"` // 预警对象id(级联:预警分类/预警对象)
ClassParentName string `json:"class_parent_name" xorm:"class_parent_name"` // 预警分类名称 TODO 该字段做关联存储或查询 ClassParentName string `json:"class_parent_name"` // 预警分类名称 TODO 该字段做关联存储或查询
ClassName string `json:"class_name" xorm:"class_name"` // 预警对象名称 TODO 该字段做关联存储或查询 ClassName string `json:"class_name"` // 预警对象名称 TODO 该字段做关联存储或查询
MetricConfigId string `json:"metric_config_id"` // 预警指标id // 预警指标 MetricConfigId string `json:"metric_config_id"` // 预警指标id // 预警指标
MetricConfigName string `json:"metric_config_name" xorm:"metric_config_name"` // 预警指标名称 MetricConfigName string `json:"metric_config_name"` // 预警指标名称
AlertRuleType string `json:"alert_rule_type" xorm:"alert_rule_type"` // 预警规则类型id TODO 该字段做关联存储或查询 AlertRuleType string `json:"alert_rule_type"` // 预警规则类型id TODO 该字段做关联存储或查询
AlertRuleTypeName string `json:"alert_rule_type_name" xorm:"alert_rule_type_name"` // 预警规则类型名称 TODO 该字段做关联存储或查询 AlertRuleTypeName string `json:"alert_rule_type_name"` // 预警规则类型名称 TODO 该字段做关联存储或查询
CurrentValue float64 `json:"current_value"` // 当前报警值 CurrentValue float64 `json:"current_value"` // 当前报警值
AlertCondition string `json:"alert_condition" xorm:"'alert_condition'"` // 预警规则(预警阈值) 字典值 AlertCondition string `json:"alert_condition" xorm:"'alert_condition'"` // 预警规则(预警阈值) 字典值
NotificationCount int `json:"notification_count"` // 通知人数 NotificationCount int `json:"notification_count"` // 通知人数
PushCount int `json:"push_count"` // 推送次数 PushCount int `json:"push_count"` // 推送次数
LastPushTime jsontime.Time `json:"last_push_time"` // 最近推送时间 LastPushTime jsontime.Time `json:"last_push_time"` // 最近推送时间
Status int `json:"status"` // 状态,1:已恢复 2:未恢复 3:已关闭 Status int `json:"status"` // 状态,1:已恢复 2:未恢复 3:已关闭
IsDisposed int `json:"is_disposed"` // 是否处置(工单管理),1:已处置,2:未处置 DisposedList []DisposedList `json:"disposed_list"` // 处置列表
DisposalContent string `json:"disposal_content"` // 处置内容(工单管理,结果反馈) CloseRemark string `json:"close_remark"` // 关闭备注(预警关闭提醒)
CloseRemark string `json:"close_remark"` // 关闭备注,预警关闭提醒 CloseUser string `json:"close_user"` // 关闭用户,预警关闭提醒
CloseTime jsontime.Time `json:"close_time"` // 关闭关闭时间,预警关闭提醒
DeferPush int `json:"defer_push" xorm:"defer_push"` // 延迟三天推送: 0:否 1:是 三天内将不再自动推送该告警信息给处置人员,可手动推送,但告警数据依然会出现
CreatedBy string `json:"created_by" xorm:"'created_by'"` // 创建人 CreatedBy string `json:"created_by" xorm:"'created_by'"` // 创建人
CreatedAt jsontime.Time `json:"created_at" xorm:"'created_at'"` // 创建时间 CreatedAt jsontime.Time `json:"created_at" xorm:"'created_at'"` // 创建时间
UpdatedBy string `json:"updated_by" xorm:"'updated_by'"` // 更新人 UpdatedBy string `json:"updated_by" xorm:"'updated_by'"` // 更新人
UpdatedAt jsontime.Time `json:"updated_at" xorm:"'updated_at'"` // 更新时间 UpdatedAt jsontime.Time `json:"updated_at" xorm:"'updated_at'"` // 更新时间
} }
type DisposedList struct {
IsDisposed int `json:"is_disposed"` // 是否处置(工单管理),1:已处置,2:未处置
DisposalContent string `json:"disposal_content"` // 处置内容(工单管理,结果反馈)
DisposalUser string `json:"disposal_user"` // 处置人(工单管理,结果反馈)
DisposalTime jsontime.Time `json:"disposal_time"` // 处置时间(工单管理,结果反馈)
}
func (a *AlertList) TableName() string { func (a *AlertList) TableName() string {
return "alert_list" return "alert_list"
} }
...@@ -4,6 +4,7 @@ import "gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/json ...@@ -4,6 +4,7 @@ import "gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/json
type PushRecord struct { type PushRecord struct {
Id int `json:"id" xorm:"'id' pk autoincr"` // 主键id Id int `json:"id" xorm:"'id' pk autoincr"` // 主键id
AlertId int `json:"alert_id" xorm:"alert_id"` // 告警id
AlertRulesId string `json:"alert_rules_id" xorm:"'alert_rules_id'"` // 告警规则id AlertRulesId string `json:"alert_rules_id" xorm:"'alert_rules_id'"` // 告警规则id
RiskLevel int `json:"risk_level" xorm:"'risk_level'"` // 风险等级,1:低风险,2:一般风险,3:较大风险,4:重大风险 RiskLevel int `json:"risk_level" xorm:"'risk_level'"` // 风险等级,1:低风险,2:一般风险,3:较大风险,4:重大风险
NotifyMethod string `json:"notify_method" xorm:"'notify_method'"` // 预警通知方式 dingtalk sms NotifyMethod string `json:"notify_method" xorm:"'notify_method'"` // 预警通知方式 dingtalk sms
......
...@@ -7,6 +7,7 @@ import ( ...@@ -7,6 +7,7 @@ import (
type AlertListItem struct { type AlertListItem struct {
entity.AlertList `xorm:"extends"` entity.AlertList `xorm:"extends"`
AlertCondition entity.AlertCondition `json:"alert_condition" xorm:"alert_condition"` AlertCondition entity.AlertCondition `json:"alert_condition" xorm:"alert_condition"`
PushRecords []PushRecordItem `json:"push_records"`
} }
type AlertListList struct { type AlertListList struct {
......
...@@ -62,12 +62,22 @@ func (a *AlertListSvc) GetDataById(req request.DetailAlertList) (resp response.A ...@@ -62,12 +62,22 @@ func (a *AlertListSvc) GetDataById(req request.DetailAlertList) (resp response.A
AlertRuleType: "51a2cc1e-eb24-4b16-b106-3dc9db963a49", AlertRuleType: "51a2cc1e-eb24-4b16-b106-3dc9db963a49",
AlertRuleTypeName: "%", AlertRuleTypeName: "%",
CurrentValue: 85, CurrentValue: 85,
AlertCondition: "",
NotificationCount: 3, NotificationCount: 3,
PushCount: 3, PushCount: 3,
LastPushTime: now, LastPushTime: now,
Status: 2, Status: 2,
DisposedList: []entity.DisposedList{
{
IsDisposed: 1, IsDisposed: 1,
DisposalContent: "已处置完毕,已做恢复操作", DisposalContent: "处置记录",
DisposalUser: "xiaowang",
DisposalTime: now,
},
},
CloseRemark: "",
CloseUser: "",
DeferPush: 0,
CreatedBy: "admin", CreatedBy: "admin",
CreatedAt: now, CreatedAt: now,
UpdatedBy: "admin", UpdatedBy: "admin",
...@@ -78,6 +88,42 @@ func (a *AlertListSvc) GetDataById(req request.DetailAlertList) (resp response.A ...@@ -78,6 +88,42 @@ func (a *AlertListSvc) GetDataById(req request.DetailAlertList) (resp response.A
ThresholdsMin: 80, ThresholdsMin: 80,
RiskLevel: 4, RiskLevel: 4,
}, },
PushRecords: []response.PushRecordItem{
{
PushRecord: entity.PushRecord{
Id: 1,
AlertId: 1,
AlertRulesId: "47f7a57f-7a67-4876-8c89-ea074d040858",
RiskLevel: 1,
SystemAccount: "xiaowang",
PushTime: now,
PushType: 1,
Status: 1,
CreatedBy: "admin",
CreatedAt: now,
UpdatedBy: "admin",
UpdatedAt: now,
},
NotifyMethod: []string{"dingtalk", "sms"},
},
{
PushRecord: entity.PushRecord{
Id: 2,
AlertId: 3,
AlertRulesId: "47f7a57f-7a67-4876-8c89-ea074d040858",
RiskLevel: 2,
SystemAccount: "xiaowang",
PushTime: now,
PushType: 2,
Status: 2,
CreatedBy: "admin",
CreatedAt: now,
UpdatedBy: "admin",
UpdatedAt: now,
},
NotifyMethod: []string{"dingtalk", "sms"},
},
},
} }
resp = data resp = data
return return
...@@ -100,12 +146,28 @@ func (a *AlertListSvc) List(req request.ListAlertList) (resp response.AlertListL ...@@ -100,12 +146,28 @@ func (a *AlertListSvc) List(req request.ListAlertList) (resp response.AlertListL
AlertRuleType: "51a2cc1e-eb24-4b16-b106-3dc9db963a49", AlertRuleType: "51a2cc1e-eb24-4b16-b106-3dc9db963a49",
AlertRuleTypeName: "%", AlertRuleTypeName: "%",
CurrentValue: 85, CurrentValue: 85,
AlertCondition: "",
NotificationCount: 3, NotificationCount: 3,
PushCount: 3, PushCount: 3,
LastPushTime: now, LastPushTime: now,
Status: 2, Status: 1,
DisposedList: []entity.DisposedList{
{
IsDisposed: 2,
DisposalContent: "未恢复处置",
DisposalUser: "xiaozhang",
DisposalTime: now,
},
{
IsDisposed: 1, IsDisposed: 1,
DisposalContent: "处置为未恢复", DisposalContent: "已恢复处置",
DisposalUser: "lisi",
DisposalTime: now,
},
},
CloseRemark: "",
CloseUser: "",
DeferPush: 0,
CreatedBy: "admin", CreatedBy: "admin",
CreatedAt: now, CreatedAt: now,
UpdatedBy: "admin", UpdatedBy: "admin",
...@@ -116,6 +178,42 @@ func (a *AlertListSvc) List(req request.ListAlertList) (resp response.AlertListL ...@@ -116,6 +178,42 @@ func (a *AlertListSvc) List(req request.ListAlertList) (resp response.AlertListL
ThresholdsMin: 80, ThresholdsMin: 80,
RiskLevel: 4, RiskLevel: 4,
}, },
PushRecords: []response.PushRecordItem{
{
PushRecord: entity.PushRecord{
Id: 1,
AlertId: 1,
AlertRulesId: "47f7a57f-7a67-4876-8c89-ea074d040858",
RiskLevel: 1,
SystemAccount: "xiaozhang",
PushTime: now,
PushType: 1,
Status: 1,
CreatedBy: "admin",
CreatedAt: now,
UpdatedBy: "admin",
UpdatedAt: now,
},
NotifyMethod: []string{"dingtalk", "sms"},
},
{
PushRecord: entity.PushRecord{
Id: 2,
AlertId: 3,
AlertRulesId: "47f7a57f-7a67-4876-8c89-ea074d040858",
RiskLevel: 2,
SystemAccount: "xiaowang",
PushTime: now,
PushType: 2,
Status: 2,
CreatedBy: "admin",
CreatedAt: now,
UpdatedBy: "admin",
UpdatedAt: now,
},
NotifyMethod: []string{"dingtalk", "sms"},
},
},
} }
data2 := response.AlertListItem{ data2 := response.AlertListItem{
AlertList: entity.AlertList{ AlertList: entity.AlertList{
...@@ -132,12 +230,15 @@ func (a *AlertListSvc) List(req request.ListAlertList) (resp response.AlertListL ...@@ -132,12 +230,15 @@ func (a *AlertListSvc) List(req request.ListAlertList) (resp response.AlertListL
AlertRuleType: "51a2cc1e-eb24-4b16-b106-3dc9db963a49", AlertRuleType: "51a2cc1e-eb24-4b16-b106-3dc9db963a49",
AlertRuleTypeName: "%", AlertRuleTypeName: "%",
CurrentValue: 85, CurrentValue: 85,
AlertCondition: "",
NotificationCount: 1, NotificationCount: 1,
PushCount: 1, PushCount: 1,
LastPushTime: now, LastPushTime: now,
Status: 1, Status: 3,
IsDisposed: 1, CloseRemark: "关闭备注",
DisposalContent: "处置内容为已恢复", CloseUser: "xiaowang",
CloseTime: now,
DeferPush: 1,
CreatedBy: "admin", CreatedBy: "admin",
CreatedAt: now, CreatedAt: now,
UpdatedBy: "admin", UpdatedBy: "admin",
...@@ -148,6 +249,42 @@ func (a *AlertListSvc) List(req request.ListAlertList) (resp response.AlertListL ...@@ -148,6 +249,42 @@ func (a *AlertListSvc) List(req request.ListAlertList) (resp response.AlertListL
ThresholdsMin: 50, ThresholdsMin: 50,
RiskLevel: 3, RiskLevel: 3,
}, },
PushRecords: []response.PushRecordItem{
{
PushRecord: entity.PushRecord{
Id: 1,
AlertId: 1,
AlertRulesId: "47f7a57f-7a67-4876-8c89-ea074d040858",
RiskLevel: 1,
SystemAccount: "xiaozhang",
PushTime: now,
PushType: 1,
Status: 1,
CreatedBy: "admin",
CreatedAt: now,
UpdatedBy: "admin",
UpdatedAt: now,
},
NotifyMethod: []string{"dingtalk", "sms"},
},
{
PushRecord: entity.PushRecord{
Id: 2,
AlertId: 3,
AlertRulesId: "47f7a57f-7a67-4876-8c89-ea074d040858",
RiskLevel: 2,
SystemAccount: "xiaowang",
PushTime: now,
PushType: 2,
Status: 2,
CreatedBy: "admin",
CreatedAt: now,
UpdatedBy: "admin",
UpdatedAt: now,
},
NotifyMethod: []string{"dingtalk", "sms"},
},
},
} }
resp.List = append(resp.List, data1, data2) resp.List = append(resp.List, data1, data2)
resp.TotalCount = int64(len(resp.List)) resp.TotalCount = int64(len(resp.List))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment