package edbmonitor import ( "eta/eta_api/global" "eta/eta_api/utils" "gorm.io/gorm" "time" ) type EdbMonitorInfo struct { EdbMonitorId int `orm:"column(edb_monitor_id);pk" gorm:"primaryKey"` EdbMonitorClassifyId int `description:"预警分类id"` EdbMonitorName string `description:"预警名称"` EdbInfoId int `description:"指标id"` EdbInfoType int `description:"指标类型"` EdbUniqueCode string `description:"指标唯一标识"` EdbClassifyId int `description:"指标id"` EdbCode string `description:"指标编码"` Source int `description:"指标来源"` SubSource int `description:"指标子来源: 0-经济数据库;1-日期序列;2-高频数据"` EdbLatestDate string `description:"最新日期"` EdbLatestValue float64 `description:"指标最新值"` MonitorType int `description:"突破方式: 0-向上突破;1-向下突破"` MonitorData float64 `description:"预警值"` MonitorLevel string `description:"预警等级"` State int `description:"预警状态: 0-已关闭;1-未触发;2-已触发"` EdbTriggerDate time.Time `description:"触发日期"` MonitorTriggerTime time.Time `description:"预警触发时间"` CreateUserId int `description:"创建人id"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"修改时间"` } func (m *EdbMonitorInfo) AfterFind(db *gorm.DB) (err error) { m.EdbLatestDate = utils.GormDateStrToDateStr(m.EdbLatestDate) return } func (m *EdbMonitorInfo) ConvertTimeStr() { m.EdbLatestDate = utils.GormDateStrToDateStr(m.EdbLatestDate) return } func (m *EdbMonitorInfo) Insert() (int64, error) { err := global.DbMap[utils.DbNameIndex].Create(m).Error if err != nil { return 0, err } return int64(m.EdbMonitorId), err } func (m *EdbMonitorInfo) Update(cols []string) (err error) { if len(cols) == 0 { return } err = global.DbMap[utils.DbNameIndex].Select(cols).Updates(m).Error return } func GetEdbMonitorLevelList() (list []string, err error) { sql := `SELECT DISTINCT monitor_level FROM edb_monitor_info WHERE monitor_level != '' ` err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&list).Error return } func GetEdbMonitorEdbInfoList() (items []*EdbMonitorInfo, err error) { sql := `SELECT * FROM edb_monitor_info WHERE state <> 0` err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&items).Error return } func DeleteEdbMonitorInfoById(id int) (err error) { o := global.DbMap[utils.DbNameIndex] sql := `DELETE FROM edb_monitor_info WHERE edb_monitor_id =?` err = o.Exec(sql, id).Error return } func DeleteEdbMonitorInfoByIdList(ids []int) (err error) { if len(ids) == 0 { return } o := global.DbMap[utils.DbNameIndex] sql := `DELETE FROM edb_monitor_info WHERE edb_monitor_id IN(` + utils.GetOrmInReplace(len(ids)) + `)` err = o.Exec(sql, ids).Error return } func GetEdbMonitorInfoById(id int) (item *EdbMonitorInfo, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT * FROM edb_monitor_info WHERE edb_monitor_id =?` err = o.Raw(sql, id).First(&item).Error if err != nil { return } if item != nil { item.ConvertTimeStr() } return } func GetEdbMonitorInfoByEdbInfoId(edbInfoId int) (items []*EdbMonitorInfo, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT * FROM edb_monitor_info WHERE edb_info_id =?` err = o.Raw(sql, edbInfoId).Find(&items).Error return } func GetEdbMonitorInfoCountByClassifyId(classifyId []int) (count int, err error) { if len(classifyId) == 0 { return } o := global.DbMap[utils.DbNameIndex] sql := `SELECT COUNT(*) AS count FROM edb_monitor_info WHERE edb_monitor_classify_id IN(` + utils.GetOrmInReplace(len(classifyId)) + `)` err = o.Raw(sql, classifyId).Scan(&count).Error return } func GetEdbMonitorInfoCountByCondition(condition string, pars []interface{}) (count int, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT COUNT(*) AS count FROM edb_monitor_info WHERE 1=1 ` if condition != "" { sql += condition } err = o.Raw(sql, pars...).Scan(&count).Error return } func GetEdbMonitorInfoPageByCondition(condition string, pars []interface{}, startSize int, pageSize int) (items []*EdbMonitorInfo, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT * FROM edb_monitor_info WHERE 1=1 ` if condition != "" { sql += condition } sql += ` ORDER BY create_time DESC LIMIT?,?` pars = append(pars, startSize, pageSize) err = o.Raw(sql, pars...).Find(&items).Error return } func GetEdbMonitorCreateUserId() (userIds []int, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT DISTINCT create_user_id FROM edb_monitor_info` err = o.Raw(sql).Find(&userIds).Error return }