package controller import ( "strings" "be.ems/src/framework/i18n" "be.ems/src/framework/utils/ctx" "be.ems/src/framework/utils/parse" "be.ems/src/framework/vo/result" "be.ems/src/modules/network_data/model" neDataService "be.ems/src/modules/network_data/service" neService "be.ems/src/modules/network_element/service" "github.com/gin-gonic/gin" ) // 实例化控制层 AlarmController 结构体 var NewAlarm = &AlarmController{ neInfoService: neService.NewNeInfo, alarmService: neDataService.NewAlarm, } // 告警数据 // // PATH /alarm type AlarmController struct { neInfoService *neService.NeInfo // 网元信息服务 alarmService *neDataService.Alarm // 告警信息服务 } // 告警列表 // // GET /list func (s *AlarmController) List(c *gin.Context) { language := ctx.AcceptLanguage(c) var querys model.AlarmQuery if err := c.ShouldBindQuery(&querys); err != nil { c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) return } // 查询网元获取IP neInfo := s.neInfoService.SelectNeInfoByNeTypeAndNeID(querys.NeType, querys.NeID) if neInfo.NeId != querys.NeID || neInfo.IP == "" { c.JSON(200, result.ErrMsg(i18n.TKey(language, "app.common.noNEInfo"))) return } querys.RmUID = neInfo.RmUID // 查询数据 rows, total := s.alarmService.SelectPage(querys) c.JSON(200, result.Ok(map[string]any{"rows": rows, "total": total})) } // 告警删除 // // DELETE /:alarmIds func (s *AlarmController) Remove(c *gin.Context) { language := ctx.AcceptLanguage(c) alarmIds := c.Param("alarmIds") if alarmIds == "" { c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) return } // 处理字符转id数组后去重 ids := strings.Split(alarmIds, ",") uniqueIDs := parse.RemoveDuplicates(ids) if len(uniqueIDs) <= 0 { c.JSON(200, result.Err(nil)) return } rows, err := s.alarmService.DeleteByIds(uniqueIDs) if err != nil { c.JSON(200, result.ErrMsg(i18n.TKey(language, err.Error()))) return } msg := i18n.TTemplate(language, "app.common.deleteSuccess", map[string]any{"num": rows}) c.JSON(200, result.OkMsg(msg)) }