123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- package bo
- import (
- "scd_check_tools/logger"
- "scd_check_tools/models/enum"
- "scd_check_tools/tools"
- "fmt"
- "strconv"
- "strings"
- "github.com/astaxie/beego/orm"
- _ "github.com/astaxie/beego/orm"
- )
- //系统告警管理
- type SystemAlarm struct {
- DeviceBaseModel
- //事件分类
- Eventtype enum.OptEventType
- }
- type Global_alarm struct {
- Id int64 `orm:"pk;auto"`
- AlarmTime string `orm:"size(20)"`
- AlarmText string `orm:"size(255)"`
- //事件分类
- Eventtype string
- //告警类型
- AlarmType string
- //是否已恢复
- IsReset int
- IsSend int
- }
- func init() {
- orm.RegisterModel(new(Global_alarm))
- }
- func (c *SystemAlarm) Save(eventtype, alarmtype, alarmtext string, isrest int) {
- obj := Global_alarm{AlarmTime: tools.NowTime()}
- obj.AlarmText = alarmtext
- obj.Eventtype = eventtype
- obj.AlarmType = alarmtype
- obj.IsReset = isrest
- obj.IsSend = 1
- db := orm.NewOrm()
- _, err := db.Insert(&obj)
- if err != nil {
- logger.Logger.Error(err, fmt.Sprintf("操作数据:%+v", obj))
- }
- }
- //查询系统告警列表
- func (c *SystemAlarm) SearchList(cond map[string]string, pageIndex, pageSize int) ([]orm.Params, int, error) {
- o := orm.NewOrm()
- var totalSql string
- var sqlCondition []string
- var sqlParameter []interface{}
- var sqlCommandText = `
- select t.*,t3.name eventtypename from global_alarm t left join global_const_code t3 on t.eventtype=t3.code and t3.parentcode='log_eventtype' `
- endDate := cond["enddate"]
- if endDate != "" {
- endDate += " 23:59:59"
- }
- startDate := cond["startdate"]
- if startDate != "" && endDate != "" {
- sqlCondition = append(sqlCondition, "t.alarm_time between ? and ? ")
- sqlParameter = append(sqlParameter, startDate+" 00:00:00", endDate)
- } else if startDate != "" {
- sqlCondition = append(sqlCondition, "t.alarm_time>=? ")
- sqlParameter = append(sqlParameter, startDate+" 00:00:00")
- } else if endDate != "" {
- sqlCondition = append(sqlCondition, "t.alarm_time<=? ")
- sqlParameter = append(sqlParameter, endDate)
- }
- description := cond["description"]
- if description != "" {
- sqlCondition = append(sqlCondition, "t.alarm_text like concat('%',?,'%')")
- sqlParameter = append(sqlParameter, description)
- }
- eventtype := cond["eventtype"]
- if eventtype != "" {
- sqlCondition = append(sqlCondition, "t.eventtype=?")
- sqlParameter = append(sqlParameter, eventtype)
- }
- alarmtype := cond["alarmtype"]
- if alarmtype != "" {
- sqlCondition = append(sqlCondition, "t.alarm_type=?")
- sqlParameter = append(sqlParameter, alarmtype)
- }
- if len(sqlCondition) > 0 {
- sqlCommandText += " where " + strings.Join(sqlCondition, " and ")
- totalSql = "select count(1) number from global_alarm t where " + strings.Join(sqlCondition, " and ")
- } else {
- totalSql = "select count(1) number from global_alarm t "
- }
- var limit = " limit " + strconv.Itoa((pageIndex-1)*pageSize) + "," + strconv.Itoa(pageSize)
- sqlCommandText += " order by t.id desc " + limit
- var tableData []orm.Params
- var number int
- _, err := o.Raw(sqlCommandText, sqlParameter).Values(&tableData)
- logObj := new(SystemLog)
- logObj.SetUserInfo(c.GetUserInfo())
- logObj.Audittype = enum.AuditType_admin_system_logquery
- logObj.Logtype = enum.LogType_Query
- logObj.Eventtype = enum.OptEventType_Bus
- logObj.Eventlevel = enum.OptEventLevel_Hight
- sqllog := fmt.Sprintf("SQL:%s 参数:%+v", sqlCommandText, sqlParameter)
- logObj.Description = sqllog
- if err == nil {
- logObj.Success2()
- if len(tableData) > 0 {
- var totalData []orm.Params
- _, err = o.Raw(totalSql, sqlParameter).Values(&totalData)
- if err == nil {
- number, _ = strconv.Atoi(totalData[0]["number"].(string))
- }
- }
- } else {
- logObj.Fail2()
- }
- return tableData, number, err
- }
|