diff --git a/database/install/alarm_forward_log.sql b/database/install/alarm_forward_log.sql index 8b56fa9f..5fd2fe30 100644 --- a/database/install/alarm_forward_log.sql +++ b/database/install/alarm_forward_log.sql @@ -15,6 +15,7 @@ CREATE TABLE `alarm_forward_log` ( `alarm_code` int DEFAULT '0' COMMENT '告警状态码', `alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警标题', `alarm_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '告警状态 0:clear, 1:active', + `alarm_type` varchar(10) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型 CommunicationAlarm=1,EquipmentAlarm=2,ProcessingFailure=3,EnvironmentalAlarm=4,QualityOfServiceAlarm=5', `orig_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '3' COMMENT '严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)', `event_time` bigint DEFAULT '0' COMMENT '事件产生时间 秒级', `created_at` bigint DEFAULT '0' COMMENT '创建时间', diff --git a/database/install/alarm_log.sql b/database/install/alarm_log.sql index cbe4e702..2aa760ea 100644 --- a/database/install/alarm_log.sql +++ b/database/install/alarm_log.sql @@ -13,6 +13,7 @@ CREATE TABLE `alarm_log` ( `alarm_code` int DEFAULT '0' COMMENT '告警状态码', `alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警标题', `alarm_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '告警状态 0:clear, 1:active', + `alarm_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型 CommunicationAlarm=1,EquipmentAlarm=2,ProcessingFailure=3,EnvironmentalAlarm=4,QualityOfServiceAlarm=5', `orig_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '3' COMMENT '严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)', `event_time` bigint DEFAULT '0' COMMENT '事件产生时间 秒级', `created_at` bigint DEFAULT '0' COMMENT '创建时间', diff --git a/features/fm/alarm.go b/features/fm/alarm.go index c72b054c..e876279b 100644 --- a/features/fm/alarm.go +++ b/features/fm/alarm.go @@ -365,6 +365,7 @@ func alarmSaveLog(neInfo neModel.NeInfo, v Alarm) int64 { AlarmTitle: v.AlarmTitle, AlarmCode: int64(v.AlarmCode), AlarmStatus: fmt.Sprint(v.AlarmStatus), + AlarmType: alarmTypeValue(v.AlarmType), OrigSeverity: origSeverityValue(v.OrigSeverity), EventTime: eventTime.UnixMilli(), } diff --git a/features/fm/smsforward.go b/features/fm/smsforward.go index 5d15b4f5..33cbd922 100644 --- a/features/fm/smsforward.go +++ b/features/fm/smsforward.go @@ -185,6 +185,7 @@ func writeLog(alarmData *Alarm, toUser, forwardBy string, err error) error { AlarmTitle: alarmData.AlarmTitle, AlarmCode: int64(alarmData.AlarmCode), AlarmStatus: fmt.Sprint(alarmData.AlarmStatus), + AlarmType: alarmTypeValue(alarmData.AlarmType), OrigSeverity: origSeverityValue(alarmData.OrigSeverity), EventTime: eventTime.UnixMilli(), Type: forwardBy, diff --git a/src/framework/resp/api.go b/src/framework/resp/api.go index c4c220cf..1136512a 100644 --- a/src/framework/resp/api.go +++ b/src/framework/resp/api.go @@ -30,11 +30,15 @@ func CodeMsg(code int, msg string) Resp { } // Ok 响应成功结果 -func Ok(v map[string]any) Resp { - if v == nil { - return Resp{Code: CODE_SUCCESS, Msg: MSG_SUCCCESS} +func Ok(v map[string]any) map[string]any { + args := make(map[string]any) + args["code"] = CODE_SUCCESS + args["msg"] = MSG_SUCCCESS + // v合并到args + for key, value := range v { + args[key] = value } - return Resp{Code: CODE_SUCCESS, Msg: MSG_SUCCCESS, Data: v} + return args } // OkMsg 响应成功结果信息 @@ -48,11 +52,15 @@ func OkData(data any) Resp { } // Err 响应失败结果 map[string]any{} -func Err(v map[string]any) Resp { - if v == nil { - return Resp{Code: CODE_ERROR, Msg: MSG_ERROR} +func Err(v map[string]any) map[string]any { + args := make(map[string]any) + args["code"] = CODE_SUCCESS + args["msg"] = MSG_SUCCCESS + // v合并到args + for key, value := range v { + args[key] = value } - return Resp{Code: CODE_ERROR, Msg: MSG_ERROR, Data: v} + return args } // ErrMsg 响应失败结果信息 diff --git a/src/modules/network_data/controller/all_alarm_forward.go b/src/modules/network_data/controller/all_alarm_forward.go new file mode 100644 index 00000000..4520cf7a --- /dev/null +++ b/src/modules/network_data/controller/all_alarm_forward.go @@ -0,0 +1,52 @@ +package controller + +import ( + "fmt" + + "be.ems/src/framework/resp" + "be.ems/src/modules/network_data/model" + neDataService "be.ems/src/modules/network_data/service" + + "github.com/gin-gonic/gin" +) + +// 实例化控制层 AlarmForwardController 结构体 +var NewAlarmForward = &AlarmForwardController{ + alarmForwardLogService: neDataService.NewAlarmForwardLog, +} + +// 告警数据 +// +// PATH /alarm/forward +type AlarmForwardController struct { + alarmForwardLogService *neDataService.AlarmForwardLog // 告警转发记录服务 +} + +// 告警转发日志列表 +// +// GET /log/list +// +// @Tags network_data/alarm_forward +// @Accept json +// @Produce json +// @Param neType query string false "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC,SMSC) Enums(1,2,3,4) +// @Param sortField query string false "Sort fields, fill in result fields" default(event_time) +// @Param sortOrder query string false "Sort by ascending or descending order, asc desc" default(asc) +// @Param pageNum query number true "pageNum" default(1) +// @Param pageSize query number true "pageSize" default(10) +// @Success 200 {object} object "Response Results" +// @Security TokenAuth +// @Summary Alarm Forward Log List +// @Description Alarm Forward Log List +// @Router /neData/alarm/forward/log/list [get] +func (s AlarmForwardController) List(c *gin.Context) { + var query model.AlarmForwardLogQuery + if err := c.ShouldBindQuery(&query); err != nil { + errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err)) + c.JSON(422, resp.CodeMsg(40422, errMsgs)) + return + } + // 查询数据 + rows, total := s.alarmForwardLogService.FindByPage(query) + c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total})) +} diff --git a/src/modules/network_data/controller/all_alarm_log.go b/src/modules/network_data/controller/all_alarm_log.go index 09d2bef2..ad6c1392 100644 --- a/src/modules/network_data/controller/all_alarm_log.go +++ b/src/modules/network_data/controller/all_alarm_log.go @@ -3,29 +3,25 @@ package controller import ( "fmt" - "be.ems/src/framework/i18n" - "be.ems/src/framework/reqctx" "be.ems/src/framework/resp" - "be.ems/src/framework/utils/parse" "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" ) // 实例化控制层 AlarmLogController 结构体 var NewAlarmLog = &AlarmLogController{ - neInfoService: neService.NewNeInfo, - alarmLogService: neDataService.NewAlarmLog, + alarmLogService: neDataService.NewAlarmLog, + alarmEventService: neDataService.NewAlarmEvent, } // 告警数据 // // PATH /alarm/log type AlarmLogController struct { - neInfoService *neService.NeInfo // 网元信息服务 - alarmLogService *neDataService.AlarmLog // 告警信息服务 + alarmLogService *neDataService.AlarmLog // 告警日志信息服务 + alarmEventService *neDataService.AlarmEvent // 告警事件信息服务 } // 告警日志列表 @@ -37,12 +33,9 @@ type AlarmLogController struct { // @Produce json // @Param neType query string false "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC,SMSC) // @Param neId query string false "NE ID The actual record is the network element RmUid" -// @Param neName query string false "NE Name" -// @Param pvFlag query string false "PV Flag" Enums(PNF,VNF) -// @Param alarmLogCode query string false "AlarmLog status code" // @Param alarmLogType query string false "AlarmLog type Communication AlarmLogs=1, Equipment AlarmLogs=2, Processing faults=3, Environmental AlarmLogs=4, Quality of service AlarmLogs=5" Enums(1,2,3,4,5) -// @Param alarmLogStatus query string false "AlarmLog status 0:clear, 1:active" Enums(0,1) -// @Param origSeverity query string false "AlarmLog Type 1: Critical, 2: Major, 3: Minor, 4: Warning" Enums(1,2,3,4) +// @Param alarmStatus query string false "Alarm status 0:clear, 1:active" Enums(0,1) +// @Param origSeverity query string false "Alarm Type 1: Critical, 2: Major, 3: Minor, 4: Warning" Enums(1,2,3,4) // @Param sortField query string false "Sort fields, fill in result fields" default(event_time) // @Param sortOrder query string false "Sort by ascending or descending order, asc desc" default(asc) // @Param pageNum query number true "pageNum" default(1) @@ -52,7 +45,7 @@ type AlarmLogController struct { // @Summary AlarmLog List // @Description AlarmLog List // @Router /neData/alarm/log/list [get] -func (s *AlarmLogController) List(c *gin.Context) { +func (s AlarmLogController) List(c *gin.Context) { var query model.AlarmLogQuery if err := c.ShouldBindQuery(&query); err != nil { errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err)) @@ -64,30 +57,35 @@ func (s *AlarmLogController) List(c *gin.Context) { c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total})) } -// 告警删除 +// 告警事件日志列表 // -// DELETE /:id -func (s AlarmLogController) Remove(c *gin.Context) { - language := reqctx.AcceptLanguage(c) - id := c.Param("id") - if id == "" { - c.JSON(400, resp.CodeMsg(40010, "bind err: id is empty")) +// GET /event +// +// @Tags network_data/alarm_log +// @Accept json +// @Produce json +// @Param neType query string false "NE Type" Enums(IMS,AMF,AUSF,UDM,SMF,PCF,NSSF,NRF,UPF,MME,CBC,OMC,SGWC,SMSC) +// @Param neId query string false "NE ID The actual record is the network element RmUid" +// @Param alarmLogType query string false "AlarmLog type Communication AlarmLogs=1, Equipment AlarmLogs=2, Processing faults=3, Environmental AlarmLogs=4, Quality of service AlarmLogs=5" Enums(1,2,3,4,5) +// @Param alarmStatus query string false "Alarm status 0:clear, 1:active" Enums(0,1) +// @Param origSeverity query string false "Alarm Type 1: Critical, 2: Major, 3: Minor, 4: Warning" Enums(1,2,3,4) +// @Param sortField query string false "Sort fields, fill in result fields" default(event_time) +// @Param sortOrder query string false "Sort by ascending or descending order, asc desc" default(asc) +// @Param pageNum query number true "pageNum" default(1) +// @Param pageSize query number true "pageSize" default(10) +// @Success 200 {object} object "Response Results" +// @Security TokenAuth +// @Summary Alarm Event Log List +// @Description Alarm Event Log List +// @Router /neData/alarm/log/event [get] +func (s AlarmLogController) Event(c *gin.Context) { + var query model.AlarmEventQuery + if err := c.ShouldBindQuery(&query); err != nil { + errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err)) + c.JSON(422, resp.CodeMsg(40422, errMsgs)) return } - - // 处理字符转id数组后去重 - uniqueIDs := parse.RemoveDuplicatesToArray(id, ",") - // 转换成int64数组类型 - ids := make([]int64, 0) - for _, v := range uniqueIDs { - ids = append(ids, parse.Number(v)) - } - - rows, err := s.alarmLogService.DeleteByIds(ids) - if err != nil { - c.JSON(200, resp.ErrMsg(i18n.TKey(language, err.Error()))) - return - } - msg := i18n.TTemplate(language, "app.common.deleteSuccess", map[string]any{"num": rows}) - c.JSON(200, resp.OkMsg(msg)) + // 查询数据 + rows, total := s.alarmEventService.FindByPage(query) + c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total})) } diff --git a/src/modules/network_data/model/alarm_forward_log.go b/src/modules/network_data/model/alarm_forward_log.go index eace7bc1..a79c6d1b 100644 --- a/src/modules/network_data/model/alarm_forward_log.go +++ b/src/modules/network_data/model/alarm_forward_log.go @@ -10,6 +10,7 @@ type AlarmForwardLog struct { AlarmCode int64 `json:"alarmCode" gorm:"column:alarm_code"` // 告警状态码 AlarmTitle string `json:"alarmTitle" gorm:"column:alarm_title"` // 告警标题 AlarmStatus string `json:"alarmStatus" gorm:"column:alarm_status"` // 告警状态 0:clear, 1:active + AlarmType string `json:"alarmType" gorm:"column:alarm_type"` // 告警类型 CommunicationAlarm=1,EquipmentAlarm=2,ProcessingFailure=3,EnvironmentalAlarm=4,QualityOfServiceAlarm=5 OrigSeverity string `json:"origSeverity" gorm:"column:orig_severity"` // 严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF) EventTime int64 `json:"eventTime" gorm:"column:event_time"` // 事件产生时间 秒级 CreatedAt int64 `json:"createdAt" gorm:"column:created_at"` // 创建时间 @@ -25,14 +26,12 @@ func (*AlarmForwardLog) TableName() string { // AlarmForwardLogQuery 告警转发日志数据查询参数结构体 type AlarmForwardLogQuery struct { - NeType string `json:"neType" form:"neType"` // 网元类型 - NeID string `json:"neId" form:"neId"` // 网元ID - NeName string `json:"neName" form:"neName"` - AlarmStatus string `json:"alarmStatus" form:"alarmStatus" binding:"omitempty,oneof=0 1"` // 告警状态 0:clear, 1:active - BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查event_time - EndTime int64 `json:"endTime" form:"endTime"` - SortField string `json:"sortField" form:"sortField" binding:"omitempty,oneof=event_time id"` // 排序字段,填写结果字段 - SortOrder string `json:"sortOrder" form:"sortOrder" binding:"omitempty,oneof=asc desc"` // 排序升降序,asc desc - PageNum int64 `json:"pageNum" form:"pageNum" binding:"required"` - PageSize int64 `json:"pageSize" form:"pageSize" binding:"required"` + NeType string `json:"neType" form:"neType"` // 网元类型 + NeID string `json:"neId" form:"neId"` // 网元ID + BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查event_time + EndTime int64 `json:"endTime" form:"endTime"` + SortField string `json:"sortField" form:"sortField" binding:"omitempty,oneof=event_time id"` // 排序字段,填写结果字段 + SortOrder string `json:"sortOrder" form:"sortOrder" binding:"omitempty,oneof=asc desc"` // 排序升降序,asc desc + PageNum int64 `json:"pageNum" form:"pageNum" binding:"required"` + PageSize int64 `json:"pageSize" form:"pageSize" binding:"required"` } diff --git a/src/modules/network_data/model/alarm_log.go b/src/modules/network_data/model/alarm_log.go index be884c95..8931daf4 100644 --- a/src/modules/network_data/model/alarm_log.go +++ b/src/modules/network_data/model/alarm_log.go @@ -10,6 +10,7 @@ type AlarmLog struct { AlarmCode int64 `json:"alarmCode" gorm:"column:alarm_code"` // 告警状态码 AlarmTitle string `json:"alarmTitle" gorm:"column:alarm_title"` // 告警标题 AlarmStatus string `json:"alarmStatus" gorm:"column:alarm_status"` // 告警状态 0:clear, 1:active + AlarmType string `json:"alarmType" gorm:"column:alarm_type"` // 告警类型 CommunicationAlarm=1,EquipmentAlarm=2,ProcessingFailure=3,EnvironmentalAlarm=4,QualityOfServiceAlarm=5 OrigSeverity string `json:"origSeverity" gorm:"column:orig_severity"` // 严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF) EventTime int64 `json:"eventTime" gorm:"column:event_time"` // 事件产生时间 秒级 CreatedAt int64 `json:"createdAt" gorm:"column:created_at"` // 创建时间 @@ -22,14 +23,14 @@ func (*AlarmLog) TableName() string { // AlarmLogQuery 告警日志数据查询参数结构体 type AlarmLogQuery struct { - NeType string `json:"neType" form:"neType"` // 网元类型 - NeID string `json:"neId" form:"neId"` // 网元ID - NeName string `json:"neName" form:"neName"` - AlarmStatus string `json:"alarmStatus" form:"alarmStatus" binding:"omitempty,oneof=0 1"` // 告警状态 0:clear, 1:active - BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查event_time - EndTime int64 `json:"endTime" form:"endTime"` - SortField string `json:"sortField" form:"sortField" binding:"omitempty,oneof=event_time id"` // 排序字段,填写结果字段 - SortOrder string `json:"sortOrder" form:"sortOrder" binding:"omitempty,oneof=asc desc"` // 排序升降序,asc desc - PageNum int64 `json:"pageNum" form:"pageNum" binding:"required"` - PageSize int64 `json:"pageSize" form:"pageSize" binding:"required"` + NeType string `json:"neType" form:"neType"` // 网元类型 + NeID string `json:"neId" form:"neId"` // 网元ID + AlarmStatus string `json:"alarmStatus" form:"alarmStatus" binding:"omitempty,oneof=0 1"` // 告警状态 0:clear, 1:active + OrigSeverity string `json:"origSeverity" form:"origSeverity"` // 告警类型 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF) + BeginTime int64 `json:"beginTime" form:"beginTime"` // 开始时间 查event_time + EndTime int64 `json:"endTime" form:"endTime"` + SortField string `json:"sortField" form:"sortField" binding:"omitempty,oneof=event_time id"` // 排序字段,填写结果字段 + SortOrder string `json:"sortOrder" form:"sortOrder" binding:"omitempty,oneof=asc desc"` // 排序升降序,asc desc + PageNum int64 `json:"pageNum" form:"pageNum" binding:"required"` + PageSize int64 `json:"pageSize" form:"pageSize" binding:"required"` } diff --git a/src/modules/network_data/network_data.go b/src/modules/network_data/network_data.go index 642c649f..43a3840b 100644 --- a/src/modules/network_data/network_data.go +++ b/src/modules/network_data/network_data.go @@ -50,6 +50,29 @@ func Setup(router *gin.Engine) { ) } + // 告警日志数据信息 + alarmLogGroup := neDataGroup.Group("/alarm/log") + { + alarmLogGroup.GET("/list", + middleware.PreAuthorize(nil), + controller.NewAlarmLog.List, + ) + + alarmLogGroup.GET("/event", + middleware.PreAuthorize(nil), + controller.NewAlarmLog.Event, + ) + } + + // 告警转发数据信息 + alarmForwardGroup := neDataGroup.Group("/alarm/forward") + { + alarmForwardGroup.GET("/log/list", + middleware.PreAuthorize(nil), + controller.NewAlarmForward.List, + ) + } + // 基站状态历史记录信息 含AMF/MME nbStateGroup := neDataGroup.Group("/nb-state") { diff --git a/src/modules/network_data/repository/alarm_forward_log.go b/src/modules/network_data/repository/alarm_forward_log.go index a855bfd4..f409a690 100644 --- a/src/modules/network_data/repository/alarm_forward_log.go +++ b/src/modules/network_data/repository/alarm_forward_log.go @@ -11,7 +11,7 @@ import ( // 实例化数据层 AlarmForwardLog 结构体 var NewAlarmForwardLog = &AlarmForwardLog{} -// AlarmForwardLog 基站状态记录表 数据层处理 +// AlarmForwardLog 告警转发记录表 数据层处理 type AlarmForwardLog struct{} // SelectByPage 分页查询集合 @@ -25,10 +25,10 @@ func (r AlarmForwardLog) SelectByPage(query model.AlarmForwardLogQuery) ([]model tx = tx.Where("ne_id = ?", query.NeID) } if query.BeginTime != 0 { - tx = tx.Where("create_time >= ?", query.BeginTime) + tx = tx.Where("created_at >= ?", query.BeginTime) } if query.EndTime != 0 { - tx = tx.Where("create_time <= ?", query.EndTime) + tx = tx.Where("created_at <= ?", query.EndTime) } // 查询结果 diff --git a/src/modules/network_data/repository/alarm_log.go b/src/modules/network_data/repository/alarm_log.go index 391ded70..1ee20cec 100644 --- a/src/modules/network_data/repository/alarm_log.go +++ b/src/modules/network_data/repository/alarm_log.go @@ -25,10 +25,10 @@ func (r AlarmLog) SelectByPage(query model.AlarmLogQuery) ([]model.AlarmLog, int tx = tx.Where("ne_id = ?", query.NeID) } if query.BeginTime != 0 { - tx = tx.Where("create_time >= ?", query.BeginTime) + tx = tx.Where("created_at >= ?", query.BeginTime) } if query.EndTime != 0 { - tx = tx.Where("create_time <= ?", query.EndTime) + tx = tx.Where("created_at <= ?", query.EndTime) } // 查询结果 diff --git a/src/modules/network_data/service/alarm_forward_log.go b/src/modules/network_data/service/alarm_forward_log.go index dfa543bb..34b04073 100644 --- a/src/modules/network_data/service/alarm_forward_log.go +++ b/src/modules/network_data/service/alarm_forward_log.go @@ -1,11 +1,6 @@ package service import ( - "fmt" - "strconv" - - "be.ems/src/framework/i18n" - "be.ems/src/framework/utils/file" "be.ems/src/modules/network_data/model" "be.ems/src/modules/network_data/repository" ) @@ -15,9 +10,9 @@ var NewAlarmForwardLog = &AlarmForwardLog{ alarmForwardLogRepository: repository.NewAlarmForwardLog, } -// AlarmForwardLog 基站状态记录表 服务层处理 +// AlarmForwardLog 告警转发记录表 服务层处理 type AlarmForwardLog struct { - alarmForwardLogRepository *repository.AlarmForwardLog // 基站状态记录信息 + alarmForwardLogRepository *repository.AlarmForwardLog // 告警转发记录信息 } // FindByPage 根据条件分页查询 @@ -29,45 +24,3 @@ func (r AlarmForwardLog) FindByPage(query model.AlarmForwardLogQuery) ([]model.A func (r AlarmForwardLog) Insert(item model.AlarmForwardLog) int64 { return r.alarmForwardLogRepository.Insert(item) } - -// DeleteByIds 批量删除信息 -func (r AlarmForwardLog) DeleteByIds(ids []int64) (int64, error) { - // 检查是否存在 - arr := r.alarmForwardLogRepository.SelectByIds(ids) - if len(arr) <= 0 { - return 0, fmt.Errorf("not data") - } - - if len(arr) == len(ids) { - rows := r.alarmForwardLogRepository.DeleteByIds(ids) - return rows, nil - } - // 删除信息失败! - return 0, fmt.Errorf("delete fail") -} - -// ExportXlsx 导出数据到 xlsx 文件 -func (r AlarmForwardLog) ExportXlsx(rows []model.AlarmForwardLog, fileName, language string) (string, error) { - // 第一行表头标题 - headerCells := map[string]string{ - "A1": i18n.TKey(language, "AlarmForwardLog.export.id"), - "B1": i18n.TKey(language, "AlarmForwardLog.export.alarmCode"), - "C1": i18n.TKey(language, "AlarmForwardLog.export.alarmSeq"), - "D1": i18n.TKey(language, "AlarmForwardLog.export.eventTime"), - } - - // 从第二行开始的数据 - dataCells := make([]map[string]any, 0) - for i, row := range rows { - idx := strconv.Itoa(i + 2) - dataCells = append(dataCells, map[string]any{ - "A" + idx: row.ID, - "B" + idx: row.AlarmCode, - "C" + idx: row.AlarmSeq, - "D" + idx: row.EventTime, - }) - } - - // 导出数据表格 - return file.WriteSheet(headerCells, dataCells, fileName, "Sheet1") -} diff --git a/src/modules/network_data/service/alarm_log.go b/src/modules/network_data/service/alarm_log.go index 2ce43df8..de3cc354 100644 --- a/src/modules/network_data/service/alarm_log.go +++ b/src/modules/network_data/service/alarm_log.go @@ -1,11 +1,6 @@ package service import ( - "fmt" - "strconv" - - "be.ems/src/framework/i18n" - "be.ems/src/framework/utils/file" "be.ems/src/modules/network_data/model" "be.ems/src/modules/network_data/repository" ) @@ -29,45 +24,3 @@ func (r AlarmLog) FindByPage(query model.AlarmLogQuery) ([]model.AlarmLog, int64 func (r AlarmLog) Insert(item model.AlarmLog) int64 { return r.alarmLogRepository.Insert(item) } - -// DeleteByIds 批量删除信息 -func (r AlarmLog) DeleteByIds(ids []int64) (int64, error) { - // 检查是否存在 - arr := r.alarmLogRepository.SelectByIds(ids) - if len(arr) <= 0 { - return 0, fmt.Errorf("not data") - } - - if len(arr) == len(ids) { - rows := r.alarmLogRepository.DeleteByIds(ids) - return rows, nil - } - // 删除信息失败! - return 0, fmt.Errorf("delete fail") -} - -// ExportXlsx 导出数据到 xlsx 文件 -func (r AlarmLog) ExportXlsx(rows []model.AlarmLog, fileName, language string) (string, error) { - // 第一行表头标题 - headerCells := map[string]string{ - "A1": i18n.TKey(language, "alarmLog.export.id"), - "B1": i18n.TKey(language, "alarmLog.export.alarmCode"), - "C1": i18n.TKey(language, "alarmLog.export.alarmSeq"), - "D1": i18n.TKey(language, "alarmLog.export.eventTime"), - } - - // 从第二行开始的数据 - dataCells := make([]map[string]any, 0) - for i, row := range rows { - idx := strconv.Itoa(i + 2) - dataCells = append(dataCells, map[string]any{ - "A" + idx: row.ID, - "B" + idx: row.AlarmCode, - "C" + idx: row.AlarmSeq, - "D" + idx: row.EventTime, - }) - } - - // 导出数据表格 - return file.WriteSheet(headerCells, dataCells, fileName, "Sheet1") -}